test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Attributes
RunManager Class Reference

#include <RunManager.h>

Public Member Functions

void abortEvent ()
 
void abortRun (bool softAbort=false)
 
void Connect (RunAction *)
 
void Connect (EventAction *)
 
void Connect (TrackingAction *)
 
void Connect (SteppingAction *)
 
const G4Event * currentEvent () const
 
const G4Run * currentRun () const
 
const Generatorgenerator () const
 
SimTrackManagerGetSimTrackManager ()
 
void initG4 (const edm::EventSetup &es)
 
void initializeRun ()
 
void initializeUserActions ()
 
void produce (edm::Event &inpevt, const edm::EventSetup &es)
 
std::vector< std::shared_ptr
< SimProducer > > 
producers () const
 
 RunManager (edm::ParameterSet const &p, edm::ConsumesCollector &&i)
 
std::vector
< SensitiveCaloDetector * > & 
sensCaloDetectors ()
 
std::vector
< SensitiveTkDetector * > & 
sensTkDetectors ()
 
G4SimEventsimEvent ()
 
void stopG4 ()
 
void terminateRun ()
 
 ~RunManager ()
 

Protected Member Functions

void DumpMagneticField (const G4Field *) const
 
G4Event * generateEvent (edm::Event &inpevt)
 
void resetGenParticleId (edm::Event &inpevt)
 

Private Attributes

bool firstRun
 
edm::ESWatcher
< IdealGeometryRecord
idealGeomRcdWatcher_
 
edm::ESWatcher
< IdealMagneticFieldRecord
idealMagRcdWatcher_
 
AttachSDm_attach
 
bool m_check
 
sim::ChordFinderSetterm_chordFinderSetter
 
G4Event * m_currentEvent
 
G4Run * m_currentRun
 
int m_EvtMgrVerbosity
 
sim::FieldBuilderm_fieldBuilder
 
std::string m_FieldFile
 
std::vector< std::string > m_G4Commands
 
edm::ParameterSet m_g4overlap
 
Generatorm_generator
 
bool m_hasWatchers
 
edm::EDGetTokenT
< edm::HepMCProduct
m_HepMC
 
G4RunManagerKernel * m_kernel
 
edm::EDGetTokenT
< edm::LHCTransportLinkContainer
m_LHCtr
 
bool m_managerInitialized
 
bool m_nonBeam
 
edm::ParameterSet m_p
 
edm::ParameterSet m_pEventAction
 
edm::ParameterSet m_pField
 
edm::ParameterSet m_pGenerator
 
edm::ParameterSet m_pGeometry
 
std::unique_ptr< PhysicsListm_physicsList
 
std::string m_PhysicsTablesDir
 
edm::ParameterSet m_pPhysics
 
PrimaryTransformerm_primaryTransformer
 
std::unique_ptr
< DDG4ProductionCuts
m_prodCuts
 
std::vector< std::shared_ptr
< SimProducer > > 
m_producers
 
edm::ParameterSet m_pRunAction
 
edm::ParameterSet m_pStackingAction
 
edm::ParameterSet m_pSteppingAction
 
edm::ParameterSet m_pTrackingAction
 
bool m_pUseMagneticField
 
edm::ParameterSet m_pVertexGenerator
 
std::string m_RegionFile
 
SimActivityRegistry m_registry
 
bool m_RestorePhysicsTables
 
bool m_runAborted
 
bool m_runInitialized
 
SimRunInterfacem_runInterface
 
bool m_runTerminated
 
std::vector
< SensitiveCaloDetector * > 
m_sensCaloDets
 
std::vector
< SensitiveTkDetector * > 
m_sensTkDets
 
G4SimEventm_simEvent
 
bool m_StorePhysicsTables
 
std::unique_ptr
< CMSSteppingVerbose
m_sVerbose
 
std::unique_ptr< SimTrackManagerm_trackManager
 
std::unique_ptr< CustomUIsessionm_UIsession
 
RunActionm_userRunAction
 
std::vector< std::shared_ptr
< SimWatcher > > 
m_watchers
 
std::string m_WriteFile
 

Detailed Description

Definition at line 64 of file RunManager.h.

Constructor & Destructor Documentation

RunManager::RunManager ( edm::ParameterSet const &  p,
edm::ConsumesCollector &&  i 
)

Definition at line 114 of file RunManager.cc.

References SimActivityRegistry::connect(), createWatchers(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), m_check, m_FieldFile, m_hasWatchers, m_kernel, m_p, m_producers, m_RegionFile, m_registry, m_runInterface, m_sVerbose, m_UIsession, m_userRunAction, m_watchers, m_WriteFile, and AlCaHLTBitMon_QueryRunRegistry::string.

