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_
 
bool m_check
 
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
 
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
 
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 55 of file RunManager.h.

Constructor & Destructor Documentation

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

Definition at line 118 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_physicsList, m_prodCuts, m_producers, m_RegionFile, m_registry, m_runInterface, m_sVerbose, m_UIsession, m_userRunAction, m_watchers, m_WriteFile, and AlCaHLTBitMon_QueryRunRegistry::string.

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

Definition at line 177 of file RunManager.cc.

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

178 {
179  if (!m_runTerminated) { terminateRun(); }
180  G4StateManager::GetStateManager()->SetNewState(G4State_Quit);
181  G4GeometryManager::GetInstance()->OpenGeometry();
182  // if (m_kernel!=0) delete m_kernel;
183  delete m_runInterface;
184  delete m_generator;
185 }
Generator * m_generator
Definition: RunManager.h:101
SimRunInterface * m_runInterface
Definition: RunManager.h:123
void terminateRun()
Definition: RunManager.cc:517
bool m_runTerminated
Definition: RunManager.h:113

Member Function Documentation

void RunManager::abortEvent ( )

Definition at line 449 of file RunManager.cc.

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

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

450 {
451  if (m_runTerminated) { return; }
452  G4Track* t =
453  m_kernel->GetEventManager()->GetTrackingManager()->GetTrack();
454  t->SetTrackStatus(fStopAndKill) ;
455 
456  // CMS-specific act
457  //
458  TrackingAction* uta =
459  (TrackingAction*)m_kernel->GetEventManager()->GetUserTrackingAction() ;
460  uta->PostUserTrackingAction(t) ;
461 
462  m_currentEvent->SetEventAborted();
463  m_kernel->GetEventManager()->GetStackManager()->clear() ;
464  m_kernel->GetEventManager()->GetTrackingManager()->EventAborted() ;
465 
466  G4StateManager* stateManager = G4StateManager::GetStateManager();
467  stateManager->SetNewState(G4State_GeomClosed);
468 }
G4Event * m_currentEvent
Definition: RunManager.h:120
bool m_runTerminated
Definition: RunManager.h:113
void PostUserTrackingAction(const G4Track *aTrack) override
G4RunManagerKernel * m_kernel
Definition: RunManager.h:99
void RunManager::abortRun ( bool  softAbort = false)

Definition at line 534 of file RunManager.cc.

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

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

535 {
536  if(m_runAborted) { return; }
537  if (!softAbort) { abortEvent(); }
538  if (m_currentRun!=nullptr) { delete m_currentRun; m_currentRun = nullptr; }
539  terminateRun();
540  m_runAborted = true;
541 }
void abortEvent()
Definition: RunManager.cc:449
void terminateRun()
Definition: RunManager.cc:517
G4Run * m_currentRun
Definition: RunManager.h:119
bool m_runAborted
Definition: RunManager.h:114
void RunManager::Connect ( RunAction runAction)

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

558 {
561 }
SimActivityRegistry m_registry
Definition: RunManager.h:147
SimActivityRegistry::EndOfRunSignal m_endOfRunSignal
Definition: RunAction.h:25
BeginOfRunSignal beginOfRunSignal_
EndOfRunSignal endOfRunSignal_
void connect(Observer< const T * > *iObs)
does not take ownership of memory
Definition: Signaler.h:55
SimActivityRegistry::BeginOfRunSignal m_beginOfRunSignal
Definition: RunAction.h:24
void RunManager::Connect ( EventAction eventAction)

Definition at line 563 of file RunManager.cc.

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

564 {
567 }
SimActivityRegistry m_registry
Definition: RunManager.h:147
EndOfEventSignal endOfEventSignal_
SimActivityRegistry::EndOfEventSignal m_endOfEventSignal
Definition: EventAction.h:51
BeginOfEventSignal beginOfEventSignal_
void connect(Observer< const T * > *iObs)
does not take ownership of memory
Definition: Signaler.h:55
SimActivityRegistry::BeginOfEventSignal m_beginOfEventSignal
Definition: EventAction.h:50
void RunManager::Connect ( TrackingAction trackingAction)

