#include <CountProcessesAction.h>
Public Member Functions | |
CountProcessesAction (edm::ParameterSet const &p) | |
void | DumpCreatorProcessList (bool printNsteps, std::ostream &out=std::cout) |
void | DumpParticleList (std::ostream &out=std::cout) |
void | DumpProcessList (bool printNsteps, std::ostream &out=std::cout) |
void | update (const G4Step *track) |
This routine will be called when the appropriate signal arrives. | |
void | update (const EndOfRun *track) |
This routine will be called when the appropriate signal arrives. | |
void | update (const BeginOfTrack *trk) |
This routine will be called when the appropriate signal arrives. | |
void | update (const BeginOfRun *run) |
This routine will be called when the appropriate signal arrives. | |
~CountProcessesAction () | |
Private Attributes | |
bool | fDEBUG |
mpssi | theCreatorProcessList |
psi | theParticleList |
mpssi | theProcessList |
Definition at line 23 of file CountProcessesAction.h.
CountProcessesAction::CountProcessesAction | ( | edm::ParameterSet const & | p | ) |
Definition at line 14 of file CountProcessesAction.cc.
CountProcessesAction::~CountProcessesAction | ( | ) |
Definition at line 18 of file CountProcessesAction.cc.
{}
void CountProcessesAction::DumpCreatorProcessList | ( | bool | printNsteps, |
std::ostream & | out = std::cout |
||
) |
Definition at line 100 of file CountProcessesAction.cc.
References theCreatorProcessList.
Referenced by update().
{ mpssi::iterator ite; for (ite = theCreatorProcessList.begin(); ite != theCreatorProcessList.end(); ite++) { if (!printNsteps) out << "PROC-CREATOR_LIST " << (*ite).first.first << " : " <<(*ite) .first.second << std::endl; else if ((*ite).second != 0) out << "PROC_CREATOR_COUNT " << (*ite).first.first << " : " <<(*ite) .first.second << " = " << (*ite).second << std::endl; } }
void CountProcessesAction::DumpParticleList | ( | std::ostream & | out = std::cout | ) |
Definition at line 114 of file CountProcessesAction.cc.
References theParticleList.
Referenced by update().
{ psi::iterator ite; for (ite = theParticleList.begin(); ite != theParticleList.end(); ite++) { if ((*ite).second != 0) out << "PART_LIST: " << (*ite).first << " = " << (*ite).second << std::endl; } }
void CountProcessesAction::DumpProcessList | ( | bool | printNsteps, |
std::ostream & | out = std::cout |
||
) |
Definition at line 86 of file CountProcessesAction.cc.
References theProcessList.
Referenced by update().
{ mpssi::iterator ite; for (ite = theProcessList.begin(); ite != theProcessList.end(); ite++) { if (!printNsteps) out << "PROC_LIST " << (*ite).first.first << " : " << (*ite) .first.second << std::endl; else if ((*ite).second != 0) out << "PROC_COUNT " << (*ite).first.first << " : " << (*ite) .first.second << " = " << (*ite).second << std::endl; } }
void CountProcessesAction::update | ( | const BeginOfTrack * | ) | [virtual] |
This routine will be called when the appropriate signal arrives.
Implements Observer< const BeginOfTrack * >.
Definition at line 48 of file CountProcessesAction.cc.
References gather_cfg::cout, fDEBUG, if(), proc, theCreatorProcessList, and theParticleList.
{ //----- Fill counter of particles const G4Track * aTrack = (*trk)(); std::string particleName = aTrack->GetDefinition()->GetParticleName(); theParticleList[particleName]++; //----- Fill counter of Creator Processes const G4VProcess * proc = aTrack->GetCreatorProcess(); std::string processName; if (proc != 0) processName = proc->GetProcessName(); else processName = "Primary"; pss parproc(particleName,processName); mpssi::iterator ite = theCreatorProcessList.find(parproc); if (ite == theCreatorProcessList.end()) theCreatorProcessList[ parproc ] = 1; else (*ite).second = (*ite).second +1; if (fDEBUG) std::cout << " creator " << particleName << " " << processName << theCreatorProcessList.size() << std::endl; }
void CountProcessesAction::update | ( | const G4Step * | ) | [virtual] |
This routine will be called when the appropriate signal arrives.
Implements Observer< const G4Step * >.
Definition at line 69 of file CountProcessesAction.cc.
References theProcessList.
{ std::string processName; if(aStep->GetPostStepPoint()->GetProcessDefinedStep() != 0) processName = aStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName(); else processName = "User Limit"; std::string particleName = aStep->GetTrack()->GetDefinition()->GetParticleName(); theProcessList[pss(particleName,processName)] = theProcessList[pss(particleName,processName)] + 1; }
void CountProcessesAction::update | ( | const EndOfRun * | ) | [virtual] |
This routine will be called when the appropriate signal arrives.
Implements Observer< const EndOfRun * >.
Definition at line 79 of file CountProcessesAction.cc.
References DumpCreatorProcessList(), DumpParticleList(), and DumpProcessList().
{ DumpProcessList(1); DumpCreatorProcessList(1); DumpParticleList(); }
void CountProcessesAction::update | ( | const BeginOfRun * | ) | [virtual] |
This routine will be called when the appropriate signal arrives.
Implements Observer< const BeginOfRun * >.
Definition at line 20 of file CountProcessesAction.cc.
References gather_cfg::cout, DumpProcessList(), fDEBUG, findQualityFiles::jj, theParticleList, and theProcessList.
{ G4ParticleTable * partTable = G4ParticleTable::GetParticleTable(); int siz = partTable->size(); for (int ii= 0; ii < siz; ii++) { G4ParticleDefinition * particle = partTable->GetParticle(ii); std::string particleName = particle->GetParticleName(); if (fDEBUG) std::cout << ii << " PCA " << particleName<< " " << particle->GetPDGStable() << " " << particle->IsShortLived() << std::endl; theParticleList[particleName] = 0; //--- All processes of this particle G4ProcessManager * pmanager = particle->GetProcessManager(); G4ProcessVector * pvect = pmanager->GetProcessList(); int sizproc = pvect->size(); for (int jj = 0; jj < sizproc; jj++) { std::string processName = (*pvect)[jj]->GetProcessName(); if (fDEBUG) std::cout << jj << " PCR " << processName<< std::endl; theProcessList[pss(particleName,processName)] = 0; } } DumpProcessList(0); }
bool CountProcessesAction::fDEBUG [private] |
Definition at line 43 of file CountProcessesAction.h.
Referenced by update().
Definition at line 45 of file CountProcessesAction.h.
Referenced by DumpCreatorProcessList(), and update().
psi CountProcessesAction::theParticleList [private] |
Definition at line 46 of file CountProcessesAction.h.
Referenced by DumpParticleList(), and update().
mpssi CountProcessesAction::theProcessList [private] |
Definition at line 44 of file CountProcessesAction.h.
Referenced by DumpProcessList(), and update().