115  : m_generator(new Generator(p.getParameter<edm::ParameterSet>("Generator"))),
116  m_HepMC(iC.consumes<edm::HepMCProduct>(p.getParameter<edm::ParameterSet>("Generator").getParameter<std::string>("HepMCProductLabel"))),
117  m_LHCtr(iC.consumes<edm::LHCTransportLinkContainer>(p.getParameter<edm::InputTag>("theLHCTlinkTag"))),
118  m_nonBeam(p.getParameter<bool>("NonBeamEvent")),
119  m_primaryTransformer(nullptr),
120  m_managerInitialized(false),
121  m_runInitialized(false), m_runTerminated(false), m_runAborted(false),
122  firstRun(true),
123  m_pUseMagneticField(p.getParameter<bool>("UseMagneticField")),
125  m_PhysicsTablesDir(p.getParameter<std::string>("PhysicsTablesDirectory")),
126  m_StorePhysicsTables(p.getParameter<bool>("StorePhysicsTables")),
127  m_RestorePhysicsTables(p.getParameter<bool>("RestorePhysicsTables")),
128  m_EvtMgrVerbosity(p.getUntrackedParameter<int>("G4EventManagerVerbosity",0)),
129  m_pField(p.getParameter<edm::ParameterSet>("MagneticField")),
130  m_pGenerator(p.getParameter<edm::ParameterSet>("Generator")),
131  m_pPhysics(p.getParameter<edm::ParameterSet>("Physics")),
132  m_pRunAction(p.getParameter<edm::ParameterSet>("RunAction")),
133  m_pEventAction(p.getParameter<edm::ParameterSet>("EventAction")),
134  m_pStackingAction(p.getParameter<edm::ParameterSet>("StackingAction")),
135  m_pTrackingAction(p.getParameter<edm::ParameterSet>("TrackingAction")),
136  m_pSteppingAction(p.getParameter<edm::ParameterSet>("SteppingAction")),
137  m_g4overlap(p.getParameter<edm::ParameterSet>("G4CheckOverlap")),
138  m_G4Commands(p.getParameter<std::vector<std::string> >("G4Commands")),
139  m_p(p), m_fieldBuilder(nullptr), m_chordFinderSetter(nullptr)
140 {
141  m_UIsession.reset(new CustomUIsession());
142  m_kernel = new G4RunManagerKernel();
143 
144  m_check = p.getUntrackedParameter<bool>("CheckOverlap",false);
145  m_WriteFile = p.getUntrackedParameter<std::string>("FileNameGDML","");
146  m_FieldFile = p.getUntrackedParameter<std::string>("FileNameField","");
147  m_RegionFile = p.getUntrackedParameter<std::string>("FileNameRegions","");
148 
149  m_userRunAction = nullptr;
150  m_runInterface = nullptr;
151 
152  //Look for an outside SimActivityRegistry
153  // this is used by the visualization code
154  edm::Service<SimActivityRegistry> otherRegistry;
155  if(otherRegistry){
156  m_registry.connect(*otherRegistry);
157  }
158  m_sVerbose.reset(nullptr);
159 
160  std::vector<edm::ParameterSet> watchers
161  = p.getParameter<std::vector<edm::ParameterSet> >("Watchers");
162  m_hasWatchers = (watchers.empty()) ? false : true;
163 
164  if(m_hasWatchers) {
166  }
167 }
T getParameter(std::string const &) const
bool m_check
Definition: RunManager.h:137
edm::ParameterSet m_pGenerator
Definition: RunManager.h:140
edm::EDGetTokenT< edm::HepMCProduct > m_HepMC
Definition: RunManager.h:111
G4Event * m_currentEvent
Definition: RunManager.h:128
edm::EDGetTokenT< edm::LHCTransportLinkContainer > m_LHCtr
Definition: RunManager.h:112
SimActivityRegistry m_registry
Definition: RunManager.h:158
edm::ParameterSet m_p
Definition: RunManager.h:150
std::vector< std::shared_ptr< SimProducer > > m_producers
Definition: RunManager.h:160
void connect(Observer< const BeginOfJob * > *iObject)
Generator * m_generator
Definition: RunManager.h:110
static void createWatchers(const edm::ParameterSet &iP, SimActivityRegistry &iReg, std::vector< std::shared_ptr< SimWatcher > > &oWatchers, std::vector< std::shared_ptr< SimProducer > > &oProds)
Definition: RunManager.cc:82
bool m_hasWatchers
Definition: RunManager.h:125
bool m_pUseMagneticField
Definition: RunManager.h:124
bool m_nonBeam
Definition: RunManager.h:114
int m_EvtMgrVerbosity
Definition: RunManager.h:136
std::string m_WriteFile
Definition: RunManager.h:170
bool firstRun
Definition: RunManager.h:123
SimRunInterface * m_runInterface
Definition: RunManager.h:131
bool m_RestorePhysicsTables
Definition: RunManager.h:135
std::vector< std::shared_ptr< SimWatcher > > m_watchers
Definition: RunManager.h:159
std::unique_ptr< CMSSteppingVerbose > m_sVerbose
Definition: RunManager.h:157
G4Run * m_currentRun
Definition: RunManager.h:127
edm::ParameterSet m_pStackingAction
Definition: RunManager.h:145
edm::ParameterSet m_pEventAction
Definition: RunManager.h:144
bool m_runTerminated
Definition: RunManager.h:121
edm::ParameterSet m_pField
Definition: RunManager.h:139
edm::ParameterSet m_pPhysics
Definition: RunManager.h:142
edm::ParameterSet m_pSteppingAction
Definition: RunManager.h:147
edm::ParameterSet m_g4overlap
Definition: RunManager.h:148
RunAction * m_userRunAction
Definition: RunManager.h:130
bool m_runInitialized
Definition: RunManager.h:120
sim::ChordFinderSetter * m_chordFinderSetter
Definition: RunManager.h:164
std::string m_RegionFile
Definition: RunManager.h:171
std::vector< LHCTransportLink > LHCTransportLinkContainer
PrimaryTransformer * m_primaryTransformer
Definition: RunManager.h:117
sim::FieldBuilder * m_fieldBuilder
Definition: RunManager.h:163
std::string m_PhysicsTablesDir
Definition: RunManager.h:133
bool m_StorePhysicsTables
Definition: RunManager.h:134
std::unique_ptr< CustomUIsession > m_UIsession
Definition: RunManager.h:115
edm::ParameterSet m_pRunAction
Definition: RunManager.h:143
edm::ParameterSet m_pTrackingAction
Definition: RunManager.h:146
std::vector< std::string > m_G4Commands
Definition: RunManager.h:149
std::string m_FieldFile
Definition: RunManager.h:169
G4SimEvent * m_simEvent
Definition: RunManager.h:129
bool m_managerInitialized
Definition: RunManager.h:119
G4RunManagerKernel * m_kernel
Definition: RunManager.h:108
bool m_runAborted
Definition: RunManager.h:122
RunManager::~RunManager ( )

Definition at line 169 of file RunManager.cc.

References m_generator, m_runInterface, m_runTerminated, and terminateRun().

170 {
171  if (!m_runTerminated) { terminateRun(); }
172  G4StateManager::GetStateManager()->SetNewState(G4State_Quit);
173  G4GeometryManager::GetInstance()->OpenGeometry();
174  // if (m_kernel!=0) delete m_kernel;
175  delete m_runInterface;
176  delete m_generator;
177 }
Generator * m_generator
Definition: RunManager.h:110
SimRunInterface * m_runInterface
Definition: RunManager.h:131
void terminateRun()
Definition: RunManager.cc:498
bool m_runTerminated
Definition: RunManager.h:121

Member Function Documentation

void RunManager::abortEvent ( )

Definition at line 430 of file RunManager.cc.

References m_currentEvent, m_kernel, m_runTerminated, TrackingAction::PostUserTrackingAction(), and t.

Referenced by SimRunInterface::abortEvent(), and abortRun().

