CMS 3D CMS Logo

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< IdealGeometryRecordidealGeomRcdWatcher_
 
edm::ESWatcher< IdealMagneticFieldRecordidealMagRcdWatcher_
 
AttachSDm_attach
 
bool m_check
 
sim::ChordFinderSetterm_chordFinderSetter
 
G4Event * m_currentEvent
 
G4Run * m_currentRun
 
int m_EvtMgrVerbosity
 
std::string m_FieldFile
 
std::vector< std::string > m_G4Commands
 
edm::ParameterSet m_g4overlap
 
Generatorm_generator
 
bool m_hasWatchers
 
edm::EDGetTokenT< edm::HepMCProductm_HepMC
 
G4RunManagerKernel * m_kernel
 
edm::EDGetTokenT< edm::LHCTransportLinkContainerm_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< DDG4ProductionCutsm_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< CMSSteppingVerbosem_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 63 of file RunManager.h.

Constructor & Destructor Documentation

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

Definition at line 115 of file RunManager.cc.

References SimActivityRegistry::connect(), createWatchers(), g4SimHits_cfi::CustomUIsession, 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.

116  : m_generator(new Generator(p.getParameter<edm::ParameterSet>("Generator"))),
117  m_HepMC(iC.consumes<edm::HepMCProduct>(p.getParameter<edm::ParameterSet>("Generator").getParameter<edm::InputTag>("HepMCProductLabel"))),
118  m_LHCtr(iC.consumes<edm::LHCTransportLinkContainer>(p.getParameter<edm::InputTag>("theLHCTlinkTag"))),
119  m_nonBeam(p.getParameter<bool>("NonBeamEvent")),
120  m_primaryTransformer(nullptr),
121  m_managerInitialized(false),
122  m_runInitialized(false), m_runTerminated(false), m_runAborted(false),
123  firstRun(true),
124  m_pUseMagneticField(p.getParameter<bool>("UseMagneticField")),
125  m_currentRun(nullptr), m_currentEvent(nullptr), m_simEvent(nullptr),
126  m_PhysicsTablesDir(p.getParameter<std::string>("PhysicsTablesDirectory")),
127  m_StorePhysicsTables(p.getParameter<bool>("StorePhysicsTables")),
128  m_RestorePhysicsTables(p.getParameter<bool>("RestorePhysicsTables")),
129  m_EvtMgrVerbosity(p.getUntrackedParameter<int>("G4EventManagerVerbosity",0)),
130  m_pField(p.getParameter<edm::ParameterSet>("MagneticField")),
131  m_pGenerator(p.getParameter<edm::ParameterSet>("Generator")),
132  m_pPhysics(p.getParameter<edm::ParameterSet>("Physics")),
133  m_pRunAction(p.getParameter<edm::ParameterSet>("RunAction")),
134  m_pEventAction(p.getParameter<edm::ParameterSet>("EventAction")),
135  m_pStackingAction(p.getParameter<edm::ParameterSet>("StackingAction")),
136  m_pTrackingAction(p.getParameter<edm::ParameterSet>("TrackingAction")),
137  m_pSteppingAction(p.getParameter<edm::ParameterSet>("SteppingAction")),
138  m_g4overlap(p.getParameter<edm::ParameterSet>("G4CheckOverlap")),
139  m_G4Commands(p.getParameter<std::vector<std::string> >("G4Commands")),
140  m_p(p), m_chordFinderSetter(nullptr)
141 {
142  m_UIsession.reset(new CustomUIsession());
143  m_kernel = new G4RunManagerKernel();
144 
145  m_check = p.getUntrackedParameter<bool>("CheckOverlap",false);
146  m_WriteFile = p.getUntrackedParameter<std::string>("FileNameGDML","");
147  m_FieldFile = p.getUntrackedParameter<std::string>("FileNameField","");
148  m_RegionFile = p.getUntrackedParameter<std::string>("FileNameRegions","");
149 
150  m_userRunAction = nullptr;
151  m_runInterface = nullptr;
152 
153  //Look for an outside SimActivityRegistry
154  // this is used by the visualization code
155  edm::Service<SimActivityRegistry> otherRegistry;
156  if(otherRegistry){
157  m_registry.connect(*otherRegistry);
158  }
159  m_sVerbose.reset(nullptr);
160 
161  std::vector<edm::ParameterSet> watchers
162  = p.getParameter<std::vector<edm::ParameterSet> >("Watchers");
163  m_hasWatchers = (watchers.empty()) ? false : true;
164 
165  if(m_hasWatchers) {
167  }
168 }
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:109
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:83
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:169
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:163
std::string m_RegionFile
Definition: RunManager.h:170
std::vector< LHCTransportLink > LHCTransportLinkContainer
PrimaryTransformer * m_primaryTransformer
Definition: RunManager.h:117
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:168
G4SimEvent * m_simEvent
Definition: RunManager.h:129
bool m_managerInitialized
Definition: RunManager.h:119
G4RunManagerKernel * m_kernel
Definition: RunManager.h:107
bool m_runAborted
Definition: RunManager.h:122
RunManager::~RunManager ( )