Definition at line 569 of file RunManager.cc.

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

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

Definition at line 575 of file RunManager.cc.

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

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

Definition at line 73 of file RunManager.h.

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

Definition at line 69 of file RunManager.h.

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

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

581 {
582  std::ofstream fout(m_FieldFile.c_str(), std::ios::out);
583  if(fout.fail()){
584  edm::LogWarning("SimG4CoreApplication")
585  << " RunManager WARNING : "
586  << "error opening file <" << m_FieldFile << "> for magnetic field";
587  } else {
588  double rmax = 9000*mm;
589  double zmax = 16000*mm;
590 
591  double dr = 5*cm;
592  double dz = 20*cm;
593 
594  int nr = (int)(rmax/dr);
595  int nz = 2*(int)(zmax/dz);
596 
597  double r = 0.0;
598  double z0 = -zmax;
599  double z;
600 
601  double phi = 0.0;
602  double cosf = cos(phi);
603  double sinf = sin(phi);
604 
605  double point[4] = {0.0,0.0,0.0,0.0};
606  double bfield[3] = {0.0,0.0,0.0};
607 
608  fout << std::setprecision(6);
609  for(int i=0; i<=nr; ++i) {
610  z = z0;
611  for(int j=0; j<=nz; ++j) {
612  point[0] = r*cosf;
613  point[1] = r*sinf;
614  point[2] = z;
615  field->GetFieldValue(point, bfield);
616  fout << "R(mm)= " << r/mm << " phi(deg)= " << phi/degree
617  << " Z(mm)= " << z/mm << " Bz(tesla)= " << bfield[2]/tesla
618  << " Br(tesla)= " << (bfield[0]*cosf + bfield[1]*sinf)/tesla
619  << " Bphi(tesla)= " << (bfield[0]*sinf - bfield[1]*cosf)/tesla
620  << G4endl;
621  z += dz;
622  }
623  r += dr;
624  }
625 
626  fout.close();
627  }
628 }
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:156
*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 415 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().

416 {
417  if (m_currentEvent!=nullptr) { delete m_currentEvent; }
418  m_currentEvent = nullptr;
419  if (m_simEvent!=nullptr) { delete m_simEvent; }
420  m_simEvent = nullptr;
421 
422  // 64 bits event ID in CMSSW converted into Geant4 event ID
423  G4int evtid = (G4int)inpevt.id().event();
424  G4Event * evt = new G4Event(evtid);
425 
427 
428  inpevt.getByToken( m_HepMC, HepMCEvt ) ;
429 
430  m_generator->setGenEvent(HepMCEvt->GetEvent());
431 
432  // required to reset the GenParticle Id for particles transported
433  // along the beam pipe
434  // to their original value for SimTrack creation
435  resetGenParticleId( inpevt );
436 
437  if (!m_nonBeam)
438  {
439  m_generator->HepMC2G4(HepMCEvt->GetEvent(),evt);
440  }
441  else
442  {
443  m_generator->nonBeamEvent2G4(HepMCEvt->GetEvent(),evt);
444  }
445 
446  return evt;
447 }
EventNumber_t event() const
Definition: EventID.h:41
edm::EDGetTokenT< edm::HepMCProduct > m_HepMC
Definition: RunManager.h:103
G4Event * m_currentEvent
Definition: RunManager.h:120
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
void HepMC2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:101
Generator * m_generator
Definition: RunManager.h:101
bool m_nonBeam
Definition: RunManager.h:106
void setGenEvent(const HepMC::GenEvent *inpevt)
Definition: Generator.h:24
void resetGenParticleId(edm::Event &inpevt)
Definition: RunManager.cc:543
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:38
void nonBeamEvent2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:527
edm::EventID id() const
Definition: EventBase.h:59
G4SimEvent * m_simEvent
Definition: RunManager.h:121
const Generator* RunManager::generator ( ) const
inline

Definition at line 72 of file RunManager.h.

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

Definition at line 552 of file RunManager.cc.

References m_trackManager.

Referenced by SimRunInterface::SimRunInterface().

553 {
554  return m_trackManager.get();
555 }
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:151
void RunManager::initG4 ( const edm::EventSetup es)