431 {
432  if (m_runTerminated) { return; }
433  G4Track* t =
434  m_kernel->GetEventManager()->GetTrackingManager()->GetTrack();
435  t->SetTrackStatus(fStopAndKill) ;
436 
437  // CMS-specific act
438  //
439  TrackingAction* uta =
440  (TrackingAction*)m_kernel->GetEventManager()->GetUserTrackingAction() ;
441  uta->PostUserTrackingAction(t) ;
442 
443  m_currentEvent->SetEventAborted();
444  m_kernel->GetEventManager()->GetStackManager()->clear() ;
445  m_kernel->GetEventManager()->GetTrackingManager()->EventAborted() ;
446 
447  G4StateManager* stateManager = G4StateManager::GetStateManager();
448  stateManager->SetNewState(G4State_GeomClosed);
449 }
G4Event * m_currentEvent
Definition: RunManager.h:128
bool m_runTerminated
Definition: RunManager.h:121
virtual void PostUserTrackingAction(const G4Track *aTrack)
G4RunManagerKernel * m_kernel
Definition: RunManager.h:108
void RunManager::abortRun ( bool  softAbort = false)

Definition at line 515 of file RunManager.cc.

References abortEvent(), m_currentRun, m_runAborted, and terminateRun().

Referenced by SimRunInterface::abortRun(), ExceptionHandler::Notify(), and produce().

516 {
517  if(m_runAborted) { return; }
518  if (!softAbort) { abortEvent(); }
519  if (m_currentRun!=0) { delete m_currentRun; m_currentRun = 0; }
520  terminateRun();
521  m_runAborted = true;
522 }
void abortEvent()
Definition: RunManager.cc:430
void terminateRun()
Definition: RunManager.cc:498
G4Run * m_currentRun
Definition: RunManager.h:127
bool m_runAborted
Definition: RunManager.h:122
void RunManager::Connect ( RunAction runAction)

Definition at line 538 of file RunManager.cc.

References SimActivityRegistry::beginOfRunSignal_, sim_act::Signaler< T >::connect(), SimActivityRegistry::endOfRunSignal_, RunAction::m_beginOfRunSignal, RunAction::m_endOfRunSignal, and m_registry.

Referenced by SimRunInterface::Connect(), and initializeUserActions().

539 {
542 }
SimActivityRegistry m_registry
Definition: RunManager.h:158
SimActivityRegistry::EndOfRunSignal m_endOfRunSignal
Definition: RunAction.h:26
BeginOfRunSignal beginOfRunSignal_
EndOfRunSignal endOfRunSignal_
void connect(Observer< const T * > *iObs)
does not take ownership of memory
Definition: Signaler.h:59
SimActivityRegistry::BeginOfRunSignal m_beginOfRunSignal
Definition: RunAction.h:25
void RunManager::Connect ( EventAction eventAction)

Definition at line 544 of file RunManager.cc.

References SimActivityRegistry::beginOfEventSignal_, sim_act::Signaler< T >::connect(), SimActivityRegistry::endOfEventSignal_, EventAction::m_beginOfEventSignal, EventAction::m_endOfEventSignal, and m_registry.

545 {
548 }
SimActivityRegistry m_registry
Definition: RunManager.h:158
EndOfEventSignal endOfEventSignal_
SimActivityRegistry::EndOfEventSignal m_endOfEventSignal
Definition: EventAction.h:54
BeginOfEventSignal beginOfEventSignal_
void connect(Observer< const T * > *iObs)
does not take ownership of memory
Definition: Signaler.h:59
SimActivityRegistry::BeginOfEventSignal m_beginOfEventSignal
Definition: EventAction.h:53
void RunManager::Connect ( TrackingAction trackingAction)

Definition at line 550 of file RunManager.cc.

References SimActivityRegistry::beginOfTrackSignal_, sim_act::Signaler< T >::connect(), SimActivityRegistry::endOfTrackSignal_, TrackingAction::m_beginOfTrackSignal, TrackingAction::m_endOfTrackSignal, and m_registry.

551 {
554 }
SimActivityRegistry m_registry
Definition: RunManager.h:158
SimActivityRegistry::EndOfTrackSignal m_endOfTrackSignal
void connect(Observer< const T * > *iObs)
does not take ownership of memory
Definition: Signaler.h:59
EndOfTrackSignal endOfTrackSignal_
BeginOfTrackSignal beginOfTrackSignal_
SimActivityRegistry::BeginOfTrackSignal m_beginOfTrackSignal
void RunManager::Connect ( SteppingAction steppingAction)

Definition at line 556 of file RunManager.cc.

References sim_act::Signaler< T >::connect(), SimActivityRegistry::g4StepSignal_, SteppingAction::m_g4StepSignal, and m_registry.

557 {
559 }
SimActivityRegistry m_registry
Definition: RunManager.h:158
SimActivityRegistry::G4StepSignal m_g4StepSignal
void connect(Observer< const T * > *iObs)
does not take ownership of memory
Definition: Signaler.h:59
const G4Event* RunManager::currentEvent ( ) const
inline

Definition at line 82 of file RunManager.h.

References m_currentEvent.

82 { return m_currentEvent; }
G4Event * m_currentEvent
Definition: RunManager.h:128
const G4Run* RunManager::currentRun ( ) const
inline

Definition at line 78 of file RunManager.h.

References m_currentRun.

78 { return m_currentRun; }
G4Run * m_currentRun
Definition: RunManager.h:127
void RunManager::DumpMagneticField ( const G4Field *  field) const
protected

Definition at line 561 of file RunManager.cc.

References funct::cos(), runTauDisplay::dr, groupFilesInBlocks::fout, i, j, m_FieldFile, GenerateHcalLaserBadRunList::out, phi, point, alignCSCRings::r, funct::sin(), z, and SiStripMonitorClusterAlca_cfi::zmax.

Referenced by initG4().

562 {
563  std::ofstream fout(m_FieldFile.c_str(), std::ios::out);
564  if(fout.fail()){
565  edm::LogWarning("SimG4CoreApplication")
566  << " RunManager WARNING : "
567  << "error opening file <" << m_FieldFile << "> for magnetic field";
568  } else {
569  double rmax = 9000*mm;
570  double zmax = 16000*mm;
571 
572  double dr = 5*cm;
573  double dz = 20*cm;
574 
575  int nr = (int)(rmax/dr);
576  int nz = 2*(int)(zmax/dz);
577 
578  double r = 0.0;
579  double z0 = -zmax;
580  double z;
581 
582  double phi = 0.0;
583  double cosf = cos(phi);
584  double sinf = sin(phi);
585 
586  double point[4] = {0.0,0.0,0.0,0.0};
587  double bfield[3] = {0.0,0.0,0.0};
588 
589  fout << std::setprecision(6);
590  for(int i=0; i<=nr; ++i) {
591  z = z0;
592  for(int j=0; j<=nz; ++j) {
593  point[0] = r*cosf;
594  point[1] = r*sinf;
595  point[2] = z;
596  field->GetFieldValue(point, bfield);
597  fout << "R(mm)= " << r/mm << " phi(deg)= " << phi/degree
598  << " Z(mm)= " << z/mm << " Bz(tesla)= " << bfield[2]/tesla
599  << " Br(tesla)= " << (bfield[0]*cosf + bfield[1]*sinf)/tesla
600  << " Bphi(tesla)= " << (bfield[0]*sinf - bfield[1]*cosf)/tesla
601  << G4endl;
602  z += dz;
603  }
604  r += dr;
605  }
606 
607  fout.close();
608  }
609 }
int i
Definition: DBlmapReader.cc:9
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int j
Definition: DBlmapReader.cc:9
std::string m_FieldFile
Definition: RunManager.h:169
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
G4Event * RunManager::generateEvent ( edm::Event inpevt)
protected