Definition at line 170 of file RunManager.cc.

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

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

Member Function Documentation

void RunManager::abortEvent ( )

Definition at line 436 of file RunManager.cc.

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

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

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

Definition at line 521 of file RunManager.cc.

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

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

522 {
523  if(m_runAborted) { return; }
524  if (!softAbort) { abortEvent(); }
525  if (m_currentRun!=nullptr) { delete m_currentRun; m_currentRun = nullptr; }
526  terminateRun();
527  m_runAborted = true;
528 }
void abortEvent()
Definition: RunManager.cc:436
void terminateRun()
Definition: RunManager.cc:504
G4Run * m_currentRun
Definition: RunManager.h:127
bool m_runAborted
Definition: RunManager.h:122
void RunManager::Connect ( RunAction runAction)

Definition at line 544 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().

545 {
548 }
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 550 of file RunManager.cc.

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

551 {
554 }
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 556 of file RunManager.cc.

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

557 {
560 }
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 562 of file RunManager.cc.

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

563 {
565 }
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 81 of file RunManager.h.

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

Definition at line 77 of file RunManager.h.

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

Definition at line 567 of file RunManager.cc.

References funct::cos(), runTauDisplay::dr, PVValHelper::dz, groupFilesInBlocks::fout, mps_fire::i, createfilelist::int, m_FieldFile, MillePedeFileConverter_cfg::out, phi, point, alignCSCRings::r, funct::sin(), and z.

Referenced by initG4().