Definition at line 187 of file RunManager.cc.

References SimActivityRegistry::beginOfJobSignal_, trackerTree::check(), edm::ESWatcher< T >::check(), mps_setup::cmd, edm::errors::Configuration, AttachSD::create(), beamerCreator::create(), SimActivityRegistry::dddWorldSignal_, dir, DumpMagneticField(), Exception, firstRun, g, ecalTB2006H4_GenSimDigiReco_cfg::G4cout, reco::get(), edm::EventSetup::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), DDDWorld::GetWorldVolume(), GeV, idealGeomRcdWatcher_, idealMagRcdWatcher_, recoMuon::in, initializeRun(), initializeUserActions(), edm::errors::LogicError, m_check, 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, SiStripPI::max, edm::ESHandle< T >::product(), G4RegionReporter::ReportRegions(), AlCaHLTBitMon_QueryRunRegistry::string, and pfDeepBoostedJetPreprocessParams_cfi::sv.

188 {
189  bool geomChanged = idealGeomRcdWatcher_.check(es);
190  if (geomChanged && (!firstRun)) {
191  throw cms::Exception("BadConfig")
192  << "[SimG4Core RunManager]\n"
193  << "The Geometry configuration is changed during the job execution\n"
194  << "this is not allowed, the geometry must stay unchanged\n";
195  }
196  if (m_pUseMagneticField) {
197  bool magChanged = idealMagRcdWatcher_.check(es);
198  if (magChanged && (!firstRun)) {
200  << "[SimG4Core RunManager]\n"
201  << "The MagneticField configuration is changed during the job execution\n"
202  << "this is not allowed, the MagneticField must stay unchanged\n";
203  }
204  }
205 
206  if (m_managerInitialized) return;
207 
208  // DDDWorld: get the DDCV from the ES and use it to build the World
210  es.get<IdealGeometryRecord>().get(pDD);
211 
213  SensitiveDetectorCatalog catalog_;
214  const DDDWorld * world = new DDDWorld(&(*pDD), map_, catalog_, false);
216 
218  {
219  // setup the magnetic field
221  es.get<IdealMagneticFieldRecord>().get(pMF);
222  const GlobalPoint g(0.,0.,0.);
223 
224  sim::FieldBuilder fieldBuilder(pMF.product(), m_pField);
225  CMSFieldManager* fieldManager = new CMSFieldManager();
226  G4TransportationManager * tM =
227  G4TransportationManager::GetTransportationManager();
228  tM->SetFieldManager(fieldManager);
229  fieldBuilder.build( fieldManager, tM->GetPropagatorInField());
230 
231  if(!m_FieldFile.empty()) {
232  DumpMagneticField(tM->GetFieldManager()->GetDetectorField());
233  }
234  }
235 
236  // we need the track manager now
237  m_trackManager = std::unique_ptr<SimTrackManager>(new SimTrackManager);
238 
239  {
240  // attach sensitive detector
241 
242  AttachSD attach;
243  auto sensDets =
244  attach.create((*pDD),catalog_,m_p,m_trackManager.get(),m_registry);
245 
246  m_sensTkDets.swap(sensDets.first);
247  m_sensCaloDets.swap(sensDets.second);
248  }
249 
250  edm::LogInfo("SimG4CoreApplication")
251  << " RunManager: Sensitive Detector "
252  << "building finished; found "
253  << m_sensTkDets.size()
254  << " Tk type Producers, and "
255  << m_sensCaloDets.size()
256  << " Calo type producers ";
257 
259  es.get<PDTRecord>().get(fTable);
260  const HepPDT::ParticleDataTable *fPDGTable = &(*fTable);
261 
263 
264  std::unique_ptr<PhysicsListMakerBase>
265  physicsMaker(PhysicsListFactory::get()->create(
266  m_pPhysics.getParameter<std::string> ("type")));
267  if (physicsMaker.get()==nullptr) {
269  << "Unable to find the Physics list requested";
270  }
271  m_physicsList = physicsMaker->make(m_pPhysics,m_registry);
272 
273  PhysicsList* phys = m_physicsList.get();
274  if (phys==nullptr) {
276  << "Physics list construction failed!";
277  }
278 
279  // exotic particle physics
280  double monopoleMass = m_pPhysics.getUntrackedParameter<double>("MonopoleMass",0);
281  if(monopoleMass > 0.0) {
282  phys->RegisterPhysics(new CMSMonopolePhysics(fPDGTable,m_pPhysics));
283  }
284  bool exotica = m_pPhysics.getUntrackedParameter<bool>("ExoticaTransport",false);
285  if(exotica) { CMSExoticaPhysics exo(phys, m_pPhysics); }
286 
287  // adding GFlash, Russian Roulette for eletrons and gamma,
288  // step limiters on top of any Physics Lists
289  phys->RegisterPhysics(new ParametrisedEMPhysics("EMoptions",m_pPhysics));
290 
291  std::string tableDir = m_PhysicsTablesDir;
293  m_physicsList->SetPhysicsTableRetrieved(tableDir);
294  }
295  edm::LogInfo("SimG4CoreApplication")
296  << "RunManager: start initialisation of PhysicsList";
297 
298  int verb = std::max(m_pPhysics.getUntrackedParameter<int>("Verbosity",0),
299  m_p.getParameter<int>("SteppingVerbosity"));
300  m_kernel->SetVerboseLevel(verb);
301 
302  m_physicsList->SetDefaultCutValue(m_pPhysics.getParameter<double>("DefaultCutValue")*CLHEP::cm);
303  m_physicsList->SetCutsWithDefault();
304  if(m_pPhysics.getParameter<bool>("CutsPerRegion")) {
305  m_prodCuts.reset(new DDG4ProductionCuts(map_, verb, m_pPhysics));
306  m_prodCuts->update();
307  }
308 
309  m_kernel->SetPhysics(phys);
310  m_kernel->InitializePhysics();
311 
312  if (m_kernel->RunInitialization()) { m_managerInitialized = true; }
313  else {
315  << "G4RunManagerKernel initialization failed!";
316  }
317 
319  {
320  std::ostringstream dir;
321  dir << tableDir << '\0';
322  std::string cmd = std::string("/control/shell mkdir -p ")+tableDir;
323  if (!std::ifstream(dir.str().c_str(), std::ios::in))
324  G4UImanager::GetUIpointer()->ApplyCommand(cmd);
325  m_physicsList->StorePhysicsTable(tableDir);
326  }
327 
328  //tell all interesting parties that we are beginning the job
329  BeginOfJob aBeginOfJob(&es);
330  m_registry.beginOfJobSignal_(&aBeginOfJob);
331 
332  G4int sv = m_p.getParameter<int>("SteppingVerbosity");
333  G4double elim = m_p.getParameter<double>("StepVerboseThreshold")*CLHEP::GeV;
334  std::vector<int> ve = m_p.getParameter<std::vector<int> >("VerboseEvents");
335  std::vector<int> vn = m_p.getParameter<std::vector<int> >("VertexNumber");
336  std::vector<int> vt = m_p.getParameter<std::vector<int> >("VerboseTracks");
337 
338  if(sv > 0) {
339  m_sVerbose.reset(new CMSSteppingVerbose(sv, elim, ve, vn, vt));
340  }
342 
343  if(!m_G4Commands.empty()) {
344  G4cout << "RunManager: Requested UI commands: " << G4endl;
345  for (unsigned it=0; it<m_G4Commands.size(); ++it) {
346  G4cout << " " << m_G4Commands[it] << G4endl;
347  G4UImanager::GetUIpointer()->ApplyCommand(m_G4Commands[it]);
348  }
349  }
350 
351  if(!m_WriteFile.empty()) {
352  G4GDMLParser gdml;
353  gdml.SetRegionExport(true);
354  gdml.SetEnergyCutsExport(true);
355  gdml.Write(m_WriteFile, world->GetWorldVolume(), true);
356  }
357 
358  if(!m_RegionFile.empty()) {
359  G4RegionReporter rrep;
361  }
362 
364 
365  // If the Geant4 particle table is needed, decomment the lines below
366  //
367  // G4cout << "Output of G4ParticleTable DumpTable:" << G4endl;
368  // G4ParticleTable::GetParticleTable()->DumpTable("ALL");
369 
370  initializeRun();
371  firstRun= false;
372 }
T getParameter(std::string const &) const
bool m_check
Definition: RunManager.h:129
T getUntrackedParameter(std::string const &, T const &) const
edm::ESWatcher< IdealMagneticFieldRecord > idealMagRcdWatcher_
Definition: RunManager.h:154
const double GeV
Definition: MathUtil.h:16
const G4VPhysicalVolume * GetWorldVolume() const
Definition: DDDWorld.h:16
def create(alignables, pedeDump, additionalData, outputFile, config)
SimActivityRegistry m_registry
Definition: RunManager.h:147
edm::ParameterSet m_p
Definition: RunManager.h:140
HepPDT::ParticleDataTable ParticleDataTable
void initializeRun()
Definition: RunManager.cc:507
void initializeUserActions()
Definition: RunManager.cc:470
bool m_pUseMagneticField
Definition: RunManager.h:116
edm::ESWatcher< IdealGeometryRecord > idealGeomRcdWatcher_
Definition: RunManager.h:153
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:143
std::vector< SensitiveTkDetector * > m_sensTkDets
Definition: RunManager.h:142
BeginOfJobSignal beginOfJobSignal_
std::string m_WriteFile
Definition: RunManager.h:157
bool firstRun
Definition: RunManager.h:115
bool m_RestorePhysicsTables
Definition: RunManager.h:127
std::unique_ptr< CMSSteppingVerbose > m_sVerbose
Definition: RunManager.h:146
edm::ParameterSet m_pField
Definition: RunManager.h:130
edm::ParameterSet m_pPhysics
Definition: RunManager.h:132
edm::ParameterSet m_g4overlap
Definition: RunManager.h:138
std::pair< std::vector< SensitiveTkDetector * >, std::vector< SensitiveCaloDetector * > > create(const DDCompactView &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *, SimActivityRegistry &reg) const
Definition: AttachSD.cc:17
DDDWorldSignal dddWorldSignal_
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
void ReportRegions(const std::string &ss)
void DumpMagneticField(const G4Field *) const
Definition: RunManager.cc:580
list cmd
Definition: mps_setup.py:244
std::string m_RegionFile
Definition: RunManager.h:158
T get() const
Definition: EventSetup.h:71
PrimaryTransformer * m_primaryTransformer
Definition: RunManager.h:109
std::string m_PhysicsTablesDir
Definition: RunManager.h:125
bool m_StorePhysicsTables
Definition: RunManager.h:126
dbl *** dir
Definition: mlp_gen.cc:35
std::unique_ptr< DDG4ProductionCuts > m_prodCuts
Definition: RunManager.h:145
def check(config)
Definition: trackerTree.py:14
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:151
T const * product() const
Definition: ESHandle.h:86
std::vector< std::string > m_G4Commands
Definition: RunManager.h:139
std::unique_ptr< PhysicsList > m_physicsList
Definition: RunManager.h:108
std::string m_FieldFile
Definition: RunManager.h:156
bool m_managerInitialized
Definition: RunManager.h:111
T get(const Candidate &c)
Definition: component.h:55
G4RunManagerKernel * m_kernel
Definition: RunManager.h:99
void RunManager::initializeRun ( )