Definition at line 396 of file RunManager.cc.

References edm::EventID::event(), runTauDisplay::evtid, edm::Event::getByToken(), Generator::HepMC2G4(), edm::EventBase::id(), m_currentEvent, m_generator, m_HepMC, m_nonBeam, m_simEvent, Generator::nonBeamEvent2G4(), resetGenParticleId(), and Generator::setGenEvent().

Referenced by produce().

397 {
398  if (m_currentEvent!=0) { delete m_currentEvent; }
399  m_currentEvent = 0;
400  if (m_simEvent!=0) { delete m_simEvent; }
401  m_simEvent = 0;
402 
403  // 64 bits event ID in CMSSW converted into Geant4 event ID
404  G4int evtid = (G4int)inpevt.id().event();
405  G4Event * evt = new G4Event(evtid);
406 
408 
409  inpevt.getByToken( m_HepMC, HepMCEvt ) ;
410 
411  m_generator->setGenEvent(HepMCEvt->GetEvent());
412 
413  // required to reset the GenParticle Id for particles transported
414  // along the beam pipe
415  // to their original value for SimTrack creation
416  resetGenParticleId( inpevt );
417 
418  if (!m_nonBeam)
419  {
420  m_generator->HepMC2G4(HepMCEvt->GetEvent(),evt);
421  }
422  else
423  {
424  m_generator->nonBeamEvent2G4(HepMCEvt->GetEvent(),evt);
425  }
426 
427  return evt;
428 }
EventNumber_t event() const
Definition: EventID.h:41
edm::EDGetTokenT< edm::HepMCProduct > m_HepMC
Definition: RunManager.h:111
G4Event * m_currentEvent
Definition: RunManager.h:128
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
void HepMC2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:100
Generator * m_generator
Definition: RunManager.h:110
bool m_nonBeam
Definition: RunManager.h:114
void setGenEvent(const HepMC::GenEvent *inpevt)
Definition: Generator.h:25
void resetGenParticleId(edm::Event &inpevt)
Definition: RunManager.cc:524
void nonBeamEvent2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:529
edm::EventID id() const
Definition: EventBase.h:58
G4SimEvent * m_simEvent
Definition: RunManager.h:129
const Generator* RunManager::generator ( ) const
inline

Definition at line 81 of file RunManager.h.

References m_generator.

81 { return m_generator; }
Generator * m_generator
Definition: RunManager.h:110
SimTrackManager * RunManager::GetSimTrackManager ( )

Definition at line 533 of file RunManager.cc.

References m_trackManager.

Referenced by SimRunInterface::SimRunInterface().

534 {
535  return m_trackManager.get();
536 }
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:162
void RunManager::initG4 ( const edm::EventSetup es)

Definition at line 179 of file RunManager.cc.

References SimActivityRegistry::beginOfJobSignal_, sim::FieldBuilder::build(), trackerTree::check(), edm::ESWatcher< T >::check(), cmsHarvester::cmd, edm::errors::Configuration, AttachSD::create(), beamerCreator::create(), SimActivityRegistry::dddWorldSignal_, dir, DumpMagneticField(), Exception, firstRun, g, reco::get(), edm::EventSetup::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), DDDWorld::GetWorldVolume(), GeV, idealGeomRcdWatcher_, idealMagRcdWatcher_, recoMuon::in, initializeRun(), initializeUserActions(), edm::errors::LogicError, m_attach, m_check, m_chordFinderSetter, m_fieldBuilder, m_FieldFile, m_G4Commands, m_g4overlap, m_kernel, m_managerInitialized, m_p, m_pField, m_physicsList, m_PhysicsTablesDir, m_pPhysics, m_primaryTransformer, m_prodCuts, m_pUseMagneticField, m_RegionFile, m_registry, m_RestorePhysicsTables, m_sensCaloDets, m_sensTkDets, m_StorePhysicsTables, m_sVerbose, m_trackManager, m_WriteFile, map_, bookConverter::max, G4RegionReporter::ReportRegions(), and AlCaHLTBitMon_QueryRunRegistry::string.