568 {
569  std::ofstream fout(m_FieldFile.c_str(), std::ios::out);
570  if(fout.fail()){
571  edm::LogWarning("SimG4CoreApplication")
572  << " RunManager WARNING : "
573  << "error opening file <" << m_FieldFile << "> for magnetic field";
574  } else {
575  double rmax = 9000*mm;
576  double zmax = 16000*mm;
577 
578  double dr = 5*cm;
579  double dz = 20*cm;
580 
581  int nr = (int)(rmax/dr);
582  int nz = 2*(int)(zmax/dz);
583 
584  double r = 0.0;
585  double z0 = -zmax;
586  double z;
587 
588  double phi = 0.0;
589  double cosf = cos(phi);
590  double sinf = sin(phi);
591 
592  double point[4] = {0.0,0.0,0.0,0.0};
593  double bfield[3] = {0.0,0.0,0.0};
594 
595  fout << std::setprecision(6);
596  for(int i=0; i<=nr; ++i) {
597  z = z0;
598  for(int j=0; j<=nz; ++j) {
599  point[0] = r*cosf;
600  point[1] = r*sinf;
601  point[2] = z;
602  field->GetFieldValue(point, bfield);
603  fout << "R(mm)= " << r/mm << " phi(deg)= " << phi/degree
604  << " Z(mm)= " << z/mm << " Bz(tesla)= " << bfield[2]/tesla
605  << " Br(tesla)= " << (bfield[0]*cosf + bfield[1]*sinf)/tesla
606  << " Bphi(tesla)= " << (bfield[0]*sinf - bfield[1]*cosf)/tesla
607  << G4endl;
608  z += dz;
609  }
610  r += dr;
611  }
612 
613  fout.close();
614  }
615 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
std::string m_FieldFile
Definition: RunManager.h:168
*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 402 of file RunManager.cc.

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

Referenced by produce().

403 {
404  if (m_currentEvent!=nullptr) { delete m_currentEvent; }
405  m_currentEvent = nullptr;
406  if (m_simEvent!=nullptr) { delete m_simEvent; }
407  m_simEvent = nullptr;
408 
409  // 64 bits event ID in CMSSW converted into Geant4 event ID
410  G4int evtid = (G4int)inpevt.id().event();
411  G4Event * evt = new G4Event(evtid);
412 
414 
415  inpevt.getByToken( m_HepMC, HepMCEvt ) ;
416 
417  m_generator->setGenEvent(HepMCEvt->GetEvent());
418 
419  // required to reset the GenParticle Id for particles transported
420  // along the beam pipe
421  // to their original value for SimTrack creation
422  resetGenParticleId( inpevt );
423 
424  if (!m_nonBeam)
425  {
426  m_generator->HepMC2G4(HepMCEvt->GetEvent(),evt);
427  }
428  else
429  {
430  m_generator->nonBeamEvent2G4(HepMCEvt->GetEvent(),evt);
431  }
432 
433  return evt;
434 }
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:508
void HepMC2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:102
Generator * m_generator
Definition: RunManager.h:109
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:530
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:38
void nonBeamEvent2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:545
edm::EventID id() const
Definition: EventBase.h:60
G4SimEvent * m_simEvent
Definition: RunManager.h:129
const Generator* RunManager::generator ( ) const
inline

Definition at line 80 of file RunManager.h.

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

Definition at line 539 of file RunManager.cc.

References m_trackManager.

Referenced by SimRunInterface::SimRunInterface().

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

Definition at line 180 of file RunManager.cc.

References SimActivityRegistry::beginOfJobSignal_, trackerTree::check(), edm::ESWatcher< T >::check(), heppy_check::cmd, edm::errors::Configuration, AttachSD::create(), beamerCreator::create(), SimActivityRegistry::dddWorldSignal_, dir, DumpMagneticField(), Exception, firstRun, g, ecalTB2006H4_GenSimDigiReco_cfg::G4cout, edm::EventSetup::get(), reco::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_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_, SiStripPI::max, edm::ESHandle< T >::product(), G4RegionReporter::ReportRegions(), and AlCaHLTBitMon_QueryRunRegistry::string.

181 {
182  bool geomChanged = idealGeomRcdWatcher_.check(es);
183  if (geomChanged && (!firstRun)) {
184  throw cms::Exception("BadConfig")
185  << "[SimG4Core RunManager]\n"
186  << "The Geometry configuration is changed during the job execution\n"
187  << "this is not allowed, the geometry must stay unchanged\n";
188  }
189  if (m_pUseMagneticField) {
190  bool magChanged = idealMagRcdWatcher_.check(es);
191  if (magChanged && (!firstRun)) {
193  << "[SimG4Core RunManager]\n"
194  << "The MagneticField configuration is changed during the job execution\n"
195  << "this is not allowed, the MagneticField must stay unchanged\n";
196  }
197  }
198 
199  if (m_managerInitialized) return;
200 
201  // DDDWorld: get the DDCV from the ES and use it to build the World
203  es.get<IdealGeometryRecord>().get(pDD);
204 
206  SensitiveDetectorCatalog catalog_;
207  const DDDWorld * world = new DDDWorld(&(*pDD), map_, catalog_, false);
209 
211  {
212  // setup the magnetic field
214  es.get<IdealMagneticFieldRecord>().get(pMF);
215  const GlobalPoint g(0.,0.,0.);
216 
217  sim::FieldBuilder fieldBuilder(pMF.product(), m_pField);
218  CMSFieldManager* fieldManager = new CMSFieldManager();
219  G4TransportationManager * tM =
220  G4TransportationManager::GetTransportationManager();
221  tM->SetFieldManager(fieldManager);
222  fieldBuilder.build( fieldManager, tM->GetPropagatorInField());
223 
224  if("" != m_FieldFile) {
225  DumpMagneticField(tM->GetFieldManager()->GetDetectorField());
226  }
227  }
228 
229  // we need the track manager now
230  m_trackManager = std::unique_ptr<SimTrackManager>(new SimTrackManager);
231 
232  // attach sensitive detector
233  m_attach = new AttachSD;
234 
235  std::pair< std::vector<SensitiveTkDetector*>,
236  std::vector<SensitiveCaloDetector*> > sensDets =
237  m_attach->create(*world,(*pDD),catalog_,m_p,m_trackManager.get(),
238  m_registry);
239 
240  m_sensTkDets.swap(sensDets.first);
241  m_sensCaloDets.swap(sensDets.second);
242 
243  edm::LogInfo("SimG4CoreApplication")
244  << " RunManager: Sensitive Detector "
245  << "building finished; found "
246  << m_sensTkDets.size()
247  << " Tk type Producers, and "
248  << m_sensCaloDets.size()
249  << " Calo type producers ";
250 
252  es.get<PDTRecord>().get(fTable);
253  const HepPDT::ParticleDataTable *fPDGTable = &(*fTable);
254 
256 
257  std::unique_ptr<PhysicsListMakerBase>
258  physicsMaker(PhysicsListFactory::get()->create(
259  m_pPhysics.getParameter<std::string> ("type")));
260  if (physicsMaker.get()==nullptr) {
262  << "Unable to find the Physics list requested";
263  }
264  m_physicsList =
265  physicsMaker->make(map_,fPDGTable,m_chordFinderSetter,m_pPhysics,m_registry);
266 
267  PhysicsList* phys = m_physicsList.get();
268  if (phys==nullptr) {
270  << "Physics list construction failed!";
271  }
272 
273  // adding GFlash, Russian Roulette for eletrons and gamma,
274  // step limiters on top of any Physics Lists
275  phys->RegisterPhysics(new ParametrisedEMPhysics("EMoptions",m_pPhysics));
276 
277  m_physicsList->ResetStoredInAscii();
278  std::string tableDir = m_PhysicsTablesDir;
280  m_physicsList->SetPhysicsTableRetrieved(tableDir);
281  }
282  edm::LogInfo("SimG4CoreApplication")
283  << "RunManager: start initialisation of PhysicsList";
284 
285  int verb = std::max(m_pPhysics.getUntrackedParameter<int>("Verbosity",0),
286  m_p.getParameter<int>("SteppingVerbosity"));
287  m_kernel->SetVerboseLevel(verb);
288 
289  m_physicsList->SetDefaultCutValue(m_pPhysics.getParameter<double>("DefaultCutValue")*CLHEP::cm);
290  m_physicsList->SetCutsWithDefault();
291  if(m_pPhysics.getParameter<bool>("CutsPerRegion")) {
292  m_prodCuts.reset(new DDG4ProductionCuts(map_, verb, m_pPhysics));
293  m_prodCuts->update();
294  }
295 
296  m_kernel->SetPhysics(phys);
297  m_kernel->InitializePhysics();
298 
299  if (m_kernel->RunInitialization()) { m_managerInitialized = true; }
300  else {
302  << "G4RunManagerKernel initialization failed!";
303  }
304 
306  {
307  std::ostringstream dir;
308  dir << tableDir << '\0';
309  std::string cmd = std::string("/control/shell mkdir -p ")+tableDir;
310  if (!std::ifstream(dir.str().c_str(), std::ios::in))
311  G4UImanager::GetUIpointer()->ApplyCommand(cmd);
312  m_physicsList->StorePhysicsTable(tableDir);
313  }
314 
315  //tell all interesting parties that we are beginning the job
316  BeginOfJob aBeginOfJob(&es);
317  m_registry.beginOfJobSignal_(&aBeginOfJob);
318 
319  G4int sv = m_p.getParameter<int>("SteppingVerbosity");
320  G4double elim = m_p.getParameter<double>("StepVerboseThreshold")*CLHEP::GeV;
321  std::vector<int> ve = m_p.getParameter<std::vector<int> >("VerboseEvents");
322  std::vector<int> vn = m_p.getParameter<std::vector<int> >("VertexNumber");
323  std::vector<int> vt = m_p.getParameter<std::vector<int> >("VerboseTracks");
324 
325  if(sv > 0) {
326  m_sVerbose.reset(new CMSSteppingVerbose(sv, elim, ve, vn, vt));
327  }
329 
330  if(!m_G4Commands.empty()) {
331  G4cout << "RunManager: Requested UI commands: " << G4endl;
332  for (unsigned it=0; it<m_G4Commands.size(); ++it) {
333  G4cout << " " << m_G4Commands[it] << G4endl;
334  G4UImanager::GetUIpointer()->ApplyCommand(m_G4Commands[it]);
335  }
336  }
337 
338  if("" != m_WriteFile) {
339  G4GDMLParser gdml;
340  gdml.SetRegionExport(true);
341  gdml.SetEnergyCutsExport(true);
342  gdml.Write(m_WriteFile, world->GetWorldVolume(), true);
343  }
344 
345  if("" != m_RegionFile) {
346  G4RegionReporter rrep;
348  }
349 
351 
352  // If the Geant4 particle table is needed, decomment the lines below
353  //
354  // G4cout << "Output of G4ParticleTable DumpTable:" << G4endl;
355  // G4ParticleTable::GetParticleTable()->DumpTable("ALL");
356 
357  initializeRun();
358  firstRun= false;
359 }
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:166
const double GeV
Definition: MathUtil.h:16
const G4VPhysicalVolume * GetWorldVolume() const
Definition: DDDWorld.h:18
def create(alignables, pedeDump, additionalData, outputFile, config)
SimActivityRegistry m_registry
Definition: RunManager.h:158
edm::ParameterSet m_p
Definition: RunManager.h:150
HepPDT::ParticleDataTable ParticleDataTable
void initializeRun()
Definition: RunManager.cc:494
void initializeUserActions()
Definition: RunManager.cc:457
bool m_pUseMagneticField
Definition: RunManager.h:124
edm::ESWatcher< IdealGeometryRecord > idealGeomRcdWatcher_
Definition: RunManager.h:165
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:169
bool firstRun
Definition: RunManager.h:123
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:55
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:567
sim::ChordFinderSetter * m_chordFinderSetter
Definition: RunManager.h:163
std::string m_RegionFile
Definition: RunManager.h:170
AttachSD * m_attach
Definition: RunManager.h:152
PrimaryTransformer * m_primaryTransformer
Definition: RunManager.h:117
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
def check(config)
Definition: trackerTree.py:14
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:162
T const * product() const
Definition: ESHandle.h:86
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:168
bool m_managerInitialized
Definition: RunManager.h:119
T get(const Candidate &c)
Definition: component.h:55
G4RunManagerKernel * m_kernel
Definition: RunManager.h:107
void RunManager::initializeRun ( )