Definition at line 507 of file RunManager.cc.

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

Referenced by initG4().

508 {
509  m_runInitialized = false;
510  if (m_currentRun==nullptr) { m_currentRun = new G4Run(); }
511  G4StateManager::GetStateManager()->SetNewState(G4State_GeomClosed);
513  m_runAborted = false;
514  m_runInitialized = true;
515 }
void BeginOfRunAction(const G4Run *aRun) override
Definition: RunAction.cc:19
G4Run * m_currentRun
Definition: RunManager.h:119
RunAction * m_userRunAction
Definition: RunManager.h:122
bool m_runInitialized
Definition: RunManager.h:112
bool m_runAborted
Definition: RunManager.h:114
void RunManager::initializeUserActions ( )

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

471 {
472  m_runInterface = new SimRunInterface(this, false);
473 
476 
477  G4EventManager * eventManager = m_kernel->GetEventManager();
478  eventManager->SetVerboseLevel(m_EvtMgrVerbosity);
479 
480  if (m_generator!=nullptr) {
481  EventAction * userEventAction =
483  m_sVerbose.get());
484  Connect(userEventAction);
485  eventManager->SetUserAction(userEventAction);
486 
487  TrackingAction* userTrackingAction =
488  new TrackingAction(userEventAction,m_pTrackingAction,m_sVerbose.get());
489  Connect(userTrackingAction);
490  eventManager->SetUserAction(userTrackingAction);
491 
492  SteppingAction* userSteppingAction =
493  new SteppingAction(userEventAction,m_pSteppingAction,m_sVerbose.get(),m_hasWatchers);
494  Connect(userSteppingAction);
495  eventManager->SetUserAction(userSteppingAction);
496 
497  eventManager->SetUserAction(new StackingAction(userTrackingAction,
499 
500  } else {
501  edm::LogWarning("SimG4CoreApplication") << " RunManager: WARNING : "
502  << "No generator; initialized "
503  << "only RunAction!";
504  }
505 }
Generator * m_generator
Definition: RunManager.h:101
bool m_hasWatchers
Definition: RunManager.h:117
RunAction
list of unwanted particles (gluons and quarks)
int m_EvtMgrVerbosity
Definition: RunManager.h:128
SimRunInterface * m_runInterface
Definition: RunManager.h:123
std::unique_ptr< CMSSteppingVerbose > m_sVerbose
Definition: RunManager.h:146
edm::ParameterSet m_pStackingAction
Definition: RunManager.h:135
edm::ParameterSet m_pEventAction
Definition: RunManager.h:134
edm::ParameterSet m_pSteppingAction
Definition: RunManager.h:137
RunAction * m_userRunAction
Definition: RunManager.h:122
void Connect(RunAction *)
Definition: RunManager.cc:557
edm::ParameterSet m_pRunAction
Definition: RunManager.h:133
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:151
edm::ParameterSet m_pTrackingAction
Definition: RunManager.h:136
G4RunManagerKernel * m_kernel
Definition: RunManager.h:99
void RunManager::produce ( edm::Event inpevt,
const edm::EventSetup es 
)

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

381 {
382  m_currentEvent = generateEvent(inpevt);
383  m_simEvent = new G4SimEvent;
386  if (m_generator->genVertex() !=nullptr ) {
389  m_generator->genVertex()->y()/centimeter,
390  m_generator->genVertex()->z()/centimeter,
391  m_generator->genVertex()->t()/second));
392  }
393  if (m_currentEvent->GetNumberOfPrimaryVertex()==0) {
394  std::stringstream ss;
395  ss << " RunManager::produce(): event " << inpevt.id().event()
396  << " with no G4PrimaryVertices\n" ;
397  throw SimG4Exception(ss.str());
398 
399  abortRun(false);
400  } else {
401  edm::LogInfo("SimG4CoreApplication")
402  << "RunManager::produce: start Event " << inpevt.id().event()
403  << " of weight " << m_simEvent->weight()
404  << " with " << m_simEvent->nTracks() << " tracks and "
405  << m_simEvent->nVertices()
406  << " vertices, generated by " << m_simEvent->nGenParts() << " particles ";
407 
408  m_kernel->GetEventManager()->ProcessOneEvent(m_currentEvent);
409 
410  edm::LogInfo("SimG4CoreApplication")
411  << " RunManager::produce: ended Event " << inpevt.id().event();
412  }
413 }
EventNumber_t event() const
Definition: EventID.h:41
virtual const math::XYZTLorentzVector * genVertex() const
Definition: Generator.h:31
virtual const double eventWeight() const
Definition: Generator.h:32
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:120
void abortRun(bool softAbort=false)
Definition: RunManager.cc:534
virtual const HepMC::GenEvent * genEvent() const
Definition: Generator.h:30
#define nullptr
Generator * m_generator
Definition: RunManager.h:101
U second(std::pair< T, U > const &p)
void weight(float w)
Definition: G4SimEvent.h:25
void hepEvent(const HepMC::GenEvent *r)
Definition: G4SimEvent.h:23
unsigned int nTracks() const
Definition: G4SimEvent.h:20
unsigned int nVertices() const
Definition: G4SimEvent.h:21
unsigned int nGenParts() const
Definition: G4SimEvent.h:22
G4Event * generateEvent(edm::Event &inpevt)
Definition: RunManager.cc:415
edm::EventID id() const
Definition: EventBase.h:59
void collisionPoint(const math::XYZTLorentzVectorD &v)
Definition: G4SimEvent.h:27
G4SimEvent * m_simEvent
Definition: RunManager.h:121
G4RunManagerKernel * m_kernel
Definition: RunManager.h:99
std::vector<std::shared_ptr<SimProducer> > RunManager::producers ( ) const
inline