180 {
181  bool geomChanged = idealGeomRcdWatcher_.check(es);
182  if (geomChanged && (!firstRun)) {
183  throw cms::Exception("BadConfig")
184  << "[SimG4Core RunManager]\n"
185  << "The Geometry configuration is changed during the job execution\n"
186  << "this is not allowed, the geometry must stay unchanged\n";
187  }
188  if (m_pUseMagneticField) {
189  bool magChanged = idealMagRcdWatcher_.check(es);
190  if (magChanged && (!firstRun)) {
192  << "[SimG4Core RunManager]\n"
193  << "The MagneticField configuration is changed during the job execution\n"
194  << "this is not allowed, the MagneticField must stay unchanged\n";
195  }
196  }
197 
198  if (m_managerInitialized) return;
199 
200  // DDDWorld: get the DDCV from the ES and use it to build the World
202  es.get<IdealGeometryRecord>().get(pDD);
203 
205  SensitiveDetectorCatalog catalog_;
206  const DDDWorld * world = new DDDWorld(&(*pDD), map_, catalog_, false);
208 
210  {
211  // setup the magnetic field
213  es.get<IdealMagneticFieldRecord>().get(pMF);
214  const GlobalPoint g(0.,0.,0.);
215 
217  m_fieldBuilder = new sim::FieldBuilder(&(*pMF), m_pField);
218  G4TransportationManager * tM =
219  G4TransportationManager::GetTransportationManager();
220  m_fieldBuilder->build( tM->GetFieldManager(),
221  tM->GetPropagatorInField(),
223  if("" != m_FieldFile) {
224  DumpMagneticField(tM->GetFieldManager()->GetDetectorField());
225  }
226  }
227 
228  // we need the track manager now
229  m_trackManager = std::unique_ptr<SimTrackManager>(new SimTrackManager);
230 
231  // attach sensitive detector
232  m_attach = new AttachSD;
233 
234  std::pair< std::vector<SensitiveTkDetector*>,
235  std::vector<SensitiveCaloDetector*> > sensDets =
236  m_attach->create(*world,(*pDD),catalog_,m_p,m_trackManager.get(),
237  m_registry);
238 
239  m_sensTkDets.swap(sensDets.first);
240  m_sensCaloDets.swap(sensDets.second);
241 
242  edm::LogInfo("SimG4CoreApplication")
243  << " RunManager: Sensitive Detector "
244  << "building finished; found "
245  << m_sensTkDets.size()
246  << " Tk type Producers, and "
247  << m_sensCaloDets.size()
248  << " Calo type producers ";
249 
251  es.get<PDTRecord>().get(fTable);
252  const HepPDT::ParticleDataTable *fPDGTable = &(*fTable);
253 
255 
256  std::unique_ptr<PhysicsListMakerBase>
257  physicsMaker(PhysicsListFactory::get()->create(
258  m_pPhysics.getParameter<std::string> ("type")));
259  if (physicsMaker.get()==nullptr) {
261  << "Unable to find the Physics list requested";
262  }
263  m_physicsList =
264  physicsMaker->make(map_,fPDGTable,m_chordFinderSetter,m_pPhysics,m_registry);
265 
266  PhysicsList* phys = m_physicsList.get();
267  if (phys==nullptr) {
269  << "Physics list construction failed!";
270  }
271 
272  // adding GFlash, Russian Roulette for eletrons and gamma,
273  // step limiters on top of any Physics Lists
274  phys->RegisterPhysics(new ParametrisedEMPhysics("EMoptions",m_pPhysics));
275 
276  m_physicsList->ResetStoredInAscii();
277  std::string tableDir = m_PhysicsTablesDir;
279  m_physicsList->SetPhysicsTableRetrieved(tableDir);
280  }
281  edm::LogInfo("SimG4CoreApplication")
282  << "RunManager: start initialisation of PhysicsList";
283 
284  int verb = std::max(m_pPhysics.getUntrackedParameter<int>("Verbosity",0),
285  m_p.getParameter<int>("SteppingVerbosity"));
286 
287  m_physicsList->SetDefaultCutValue(m_pPhysics.getParameter<double>("DefaultCutValue")*CLHEP::cm);
288  m_physicsList->SetCutsWithDefault();
289  m_prodCuts.reset(new DDG4ProductionCuts(map_, verb, m_pPhysics));
290  m_prodCuts->update();
291 
292  m_kernel->SetPhysics(phys);
293  m_kernel->InitializePhysics();
294 
295  if (m_kernel->RunInitialization()) { m_managerInitialized = true; }
296  else {
298  << "G4RunManagerKernel initialization failed!";
299  }
300 
302  {
303  std::ostringstream dir;
304  dir << tableDir << '\0';
305  std::string cmd = std::string("/control/shell mkdir -p ")+tableDir;
306  if (!std::ifstream(dir.str().c_str(), std::ios::in))
307  G4UImanager::GetUIpointer()->ApplyCommand(cmd);
308  m_physicsList->StorePhysicsTable(tableDir);
309  }
310 
311  //tell all interesting parties that we are beginning the job
312  BeginOfJob aBeginOfJob(&es);
313  m_registry.beginOfJobSignal_(&aBeginOfJob);
314 
315  G4int sv = m_p.getParameter<int>("SteppingVerbosity");
316  G4double elim = m_p.getParameter<double>("StepVerboseThreshold")*CLHEP::GeV;
317  std::vector<int> ve = m_p.getParameter<std::vector<int> >("VerboseEvents");
318  std::vector<int> vn = m_p.getParameter<std::vector<int> >("VertexNumber");
319  std::vector<int> vt = m_p.getParameter<std::vector<int> >("VerboseTracks");
320 
321  if(sv > 0) {
322  m_sVerbose.reset(new CMSSteppingVerbose(sv, elim, ve, vn, vt));
323  }
325 
326  if(0 < m_G4Commands.size()) {
327  G4cout << "RunManager: Requested UI commands: " << G4endl;
328  for (unsigned it=0; it<m_G4Commands.size(); ++it) {
329  G4cout << " " << m_G4Commands[it] << G4endl;
330  G4UImanager::GetUIpointer()->ApplyCommand(m_G4Commands[it]);
331  }
332  }
333 
334  if("" != m_WriteFile) {
335  G4GDMLParser gdml;
336  gdml.Write(m_WriteFile, world->GetWorldVolume(), true);
337  }
338 
339  if("" != m_RegionFile) {
340  G4RegionReporter rrep;
342  }
343 
345 
346  // If the Geant4 particle table is needed, decomment the lines below
347  //
348  // G4cout << "Output of G4ParticleTable DumpTable:" << G4endl;
349  // G4ParticleTable::GetParticleTable()->DumpTable("ALL");
350 
351  initializeRun();
352  firstRun= false;
353 }
T getParameter(std::string const &) const
bool m_check
Definition: RunManager.h:137
Map map_
T getUntrackedParameter(std::string const &, T const &) const
edm::ESWatcher< IdealMagneticFieldRecord > idealMagRcdWatcher_
Definition: RunManager.h:167
const double GeV
Definition: MathUtil.h:16
const G4VPhysicalVolume * GetWorldVolume() const
Definition: DDDWorld.h:18
SimActivityRegistry m_registry
Definition: RunManager.h:158
edm::ParameterSet m_p
Definition: RunManager.h:150
HepPDT::ParticleDataTable ParticleDataTable
void initializeRun()
Definition: RunManager.cc:488
void initializeUserActions()
Definition: RunManager.cc:451
bool m_pUseMagneticField
Definition: RunManager.h:124
edm::ESWatcher< IdealGeometryRecord > idealGeomRcdWatcher_
Definition: RunManager.h:166
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
std::vector< SensitiveCaloDetector * > m_sensCaloDets
Definition: RunManager.h:154
std::vector< SensitiveTkDetector * > m_sensTkDets
Definition: RunManager.h:153
BeginOfJobSignal beginOfJobSignal_
std::string m_WriteFile
Definition: RunManager.h:170
bool firstRun
Definition: RunManager.h:123
void build(G4FieldManager *fM=nullptr, G4PropagatorInField *fP=nullptr, ChordFinderSetter *setter=nullptr)
Definition: FieldBuilder.cc:41
bool m_RestorePhysicsTables
Definition: RunManager.h:135
std::unique_ptr< CMSSteppingVerbose > m_sVerbose
Definition: RunManager.h:157
edm::ParameterSet m_pField
Definition: RunManager.h:139
edm::ParameterSet m_pPhysics
Definition: RunManager.h:142
edm::ParameterSet m_g4overlap
Definition: RunManager.h:148
DDDWorldSignal dddWorldSignal_
const T & get() const
Definition: EventSetup.h:56
std::pair< std::vector< SensitiveTkDetector * >, std::vector< SensitiveCaloDetector * > > create(const DDDWorld &w, const DDCompactView &cpv, const SensitiveDetectorCatalog &clg, edm::ParameterSet const &p, const SimTrackManager *m, SimActivityRegistry &reg) const
Definition: AttachSD.cc:23
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
void ReportRegions(const std::string &ss)
void DumpMagneticField(const G4Field *) const
Definition: RunManager.cc:561
string cmd
self.logger.debug(&quot;Path is now `%s&#39;&quot; % \ path)
sim::ChordFinderSetter * m_chordFinderSetter
Definition: RunManager.h:164
std::string m_RegionFile
Definition: RunManager.h:171
AttachSD * m_attach
Definition: RunManager.h:152
PrimaryTransformer * m_primaryTransformer
Definition: RunManager.h:117
sim::FieldBuilder * m_fieldBuilder
Definition: RunManager.h:163
std::string m_PhysicsTablesDir
Definition: RunManager.h:133
bool m_StorePhysicsTables
Definition: RunManager.h:134
dbl *** dir
Definition: mlp_gen.cc:35
std::unique_ptr< DDG4ProductionCuts > m_prodCuts
Definition: RunManager.h:156
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:162
std::vector< std::string > m_G4Commands
Definition: RunManager.h:149
std::unique_ptr< PhysicsList > m_physicsList
Definition: RunManager.h:116
std::string m_FieldFile
Definition: RunManager.h:169
bool m_managerInitialized
Definition: RunManager.h:119
T get(const Candidate &c)
Definition: component.h:55
G4RunManagerKernel * m_kernel
Definition: RunManager.h:108
void RunManager::initializeRun ( )

Definition at line 488 of file RunManager.cc.

References RunAction::BeginOfRunAction(), m_currentRun, m_runAborted, m_runInitialized, and m_userRunAction.

Referenced by initG4().

489 {
490  m_runInitialized = false;
491  if (m_currentRun==nullptr) { m_currentRun = new G4Run(); }
492  G4StateManager::GetStateManager()->SetNewState(G4State_GeomClosed);
494  m_runAborted = false;
495  m_runInitialized = true;
496 }
G4Run * m_currentRun
Definition: RunManager.h:127
RunAction * m_userRunAction
Definition: RunManager.h:130
void BeginOfRunAction(const G4Run *aRun)
Definition: RunAction.cc:22
bool m_runInitialized
Definition: RunManager.h:120
bool m_runAborted
Definition: RunManager.h:122
void RunManager::initializeUserActions ( )

Definition at line 451 of file RunManager.cc.

References Connect(), m_EvtMgrVerbosity, m_generator, m_hasWatchers, m_kernel, m_pEventAction, m_pRunAction, m_pStackingAction, m_pSteppingAction, m_pTrackingAction, m_runInterface, m_sVerbose, m_trackManager, and m_userRunAction.

Referenced by initG4().

452 {
453  m_runInterface = new SimRunInterface(this, false);
454 
457 
458  G4EventManager * eventManager = m_kernel->GetEventManager();
459  eventManager->SetVerboseLevel(m_EvtMgrVerbosity);
460 
461  if (m_generator!=nullptr) {
462  EventAction * userEventAction =
464  m_sVerbose.get());
465  Connect(userEventAction);
466  eventManager->SetUserAction(userEventAction);
467 
468  TrackingAction* userTrackingAction =
469  new TrackingAction(userEventAction,m_pTrackingAction,m_sVerbose.get());
470  Connect(userTrackingAction);
471  eventManager->SetUserAction(userTrackingAction);
472 
473  SteppingAction* userSteppingAction =
474  new SteppingAction(userEventAction,m_pSteppingAction,m_sVerbose.get(),m_hasWatchers);
475  Connect(userSteppingAction);
476  eventManager->SetUserAction(userSteppingAction);
477 
478  eventManager->SetUserAction(new StackingAction(userTrackingAction,
480 
481  } else {
482  edm::LogWarning("SimG4CoreApplication") << " RunManager: WARNING : "
483  << "No generator; initialized "
484  << "only RunAction!";
485  }
486 }
Generator * m_generator
Definition: RunManager.h:110
bool m_hasWatchers
Definition: RunManager.h:125
int m_EvtMgrVerbosity
Definition: RunManager.h:136
SimRunInterface * m_runInterface
Definition: RunManager.h:131
std::unique_ptr< CMSSteppingVerbose > m_sVerbose
Definition: RunManager.h:157
edm::ParameterSet m_pStackingAction
Definition: RunManager.h:145
edm::ParameterSet m_pEventAction
Definition: RunManager.h:144
edm::ParameterSet m_pSteppingAction
Definition: RunManager.h:147
RunAction * m_userRunAction
Definition: RunManager.h:130
void Connect(RunAction *)
Definition: RunManager.cc:538
edm::ParameterSet m_pRunAction
Definition: RunManager.h:143
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:162
edm::ParameterSet m_pTrackingAction
Definition: RunManager.h:146
G4RunManagerKernel * m_kernel
Definition: RunManager.h:108
void RunManager::produce ( edm::Event inpevt,
const edm::EventSetup es 
)

Definition at line 361 of file RunManager.cc.

References abortRun(), G4SimEvent::collisionPoint(), edm::EventID::event(), Generator::eventWeight(), generateEvent(), Generator::genEvent(), Generator::genVertex(), G4SimEvent::hepEvent(), edm::EventBase::id(), m_currentEvent, m_generator, m_kernel, m_simEvent, G4SimEvent::nGenParts(), G4SimEvent::nTracks(), G4SimEvent::nVertices(), edm::second(), contentValuesCheck::ss, and G4SimEvent::weight().

362 {
363  m_currentEvent = generateEvent(inpevt);
364  m_simEvent = new G4SimEvent;
367  if (m_generator->genVertex() !=0 ) {
370  m_generator->genVertex()->y()/centimeter,
371  m_generator->genVertex()->z()/centimeter,
372  m_generator->genVertex()->t()/second));
373  }
374  if (m_currentEvent->GetNumberOfPrimaryVertex()==0) {
375  std::stringstream ss;
376  ss << " RunManager::produce(): event " << inpevt.id().event()
377  << " with no G4PrimaryVertices\n" ;
378  throw SimG4Exception(ss.str());
379 
380  abortRun(false);
381  } else {
382  edm::LogInfo("SimG4CoreApplication")
383  << "RunManager::produce: start Event " << inpevt.id().event()
384  << " of weight " << m_simEvent->weight()
385  << " with " << m_simEvent->nTracks() << " tracks and "
386  << m_simEvent->nVertices()
387  << " vertices, generated by " << m_simEvent->nGenParts() << " particles ";
388 
389  m_kernel->GetEventManager()->ProcessOneEvent(m_currentEvent);
390 
391  edm::LogInfo("SimG4CoreApplication")
392  << " RunManager::produce: ended Event " << inpevt.id().event();
393  }
394 }
EventNumber_t event() const
Definition: EventID.h:41
virtual const math::XYZTLorentzVector * genVertex() const
Definition: Generator.h:30
virtual const double eventWeight() const
Definition: Generator.h:31
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
G4Event * m_currentEvent
Definition: RunManager.h:128
void abortRun(bool softAbort=false)
Definition: RunManager.cc:515
virtual const HepMC::GenEvent * genEvent() const
Definition: Generator.h:29
Generator * m_generator
Definition: RunManager.h:110
U second(std::pair< T, U > const &p)
void weight(float w)
Definition: G4SimEvent.h:27
void hepEvent(const HepMC::GenEvent *r)
Definition: G4SimEvent.h:25
unsigned int nTracks() const
Definition: G4SimEvent.h:22
unsigned int nVertices() const
Definition: G4SimEvent.h:23
unsigned int nGenParts() const
Definition: G4SimEvent.h:24
G4Event * generateEvent(edm::Event &inpevt)
Definition: RunManager.cc:396
edm::EventID id() const
Definition: EventBase.h:58
void collisionPoint(const math::XYZTLorentzVectorD &v)
Definition: G4SimEvent.h:29
G4SimEvent * m_simEvent
Definition: RunManager.h:129
G4RunManagerKernel * m_kernel
Definition: RunManager.h:108
std::vector<std::shared_ptr<SimProducer> > RunManager::producers ( ) const
inline

Definition at line 90 of file RunManager.h.

References m_producers.

90  {
91  return m_producers;
92  }
std::vector< std::shared_ptr< SimProducer > > m_producers
Definition: RunManager.h:160
void RunManager::resetGenParticleId ( edm::Event inpevt)
protected

Definition at line 524 of file RunManager.cc.

References edm::Event::getByToken(), edm::HandleBase::isValid(), m_LHCtr, m_trackManager, and edm::Handle< T >::product().

Referenced by generateEvent().

525 {
527  inpevt.getByToken( m_LHCtr, theLHCTlink );
528  if ( theLHCTlink.isValid() ) {
529  m_trackManager->setLHCTransportLink( theLHCTlink.product() );
530  }
531 }
edm::EDGetTokenT< edm::LHCTransportLinkContainer > m_LHCtr
Definition: RunManager.h:112
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
bool isValid() const
Definition: HandleBase.h:75
T const * product() const
Definition: Handle.h:81
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:162
std::vector<SensitiveCaloDetector*>& RunManager::sensCaloDetectors ( )
inline

Definition at line 87 of file RunManager.h.

References m_sensCaloDets.

87  {
88  return m_sensCaloDets;
89  }
std::vector< SensitiveCaloDetector * > m_sensCaloDets
Definition: RunManager.h:154
std::vector<SensitiveTkDetector*>& RunManager::sensTkDetectors ( )
inline

Definition at line 84 of file RunManager.h.

References m_sensTkDets.

84  {
85  return m_sensTkDets;
86  }
std::vector< SensitiveTkDetector * > m_sensTkDets
Definition: RunManager.h:153
G4SimEvent* RunManager::simEvent ( )
inline

Definition at line 83 of file RunManager.h.

References m_simEvent.

Referenced by SimRunInterface::simEvent().

83 { return m_simEvent; }
G4SimEvent * m_simEvent
Definition: RunManager.h:129
void RunManager::stopG4 ( )

Definition at line 355 of file RunManager.cc.

References m_runTerminated, and terminateRun().

356 {
357  G4StateManager::GetStateManager()->SetNewState(G4State_Quit);
358  if (!m_runTerminated) { terminateRun(); }
359 }
void terminateRun()
Definition: RunManager.cc:498
bool m_runTerminated
Definition: RunManager.h:121
void RunManager::terminateRun ( )

Definition at line 498 of file RunManager.cc.

References RunAction::EndOfRunAction(), m_currentEvent, m_currentRun, m_kernel, m_runInitialized, m_runTerminated, m_simEvent, and m_userRunAction.

Referenced by abortRun(), stopG4(), and ~RunManager().

499 {
500  if(m_runTerminated) { return; }
501  if (m_userRunAction!=nullptr) {
503  delete m_userRunAction;
504  m_userRunAction = nullptr;
505  }
506  delete m_currentEvent;
507  m_currentEvent = nullptr;
508  delete m_simEvent;
509  m_simEvent = nullptr;
510  if(m_kernel != nullptr) { m_kernel->RunTermination(); }
511  m_runInitialized = false;
512  m_runTerminated = true;
513 }
G4Event * m_currentEvent
Definition: RunManager.h:128
void EndOfRunAction(const G4Run *aRun)
Definition: RunAction.cc:40
G4Run * m_currentRun
Definition: RunManager.h:127
bool m_runTerminated
Definition: RunManager.h:121
RunAction * m_userRunAction
Definition: RunManager.h:130
bool m_runInitialized
Definition: RunManager.h:120
G4SimEvent * m_simEvent
Definition: RunManager.h:129
G4RunManagerKernel * m_kernel
Definition: RunManager.h:108

Member Data Documentation

bool RunManager::firstRun
private

Definition at line 123 of file RunManager.h.

Referenced by initG4().

edm::ESWatcher<IdealGeometryRecord> RunManager::idealGeomRcdWatcher_
private

Definition at line 166 of file RunManager.h.

Referenced by initG4().

edm::ESWatcher<IdealMagneticFieldRecord> RunManager::idealMagRcdWatcher_
private

Definition at line 167 of file RunManager.h.

Referenced by initG4().

AttachSD* RunManager::m_attach
private

Definition at line 152 of file RunManager.h.

Referenced by initG4().

bool RunManager::m_check
private

Definition at line 137 of file RunManager.h.

Referenced by initG4(), and RunManager().

sim::ChordFinderSetter* RunManager::m_chordFinderSetter
private

Definition at line 164 of file RunManager.h.

Referenced by initG4().

G4Event* RunManager::m_currentEvent
private

Definition at line 128 of file RunManager.h.

Referenced by abortEvent(), currentEvent(), generateEvent(), produce(), and terminateRun().

G4Run* RunManager::m_currentRun
private

Definition at line 127 of file RunManager.h.

Referenced by abortRun(), currentRun(), initializeRun(), and terminateRun().

int RunManager::m_EvtMgrVerbosity
private

Definition at line 136 of file RunManager.h.

Referenced by initializeUserActions().

sim::FieldBuilder* RunManager::m_fieldBuilder
private

Definition at line 163 of file RunManager.h.

Referenced by initG4().

std::string RunManager::m_FieldFile
private

Definition at line 169 of file RunManager.h.

Referenced by DumpMagneticField(), initG4(), and RunManager().

std::vector<std::string> RunManager::m_G4Commands
private

Definition at line 149 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_g4overlap
private

Definition at line 148 of file RunManager.h.

Referenced by initG4().

Generator* RunManager::m_generator
private

Definition at line 110 of file RunManager.h.

Referenced by generateEvent(), generator(), initializeUserActions(), produce(), and ~RunManager().

bool RunManager::m_hasWatchers
private

Definition at line 125 of file RunManager.h.

Referenced by initializeUserActions(), and RunManager().

edm::EDGetTokenT<edm::HepMCProduct> RunManager::m_HepMC
private

Definition at line 111 of file RunManager.h.

Referenced by generateEvent().

G4RunManagerKernel* RunManager::m_kernel
private
edm::EDGetTokenT<edm::LHCTransportLinkContainer> RunManager::m_LHCtr
private

Definition at line 112 of file RunManager.h.

Referenced by resetGenParticleId().

bool RunManager::m_managerInitialized
private

Definition at line 119 of file RunManager.h.

Referenced by initG4().

bool RunManager::m_nonBeam
private

Definition at line 114 of file RunManager.h.

Referenced by generateEvent().

edm::ParameterSet RunManager::m_p
private

Definition at line 150 of file RunManager.h.

Referenced by initG4(), and RunManager().

edm::ParameterSet RunManager::m_pEventAction
private

Definition at line 144 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pField
private

Definition at line 139 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_pGenerator
private

Definition at line 140 of file RunManager.h.

edm::ParameterSet RunManager::m_pGeometry
private

Definition at line 138 of file RunManager.h.

std::unique_ptr<PhysicsList> RunManager::m_physicsList
private

Definition at line 116 of file RunManager.h.

Referenced by initG4().

std::string RunManager::m_PhysicsTablesDir
private

Definition at line 133 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_pPhysics
private

Definition at line 142 of file RunManager.h.

Referenced by initG4().

PrimaryTransformer* RunManager::m_primaryTransformer
private

Definition at line 117 of file RunManager.h.

Referenced by initG4().

std::unique_ptr<DDG4ProductionCuts> RunManager::m_prodCuts
private

Definition at line 156 of file RunManager.h.

Referenced by initG4().

std::vector<std::shared_ptr<SimProducer> > RunManager::m_producers
private

Definition at line 160 of file RunManager.h.

Referenced by producers(), and RunManager().

edm::ParameterSet RunManager::m_pRunAction
private

Definition at line 143 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pStackingAction
private

Definition at line 145 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pSteppingAction
private

Definition at line 147 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pTrackingAction
private

Definition at line 146 of file RunManager.h.

Referenced by initializeUserActions().

bool RunManager::m_pUseMagneticField
private

Definition at line 124 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_pVertexGenerator
private

Definition at line 141 of file RunManager.h.

std::string RunManager::m_RegionFile
private

Definition at line 171 of file RunManager.h.

Referenced by initG4(), and RunManager().

SimActivityRegistry RunManager::m_registry
private

Definition at line 158 of file RunManager.h.

Referenced by Connect(), initG4(), and RunManager().

bool RunManager::m_RestorePhysicsTables
private

Definition at line 135 of file RunManager.h.

Referenced by initG4().

bool RunManager::m_runAborted
private

Definition at line 122 of file RunManager.h.

Referenced by abortRun(), and initializeRun().

bool RunManager::m_runInitialized
private

Definition at line 120 of file RunManager.h.

Referenced by initializeRun(), and terminateRun().

SimRunInterface* RunManager::m_runInterface
private

Definition at line 131 of file RunManager.h.

Referenced by initializeUserActions(), RunManager(), and ~RunManager().

bool RunManager::m_runTerminated
private

Definition at line 121 of file RunManager.h.

Referenced by abortEvent(), stopG4(), terminateRun(), and ~RunManager().

std::vector<SensitiveCaloDetector*> RunManager::m_sensCaloDets
private

Definition at line 154 of file RunManager.h.

Referenced by initG4(), and sensCaloDetectors().

std::vector<SensitiveTkDetector*> RunManager::m_sensTkDets
private

Definition at line 153 of file RunManager.h.

Referenced by initG4(), and sensTkDetectors().

G4SimEvent* RunManager::m_simEvent
private

Definition at line 129 of file RunManager.h.

Referenced by generateEvent(), produce(), simEvent(), and terminateRun().

bool RunManager::m_StorePhysicsTables
private

Definition at line 134 of file RunManager.h.

Referenced by initG4().

std::unique_ptr<CMSSteppingVerbose> RunManager::m_sVerbose
private

Definition at line 157 of file RunManager.h.

Referenced by initG4(), initializeUserActions(), and RunManager().

std::unique_ptr<SimTrackManager> RunManager::m_trackManager
private
std::unique_ptr<CustomUIsession> RunManager::m_UIsession
private

Definition at line 115 of file RunManager.h.

Referenced by RunManager().

RunAction* RunManager::m_userRunAction
private

Definition at line 130 of file RunManager.h.

Referenced by initializeRun(), initializeUserActions(), RunManager(), and terminateRun().

std::vector<std::shared_ptr<SimWatcher> > RunManager::m_watchers
private

Definition at line 159 of file RunManager.h.

Referenced by RunManager().

std::string RunManager::m_WriteFile
private

Definition at line 170 of file RunManager.h.

Referenced by initG4(), and RunManager().