Definition at line 494 of file RunManager.cc.

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

Referenced by initG4().

495 {
496  m_runInitialized = false;
497  if (m_currentRun==nullptr) { m_currentRun = new G4Run(); }
498  G4StateManager::GetStateManager()->SetNewState(G4State_GeomClosed);
500  m_runAborted = false;
501  m_runInitialized = true;
502 }
void BeginOfRunAction(const G4Run *aRun) override
Definition: RunAction.cc:22
G4Run * m_currentRun
Definition: RunManager.h:127
RunAction * m_userRunAction
Definition: RunManager.h:130
bool m_runInitialized
Definition: RunManager.h:120
bool m_runAborted
Definition: RunManager.h:122
void RunManager::initializeUserActions ( )

Definition at line 457 of file RunManager.cc.

References Connect(), g4SimHits_cfi::EventAction, m_EvtMgrVerbosity, m_generator, m_hasWatchers, m_kernel, m_pEventAction, m_pRunAction, m_pStackingAction, m_pSteppingAction, m_pTrackingAction, m_runInterface, m_sVerbose, m_trackManager, m_userRunAction, g4SimHits_cfi::RunAction, CastorDigiValidation::StackingAction, CastorDigiValidation::SteppingAction, and g4SimHits_cfi::TrackingAction.