Definition at line 81 of file RunManager.h.

81  {
82  return m_producers;
83  }
std::vector< std::shared_ptr< SimProducer > > m_producers
Definition: RunManager.h:149
void RunManager::resetGenParticleId ( edm::Event inpevt)
protected

Definition at line 543 of file RunManager.cc.

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

Referenced by generateEvent().

544 {
546  inpevt.getByToken( m_LHCtr, theLHCTlink );
547  if ( theLHCTlink.isValid() ) {
548  m_trackManager->setLHCTransportLink( theLHCTlink.product() );
549  }
550 }
edm::EDGetTokenT< edm::LHCTransportLinkContainer > m_LHCtr
Definition: RunManager.h:104
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
bool isValid() const
Definition: HandleBase.h:74
T const * product() const
Definition: Handle.h:74
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:151
std::vector<SensitiveCaloDetector*>& RunManager::sensCaloDetectors ( )
inline

Definition at line 78 of file RunManager.h.

78  {
79  return m_sensCaloDets;
80  }
std::vector< SensitiveCaloDetector * > m_sensCaloDets
Definition: RunManager.h:143
std::vector<SensitiveTkDetector*>& RunManager::sensTkDetectors ( )
inline

Definition at line 75 of file RunManager.h.

75  {
76  return m_sensTkDets;
77  }
std::vector< SensitiveTkDetector * > m_sensTkDets
Definition: RunManager.h:142
G4SimEvent* RunManager::simEvent ( )
inline

