58 SparseOption( option );
62 for (
size_t i=0; i<
pList.size(); i++){
64 GeneratePropertyTable(particle);
69 void G4HtmlPPReporter::SparseOption(
const G4String& option)
74 baseDir = savedToken();
76 if(baseDir(baseDir.length()-1)!=
'/') {
80 comment = savedToken();
83 void G4HtmlPPReporter::GenerateIndex()
86 G4String fileName = baseDir +
"index.html";
87 std::ofstream outFile(fileName, std::ios::out );
88 outFile.setf( std::ios:: scientific, std::ios::floatfield );
94 outFile <<
"<! -- " << comment <<
" -- !> " <<
G4endl;
98 outFile << sTABLE <<
'"' <<
"80%" <<
'"' <<
" > " <<
G4endl;
102 outFile << sTD << sLFONT <<
"Code" << eLFONT<< eTD;
103 outFile << sTD << sLFONT <<
"Name" << eLFONT<< eTD;
104 outFile << sTD << sLFONT <<
"Mass" << eLFONT << eTD;
105 outFile << sTD << sLFONT <<
"Charge" << eLFONT << eTD;
106 outFile << sTD << sLFONT <<
"Life Time" << eLFONT << eTD;
107 outFile << sTD << sLFONT <<
"Anti-Particle" << eLFONT<< eTD;
108 outFile << eTR <<
G4endl;;
112 outFile << sTD <<
" " << eTD;
113 outFile << sTD <<
" " << eTD;
114 outFile << sTD <<
" [GeV/c" << sSUP <<
"2" << eSUP <<
"]" << eTD;
115 outFile << sTD <<
" " << eTD;
116 outFile << sTD <<
" [ns]" << eTD;
117 outFile << sTD <<
" " << eTD;
118 outFile << eTR <<
G4endl;;
120 for (
size_t i=0; i<
pList.size(); i++){
121 if (
pList[i]->GetPDGEncoding()<0)
continue;
123 outFile << sTR <<
G4endl;;
125 outFile << sTD <<
pList[i]->GetPDGEncoding() << eTD <<
G4endl;;
131 if (name ==
"J/psi") fname =
"jpsi.html";
134 outFile <<
"<A HREF=" <<
'"' << fname <<
'"' <<
">";
135 outFile << name <<
"</A>" << eTD <<
G4endl;
144 outFile << sTD <<
pList[i]->GetPDGLifeTime()/
ns << eTD <<
G4endl;
147 if ( (
pList[i]->GetAntiPDGEncoding()!= 0) &&
148 (
pList[i]->GetAntiPDGEncoding() !=
pList[i]->GetPDGEncoding() ) ) {
155 outFile << eTR <<
G4endl;;
158 outFile << eTABLE <<
G4endl;
161 PrintFooter(outFile);
171 G4String fileName = baseDir + name +
".html";
173 if (name ==
"J/psi") fileName = baseDir +
"jpsi.html";
174 std::ofstream outFile(fileName, std::ios::out );
175 outFile.setf( std::ios:: scientific, std::ios::floatfield );
176 outFile << std::setprecision(7) <<
G4endl;
178 PrintHeader(outFile);
181 outFile <<
"<H2>" << name <<
"</H2>" <<
G4endl;
182 outFile <<
"<HR>" <<
G4endl;
185 outFile << sTABLE <<
'"' <<
"40%" <<
'"' <<
" > " <<
G4endl;
186 outFile << sTR << sTD << sB <<
"PDG encoding" << eB << eTD;
188 outFile << sTR << sTD << sB <<
"Type" << eB << eTD;
190 outFile << eTABLE <<
G4endl;
191 outFile <<
"<HR>" <<
G4endl;
194 outFile << sTABLE <<
'"' <<
"60%" <<
'"' <<
" > " <<
G4endl;
196 outFile << sTR << sTD << sB <<
"Mass" << eB << eTD;
198 outFile <<
" [GeV/c" << sSUP <<
"2" << eSUP <<
"]" << eTD << eTR <<
G4endl;
200 outFile << sTR << sTD << sB <<
"Width" << eB << eTD;
202 outFile <<
" [GeV/c" << sSUP <<
"2" << eSUP <<
"]" << eTD << eTR <<
G4endl;
204 outFile << sTR << sTD << sB <<
"I J" << sSUP <<
"PC"<< eSUP << eB << eTD;
206 outFile << sTD <<
" ";
208 outFile << sTD <<
"1/2 ";
210 outFile << sTD <<
"3/2 ";
231 outFile << sSUP << sSYMBOL;
246 outFile << eSYMBOL << eSUP;
247 outFile << eTD << eTR <<
G4endl;
249 outFile << sTR << sTD << sB <<
"Charge" << eB << eTD;
251 outFile << eTD << eTR <<
G4endl;
253 outFile << sTR << sTD << sB <<
"Magnetic Moment" << eB << eTD;
256 outFile <<
"[MeV/T]" << eTD << eTR <<
G4endl;
258 outFile << sTD <<
" not defined ";
259 outFile << eTD << eTR <<
G4endl;
262 outFile << sTR << sTD << sB <<
"Life Time" << eB << eTD;
265 outFile <<
"[sec]" << eTD <<
G4endl;
268 outFile << sTD <<
"stable" << eTD;
270 outFile << sTD <<
"short-lived" << eTD;
272 outFile << sTD <<
"not Defined" << eTD;
277 outFile << eTABLE <<
G4endl;
278 outFile <<
"<HR>" <<
G4endl;
281 outFile <<
"<H2>" <<
" Quark Content " <<
"</H2>" <<
G4endl;
283 outFile << sTABLE <<
'"' <<
"60%" <<
'"' <<
" > " <<
G4endl;
286 outFile << sTD << sB <<
"flavour " << eB << eTD ;
287 outFile << sTD << sB <<
" quark " << eB << eTD;
288 outFile << sTD << sB <<
" anti-quark " << eB << eTD;
291 static const char* quarkName[6] = {
"d",
"u",
"s",
"c",
"b",
"t" };
292 for (
G4int flv = 0; flv <6 ; flv++ ){
294 outFile << sTD << sB << quarkName[flv] << eB << eTD ;
295 outFile << sTD << sB << particle->
GetQuarkContent(flv+1) << eB << eTD ;
299 outFile << eTABLE <<
G4endl;
300 outFile <<
"<HR>" <<
G4endl;
305 outFile <<
"<H2>" <<
" Decay Table " <<
"</H2>" <<
G4endl;
307 outFile << sTABLE <<
'"' <<
"80%" <<
'"' <<
" > " <<
G4endl;
310 outFile << sTD << sB <<
"BR" << eB << eTD ;
311 outFile << sTD << sB <<
"kinematics" << eB << eTD;
316 outFile << sTR <<
G4endl;;
318 outFile << sTD << channel->
GetBR() << eTD;
327 outFile << eTABLE <<
G4endl;
328 outFile <<
"<HR>" <<
G4endl;
332 outFile <<
"<A HREF=" <<
'"' <<
"index.html" <<
'"' <<
">back to index</A>";
335 PrintFooter(outFile);
338 void G4HtmlPPReporter::PrintHeader(std::ofstream& outFile)
340 outFile <<
"<HTML>" <<
G4endl;
341 outFile <<
"<HEAD>" <<
G4endl;
342 outFile <<
" <META HTTP-EQUIV=" <<
"\"" <<
" Content-Type" <<
"\"";
343 outFile <<
" CONTENT="
344 <<
"\"" <<
"text/html; charset=iso-8859-1"
346 outFile <<
" <TITLE>Geant4 Particle List </TITLE>" <<
G4endl;
347 outFile <<
"</HEAD>" <<
G4endl;
348 outFile <<
"<! -- Generated automatically by Geant4, "
350 outFile <<
"<BODY>" <<
G4endl;
353 void G4HtmlPPReporter::PrintFooter(std::ofstream& outFile)
355 outFile <<
"<HR>" <<
G4endl;
356 outFile <<
"</BODY>" <<
G4endl;
357 outFile <<
"</HTML>" <<
G4endl;
360 const char* G4HtmlPPReporter::sTABLE =
"<TABLE WIDTH=";
361 const char* G4HtmlPPReporter::eTABLE =
"</TABLE>";
362 const char* G4HtmlPPReporter::sTR =
"<TR>";
363 const char* G4HtmlPPReporter::eTR =
"</TR>";
364 const char* G4HtmlPPReporter::sTD =
"<TD>";
365 const char* G4HtmlPPReporter::eTD =
"</TD>";
366 const char* G4HtmlPPReporter::sB =
"<B>";
367 const char* G4HtmlPPReporter::eB =
"</B>";
368 const char* G4HtmlPPReporter::sLFONT =
"<FONT SIZE = +1>";
369 const char* G4HtmlPPReporter::eLFONT =
"</FONT>";
370 const char* G4HtmlPPReporter::sSYMBOL =
"<FONT FACE = \"symbol\" >";
371 const char* G4HtmlPPReporter::eSYMBOL =
"</FONT>";
372 const char* G4HtmlPPReporter::sSUP =
"<SUP>";
373 const char* G4HtmlPPReporter::eSUP =
"</SUP>";
374 const char* G4HtmlPPReporter::sSUB =
"<SUB>";
375 const char* G4HtmlPPReporter::eSUB =
"</SUB>";
static constexpr double tesla
G4int GetPDGiSpin() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
G4int GetPDGiParity() const
G4int GetNumberOfDaughters() const
G4bool GetPDGStable() const
G4ParticleDefinition * GetDaughter(G4int anIndex)
const G4String & GetKinematicsName() const
G4int GetAntiQuarkContent(G4int flavor) const
G4VDecayChannel * GetDecayChannel(G4int index) const
G4int GetPDGEncoding() const
static constexpr double second
const G4String & GetParticleName() const
G4DecayTable * GetDecayTable() const
G4double GetPDGWidth() const
virtual ~G4HtmlPPReporter()
static constexpr double eplus
G4int GetQuarkContent(G4int flavor) const
const G4String & GetParticleType() const
G4int GetPDGiConjugation() const
G4bool IsShortLived() const
virtual void Print(const G4String &option="")
G4double GetPDGMass() const
static G4ParticleTable * GetParticleTable()
G4int GetPDGiIsospin() const
static constexpr double GeV
G4double GetPDGLifeTime() const
static constexpr double MeV
G4double GetPDGMagneticMoment() const
G4double GetPDGCharge() const