Referenced by initG4().

458 {
459  m_runInterface = new SimRunInterface(this, false);
460 
463 
464  G4EventManager * eventManager = m_kernel->GetEventManager();
465  eventManager->SetVerboseLevel(m_EvtMgrVerbosity);
466 
467  if (m_generator!=nullptr) {
468  EventAction * userEventAction =
470  m_sVerbose.get());
471  Connect(userEventAction);
472  eventManager->SetUserAction(userEventAction);
473 
474  TrackingAction* userTrackingAction =
475  new TrackingAction(userEventAction,m_pTrackingAction,m_sVerbose.get());
476  Connect(userTrackingAction);
477  eventManager->SetUserAction(userTrackingAction);
478 
479  SteppingAction* userSteppingAction =
480  new SteppingAction(userEventAction,m_pSteppingAction,m_sVerbose.get(),m_hasWatchers);
481  Connect(userSteppingAction);
482  eventManager->SetUserAction(userSteppingAction);
483 
484  eventManager->SetUserAction(new StackingAction(userTrackingAction,
486 
487  } else {
488  edm::LogWarning("SimG4CoreApplication") << " RunManager: WARNING : "
489  << "No generator; initialized "
490  << "only RunAction!";
491  }
492 }
Generator * m_generator
Definition: RunManager.h:109
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:544
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:107
void RunManager::produce ( edm::Event inpevt,
const edm::EventSetup es 
)

Definition at line 367 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(), nullptr, G4SimEvent::nVertices(), edm::second(), and G4SimEvent::weight().

368 {
369  m_currentEvent = generateEvent(inpevt);
370  m_simEvent = new G4SimEvent;
373  if (m_generator->genVertex() !=nullptr ) {
376  m_generator->genVertex()->y()/centimeter,
377  m_generator->genVertex()->z()/centimeter,
378  m_generator->genVertex()->t()/second));
379  }
380  if (m_currentEvent->GetNumberOfPrimaryVertex()==0) {
381  std::stringstream ss;
382  ss << " RunManager::produce(): event " << inpevt.id().event()
383  << " with no G4PrimaryVertices\n" ;
384  throw SimG4Exception(ss.str());
385 
386  abortRun(false);
387  } else {
388  edm::LogInfo("SimG4CoreApplication")
389  << "RunManager::produce: start Event " << inpevt.id().event()
390  << " of weight " << m_simEvent->weight()
391  << " with " << m_simEvent->nTracks() << " tracks and "
392  << m_simEvent->nVertices()
393  << " vertices, generated by " << m_simEvent->nGenParts() << " particles ";
394 
395  m_kernel->GetEventManager()->ProcessOneEvent(m_currentEvent);
396 
397  edm::LogInfo("SimG4CoreApplication")
398  << " RunManager::produce: ended Event " << inpevt.id().event();
399  }
400 }
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:521
virtual const HepMC::GenEvent * genEvent() const
Definition: Generator.h:29
Generator * m_generator
Definition: RunManager.h:109
#define nullptr
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:402
edm::EventID id() const
Definition: EventBase.h:60
void collisionPoint(const math::XYZTLorentzVectorD &v)
Definition: G4SimEvent.h:29
G4SimEvent * m_simEvent
Definition: RunManager.h:129
G4RunManagerKernel * m_kernel
Definition: RunManager.h:107
std::vector<std::shared_ptr<SimProducer> > RunManager::producers ( ) const
inline