Definition at line 74 of file RunManager.h.

Referenced by SimRunInterface::simEvent().

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

Definition at line 374 of file RunManager.cc.

References m_runTerminated, and terminateRun().

375 {
376  G4StateManager::GetStateManager()->SetNewState(G4State_Quit);
377  if (!m_runTerminated) { terminateRun(); }
378 }
void terminateRun()
Definition: RunManager.cc:517
bool m_runTerminated
Definition: RunManager.h:113
void RunManager::terminateRun ( )

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

518 {
519  if(m_runTerminated) { return; }
520  if (m_userRunAction!=nullptr) {
522  delete m_userRunAction;
523  m_userRunAction = nullptr;
524  }
525  delete m_currentEvent;
526  m_currentEvent = nullptr;
527  delete m_simEvent;
528  m_simEvent = nullptr;
529  if(m_kernel != nullptr) { m_kernel->RunTermination(); }
530  m_runInitialized = false;
531  m_runTerminated = true;
532 }
G4Event * m_currentEvent
Definition: RunManager.h:120
G4Run * m_currentRun
Definition: RunManager.h:119
bool m_runTerminated
Definition: RunManager.h:113
RunAction * m_userRunAction
Definition: RunManager.h:122
bool m_runInitialized
Definition: RunManager.h:112
G4SimEvent * m_simEvent
Definition: RunManager.h:121
void EndOfRunAction(const G4Run *aRun) override
Definition: RunAction.cc:31
G4RunManagerKernel * m_kernel
Definition: RunManager.h:99

Member Data Documentation

bool RunManager::firstRun
private

Definition at line 115 of file RunManager.h.

Referenced by initG4().

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

Definition at line 153 of file RunManager.h.

Referenced by initG4().

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

Definition at line 154 of file RunManager.h.

Referenced by initG4().

bool RunManager::m_check
private

Definition at line 129 of file RunManager.h.

Referenced by initG4(), and RunManager().

G4Event* RunManager::m_currentEvent
private

Definition at line 120 of file RunManager.h.

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

G4Run* RunManager::m_currentRun
private

Definition at line 119 of file RunManager.h.

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

int RunManager::m_EvtMgrVerbosity
private

Definition at line 128 of file RunManager.h.

Referenced by initializeUserActions().

std::string RunManager::m_FieldFile
private

Definition at line 156 of file RunManager.h.

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

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

Definition at line 139 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_g4overlap
private

Definition at line 138 of file RunManager.h.

Referenced by initG4().

Generator* RunManager::m_generator
private

Definition at line 101 of file RunManager.h.

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

bool RunManager::m_hasWatchers
private

Definition at line 117 of file RunManager.h.

Referenced by initializeUserActions(), and RunManager().

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

Definition at line 103 of file RunManager.h.

Referenced by generateEvent().

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

Definition at line 104 of file RunManager.h.