Definition at line 89 of file RunManager.h.

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

Definition at line 530 of file RunManager.cc.

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

Referenced by generateEvent().

531 {
533  inpevt.getByToken( m_LHCtr, theLHCTlink );
534  if ( theLHCTlink.isValid() ) {
535  m_trackManager->setLHCTransportLink( theLHCTlink.product() );
536  }
537 }
edm::EDGetTokenT< edm::LHCTransportLinkContainer > m_LHCtr
Definition: RunManager.h:112
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:508
bool isValid() const
Definition: HandleBase.h:74
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 86 of file RunManager.h.

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

Definition at line 83 of file RunManager.h.

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

Definition at line 82 of file RunManager.h.

Referenced by SimRunInterface::simEvent().

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

Definition at line 361 of file RunManager.cc.

References m_runTerminated, and terminateRun().

362 {
363  G4StateManager::GetStateManager()->SetNewState(G4State_Quit);
364  if (!m_runTerminated) { terminateRun(); }
365 }
void terminateRun()
Definition: RunManager.cc:504
bool m_runTerminated
Definition: RunManager.h:121
void RunManager::terminateRun ( )

Definition at line 504 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().

505 {
506  if(m_runTerminated) { return; }
507  if (m_userRunAction!=nullptr) {
509  delete m_userRunAction;
510  m_userRunAction = nullptr;
511  }
512  delete m_currentEvent;
513  m_currentEvent = nullptr;
514  delete m_simEvent;
515  m_simEvent = nullptr;
516  if(m_kernel != nullptr) { m_kernel->RunTermination(); }
517  m_runInitialized = false;
518  m_runTerminated = true;
519 }
G4Event * m_currentEvent
Definition: RunManager.h:128
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
void EndOfRunAction(const G4Run *aRun) override
Definition: RunAction.cc:40
G4RunManagerKernel * m_kernel
Definition: RunManager.h:107

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 165 of file RunManager.h.

Referenced by initG4().

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

Definition at line 166 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 163 of file RunManager.h.

Referenced by initG4().

G4Event* RunManager::m_currentEvent
private

Definition at line 128 of file RunManager.h.

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

G4Run* RunManager::m_currentRun
private

Definition at line 127 of file RunManager.h.

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

int RunManager::m_EvtMgrVerbosity
private

Definition at line 136 of file RunManager.h.

Referenced by initializeUserActions().

std::string RunManager::m_FieldFile
private

Definition at line 168 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 109 of file RunManager.h.

Referenced by generateEvent(), 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 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 170 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().

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

Definition at line 153 of file RunManager.h.

Referenced by initG4().

G4SimEvent* RunManager::m_simEvent
private

Definition at line 129 of file RunManager.h.

Referenced by generateEvent(), produce(), 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 169 of file RunManager.h.

Referenced by initG4(), and RunManager().