Referenced by resetGenParticleId().

bool RunManager::m_managerInitialized
private

Definition at line 111 of file RunManager.h.

Referenced by initG4().

bool RunManager::m_nonBeam
private

Definition at line 106 of file RunManager.h.

Referenced by generateEvent().

edm::ParameterSet RunManager::m_p
private

Definition at line 140 of file RunManager.h.

Referenced by initG4(), and RunManager().

edm::ParameterSet RunManager::m_pEventAction
private

Definition at line 134 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pField
private

Definition at line 130 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_pGenerator
private

Definition at line 131 of file RunManager.h.

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

Definition at line 108 of file RunManager.h.

Referenced by initG4(), and RunManager().

std::string RunManager::m_PhysicsTablesDir
private

Definition at line 125 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_pPhysics
private

Definition at line 132 of file RunManager.h.

Referenced by initG4().

PrimaryTransformer* RunManager::m_primaryTransformer
private

Definition at line 109 of file RunManager.h.

Referenced by initG4().

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

Definition at line 145 of file RunManager.h.

Referenced by initG4(), and RunManager().

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

Definition at line 149 of file RunManager.h.

Referenced by RunManager().

edm::ParameterSet RunManager::m_pRunAction
private

Definition at line 133 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pStackingAction
private

Definition at line 135 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pSteppingAction
private

Definition at line 137 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pTrackingAction
private

Definition at line 136 of file RunManager.h.

Referenced by initializeUserActions().

bool RunManager::m_pUseMagneticField
private

Definition at line 116 of file RunManager.h.

Referenced by initG4().

std::string RunManager::m_RegionFile
private

Definition at line 158 of file RunManager.h.

Referenced by initG4(), and RunManager().

SimActivityRegistry RunManager::m_registry
private

Definition at line 147 of file RunManager.h.

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

bool RunManager::m_RestorePhysicsTables
private

Definition at line 127 of file RunManager.h.

Referenced by initG4().

bool RunManager::m_runAborted
private

Definition at line 114 of file RunManager.h.

Referenced by abortRun(), and initializeRun().

bool RunManager::m_runInitialized
private

Definition at line 112 of file RunManager.h.

Referenced by initializeRun(), and terminateRun().

SimRunInterface* RunManager::m_runInterface
private

Definition at line 123 of file RunManager.h.

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

bool RunManager::m_runTerminated
private

Definition at line 113 of file RunManager.h.

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

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

Definition at line 143 of file RunManager.h.

Referenced by initG4().

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

Definition at line 142 of file RunManager.h.

Referenced by initG4().

G4SimEvent* RunManager::m_simEvent
private

Definition at line 121 of file RunManager.h.

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

bool RunManager::m_StorePhysicsTables
private

Definition at line 126 of file RunManager.h.

Referenced by initG4().

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

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

Referenced by RunManager().

RunAction* RunManager::m_userRunAction
private

Definition at line 122 of file RunManager.h.

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

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

Definition at line 148 of file RunManager.h.

Referenced by RunManager().

std::string RunManager::m_WriteFile
private

Definition at line 157 of file RunManager.h.

Referenced by initG4(), and RunManager().