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<std::string>("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")),
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:136
edm::ParameterSet m_pGenerator
Definition: RunManager.h:139
edm::EDGetTokenT< edm::HepMCProduct > m_HepMC
Definition: RunManager.h:110
G4Event * m_currentEvent
Definition: RunManager.h:127
edm::EDGetTokenT< edm::LHCTransportLinkContainer > m_LHCtr
Definition: RunManager.h:111
SimActivityRegistry m_registry
Definition: RunManager.h:157
edm::ParameterSet m_p
Definition: RunManager.h:149
std::vector< std::shared_ptr< SimProducer > > m_producers
Definition: RunManager.h:159
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:124
bool m_pUseMagneticField
Definition: RunManager.h:123
bool m_nonBeam
Definition: RunManager.h:113
int m_EvtMgrVerbosity
Definition: RunManager.h:135
std::string m_WriteFile
Definition: RunManager.h:168
bool firstRun
Definition: RunManager.h:122
SimRunInterface * m_runInterface
Definition: RunManager.h:130
bool m_RestorePhysicsTables
Definition: RunManager.h:134
std::vector< std::shared_ptr< SimWatcher > > m_watchers
Definition: RunManager.h:158
std::unique_ptr< CMSSteppingVerbose > m_sVerbose
Definition: RunManager.h:156
G4Run * m_currentRun
Definition: RunManager.h:126
edm::ParameterSet m_pStackingAction
Definition: RunManager.h:144
edm::ParameterSet m_pEventAction
Definition: RunManager.h:143
bool m_runTerminated
Definition: RunManager.h:120
edm::ParameterSet m_pField
Definition: RunManager.h:138
edm::ParameterSet m_pPhysics
Definition: RunManager.h:141
edm::ParameterSet m_pSteppingAction
Definition: RunManager.h:146
edm::ParameterSet m_g4overlap
Definition: RunManager.h:147
RunAction * m_userRunAction
Definition: RunManager.h:129
bool m_runInitialized
Definition: RunManager.h:119
sim::ChordFinderSetter * m_chordFinderSetter
Definition: RunManager.h:162
std::string m_RegionFile
Definition: RunManager.h:169
std::vector< LHCTransportLink > LHCTransportLinkContainer
PrimaryTransformer * m_primaryTransformer
Definition: RunManager.h:116
std::string m_PhysicsTablesDir
Definition: RunManager.h:132
bool m_StorePhysicsTables
Definition: RunManager.h:133
std::unique_ptr< CustomUIsession > m_UIsession
Definition: RunManager.h:114
edm::ParameterSet m_pRunAction
Definition: RunManager.h:142
edm::ParameterSet m_pTrackingAction
Definition: RunManager.h:145
std::vector< std::string > m_G4Commands
Definition: RunManager.h:148
std::string m_FieldFile
Definition: RunManager.h:167
G4SimEvent * m_simEvent
Definition: RunManager.h:128
bool m_managerInitialized
Definition: RunManager.h:118
G4RunManagerKernel * m_kernel
Definition: RunManager.h:107
bool m_runAborted
Definition: RunManager.h:121
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:130
void terminateRun()
Definition: RunManager.cc:502
bool m_runTerminated
Definition: RunManager.h:120

Member Function Documentation

void RunManager::abortEvent ( )

Definition at line 434 of file RunManager.cc.

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

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

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

Definition at line 519 of file RunManager.cc.

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

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

520 {
521  if(m_runAborted) { return; }
522  if (!softAbort) { abortEvent(); }
523  if (m_currentRun!=0) { delete m_currentRun; m_currentRun = 0; }
524  terminateRun();
525  m_runAborted = true;
526 }
void abortEvent()
Definition: RunManager.cc:434
void terminateRun()
Definition: RunManager.cc:502
G4Run * m_currentRun
Definition: RunManager.h:126
bool m_runAborted
Definition: RunManager.h:121
void RunManager::Connect ( RunAction runAction)

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

543 {
546 }
SimActivityRegistry m_registry
Definition: RunManager.h:157
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 548 of file RunManager.cc.

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

549 {
552 }
SimActivityRegistry m_registry
Definition: RunManager.h:157
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 554 of file RunManager.cc.

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

555 {
558 }
SimActivityRegistry m_registry
Definition: RunManager.h:157
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 560 of file RunManager.cc.

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

561 {
563 }
SimActivityRegistry m_registry
Definition: RunManager.h:157
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:127
const G4Run* RunManager::currentRun ( ) const
inline

Definition at line 77 of file RunManager.h.

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

Definition at line 565 of file RunManager.cc.

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

Referenced by initG4().

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

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

References m_trackManager.

Referenced by SimRunInterface::SimRunInterface().

538 {
539  return m_trackManager.get();
540 }
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:161
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, reco::get(), edm::EventSetup::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), DDDWorld::GetWorldVolume(), GeV, idealGeomRcdWatcher_, idealMagRcdWatcher_, recoMuon::in, initializeRun(), initializeUserActions(), edm::errors::LogicError, m_attach, m_check, m_chordFinderSetter, m_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_, hpstanc_transforms::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  m_prodCuts.reset(new DDG4ProductionCuts(map_, verb, m_pPhysics));
292  m_prodCuts->update();
293 
294  m_kernel->SetPhysics(phys);
295  m_kernel->InitializePhysics();
296 
297  if (m_kernel->RunInitialization()) { m_managerInitialized = true; }
298  else {
300  << "G4RunManagerKernel initialization failed!";
301  }
302 
304  {
305  std::ostringstream dir;
306  dir << tableDir << '\0';
307  std::string cmd = std::string("/control/shell mkdir -p ")+tableDir;
308  if (!std::ifstream(dir.str().c_str(), std::ios::in))
309  G4UImanager::GetUIpointer()->ApplyCommand(cmd);
310  m_physicsList->StorePhysicsTable(tableDir);
311  }
312 
313  //tell all interesting parties that we are beginning the job
314  BeginOfJob aBeginOfJob(&es);
315  m_registry.beginOfJobSignal_(&aBeginOfJob);
316 
317  G4int sv = m_p.getParameter<int>("SteppingVerbosity");
318  G4double elim = m_p.getParameter<double>("StepVerboseThreshold")*CLHEP::GeV;
319  std::vector<int> ve = m_p.getParameter<std::vector<int> >("VerboseEvents");
320  std::vector<int> vn = m_p.getParameter<std::vector<int> >("VertexNumber");
321  std::vector<int> vt = m_p.getParameter<std::vector<int> >("VerboseTracks");
322 
323  if(sv > 0) {
324  m_sVerbose.reset(new CMSSteppingVerbose(sv, elim, ve, vn, vt));
325  }
327 
328  if(0 < m_G4Commands.size()) {
329  G4cout << "RunManager: Requested UI commands: " << G4endl;
330  for (unsigned it=0; it<m_G4Commands.size(); ++it) {
331  G4cout << " " << m_G4Commands[it] << G4endl;
332  G4UImanager::GetUIpointer()->ApplyCommand(m_G4Commands[it]);
333  }
334  }
335 
336  if("" != m_WriteFile) {
337  G4GDMLParser gdml;
338  gdml.SetRegionExport(true);
339  gdml.SetEnergyCutsExport(true);
340  gdml.Write(m_WriteFile, world->GetWorldVolume(), true);
341  }
342 
343  if("" != m_RegionFile) {
344  G4RegionReporter rrep;
346  }
347 
349 
350  // If the Geant4 particle table is needed, decomment the lines below
351  //
352  // G4cout << "Output of G4ParticleTable DumpTable:" << G4endl;
353  // G4ParticleTable::GetParticleTable()->DumpTable("ALL");
354 
355  initializeRun();
356  firstRun= false;
357 }
T getParameter(std::string const &) const
bool m_check
Definition: RunManager.h:136
Map map_
T getUntrackedParameter(std::string const &, T const &) const
edm::ESWatcher< IdealMagneticFieldRecord > idealMagRcdWatcher_
Definition: RunManager.h:165
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:157
edm::ParameterSet m_p
Definition: RunManager.h:149
HepPDT::ParticleDataTable ParticleDataTable
void initializeRun()
Definition: RunManager.cc:492
void initializeUserActions()
Definition: RunManager.cc:455
bool m_pUseMagneticField
Definition: RunManager.h:123
edm::ESWatcher< IdealGeometryRecord > idealGeomRcdWatcher_
Definition: RunManager.h:164
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:153
std::vector< SensitiveTkDetector * > m_sensTkDets
Definition: RunManager.h:152
BeginOfJobSignal beginOfJobSignal_
std::string m_WriteFile
Definition: RunManager.h:168
bool firstRun
Definition: RunManager.h:122
bool m_RestorePhysicsTables
Definition: RunManager.h:134
std::unique_ptr< CMSSteppingVerbose > m_sVerbose
Definition: RunManager.h:156
edm::ParameterSet m_pField
Definition: RunManager.h:138
edm::ParameterSet m_pPhysics
Definition: RunManager.h:141
edm::ParameterSet m_g4overlap
Definition: RunManager.h:147
DDDWorldSignal dddWorldSignal_
const T & get() const
Definition: EventSetup.h:56
std::pair< std::vector< SensitiveTkDetector * >, std::vector< SensitiveCaloDetector * > > create(const DDDWorld &w, const DDCompactView &cpv, const SensitiveDetectorCatalog &clg, edm::ParameterSet const &p, const SimTrackManager *m, SimActivityRegistry &reg) const
Definition: AttachSD.cc:23
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
void ReportRegions(const std::string &ss)
void DumpMagneticField(const G4Field *) const
Definition: RunManager.cc:565
sim::ChordFinderSetter * m_chordFinderSetter
Definition: RunManager.h:162
std::string m_RegionFile
Definition: RunManager.h:169
AttachSD * m_attach
Definition: RunManager.h:151
PrimaryTransformer * m_primaryTransformer
Definition: RunManager.h:116
std::string m_PhysicsTablesDir
Definition: RunManager.h:132
bool m_StorePhysicsTables
Definition: RunManager.h:133
dbl *** dir
Definition: mlp_gen.cc:35
std::unique_ptr< DDG4ProductionCuts > m_prodCuts
Definition: RunManager.h:155
def check(config)
Definition: trackerTree.py:12
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:161
T const * product() const
Definition: ESHandle.h:86
std::vector< std::string > m_G4Commands
Definition: RunManager.h:148
std::unique_ptr< PhysicsList > m_physicsList
Definition: RunManager.h:115
std::string m_FieldFile
Definition: RunManager.h:167
bool m_managerInitialized
Definition: RunManager.h:118
T get(const Candidate &c)
Definition: component.h:55
G4RunManagerKernel * m_kernel
Definition: RunManager.h:107
void RunManager::initializeRun ( )

Definition at line 492 of file RunManager.cc.

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

Referenced by initG4().

493 {
494  m_runInitialized = false;
495  if (m_currentRun==nullptr) { m_currentRun = new G4Run(); }
496  G4StateManager::GetStateManager()->SetNewState(G4State_GeomClosed);
498  m_runAborted = false;
499  m_runInitialized = true;
500 }
G4Run * m_currentRun
Definition: RunManager.h:126
RunAction * m_userRunAction
Definition: RunManager.h:129
void BeginOfRunAction(const G4Run *aRun)
Definition: RunAction.cc:22
bool m_runInitialized
Definition: RunManager.h:119
bool m_runAborted
Definition: RunManager.h:121
void RunManager::initializeUserActions ( )

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

456 {
457  m_runInterface = new SimRunInterface(this, false);
458 
461 
462  G4EventManager * eventManager = m_kernel->GetEventManager();
463  eventManager->SetVerboseLevel(m_EvtMgrVerbosity);
464 
465  if (m_generator!=nullptr) {
466  EventAction * userEventAction =
468  m_sVerbose.get());
469  Connect(userEventAction);
470  eventManager->SetUserAction(userEventAction);
471 
472  TrackingAction* userTrackingAction =
473  new TrackingAction(userEventAction,m_pTrackingAction,m_sVerbose.get());
474  Connect(userTrackingAction);
475  eventManager->SetUserAction(userTrackingAction);
476 
477  SteppingAction* userSteppingAction =
478  new SteppingAction(userEventAction,m_pSteppingAction,m_sVerbose.get(),m_hasWatchers);
479  Connect(userSteppingAction);
480  eventManager->SetUserAction(userSteppingAction);
481 
482  eventManager->SetUserAction(new StackingAction(userTrackingAction,
484 
485  } else {
486  edm::LogWarning("SimG4CoreApplication") << " RunManager: WARNING : "
487  << "No generator; initialized "
488  << "only RunAction!";
489  }
490 }
Generator * m_generator
Definition: RunManager.h:109
bool m_hasWatchers
Definition: RunManager.h:124
int m_EvtMgrVerbosity
Definition: RunManager.h:135
SimRunInterface * m_runInterface
Definition: RunManager.h:130
std::unique_ptr< CMSSteppingVerbose > m_sVerbose
Definition: RunManager.h:156
edm::ParameterSet m_pStackingAction
Definition: RunManager.h:144
edm::ParameterSet m_pEventAction
Definition: RunManager.h:143
edm::ParameterSet m_pSteppingAction
Definition: RunManager.h:146
RunAction * m_userRunAction
Definition: RunManager.h:129
void Connect(RunAction *)
Definition: RunManager.cc:542
edm::ParameterSet m_pRunAction
Definition: RunManager.h:142
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:161
edm::ParameterSet m_pTrackingAction
Definition: RunManager.h:145
G4RunManagerKernel * m_kernel
Definition: RunManager.h:107
void RunManager::produce ( edm::Event inpevt,
const edm::EventSetup es 
)

Definition at line 365 of file RunManager.cc.

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

366 {
367  m_currentEvent = generateEvent(inpevt);
368  m_simEvent = new G4SimEvent;
371  if (m_generator->genVertex() !=0 ) {
374  m_generator->genVertex()->y()/centimeter,
375  m_generator->genVertex()->z()/centimeter,
376  m_generator->genVertex()->t()/second));
377  }
378  if (m_currentEvent->GetNumberOfPrimaryVertex()==0) {
379  std::stringstream ss;
380  ss << " RunManager::produce(): event " << inpevt.id().event()
381  << " with no G4PrimaryVertices\n" ;
382  throw SimG4Exception(ss.str());
383 
384  abortRun(false);
385  } else {
386  edm::LogInfo("SimG4CoreApplication")
387  << "RunManager::produce: start Event " << inpevt.id().event()
388  << " of weight " << m_simEvent->weight()
389  << " with " << m_simEvent->nTracks() << " tracks and "
390  << m_simEvent->nVertices()
391  << " vertices, generated by " << m_simEvent->nGenParts() << " particles ";
392 
393  m_kernel->GetEventManager()->ProcessOneEvent(m_currentEvent);
394 
395  edm::LogInfo("SimG4CoreApplication")
396  << " RunManager::produce: ended Event " << inpevt.id().event();
397  }
398 }
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:127
void abortRun(bool softAbort=false)
Definition: RunManager.cc:519
virtual const HepMC::GenEvent * genEvent() const
Definition: Generator.h:29
Generator * m_generator
Definition: RunManager.h:109
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:400
edm::EventID id() const
Definition: EventBase.h:58
void collisionPoint(const math::XYZTLorentzVectorD &v)
Definition: G4SimEvent.h:29
G4SimEvent * m_simEvent
Definition: RunManager.h:128
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:159
void RunManager::resetGenParticleId ( edm::Event inpevt)
protected

Definition at line 528 of file RunManager.cc.

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

Referenced by generateEvent().

529 {
531  inpevt.getByToken( m_LHCtr, theLHCTlink );
532  if ( theLHCTlink.isValid() ) {
533  m_trackManager->setLHCTransportLink( theLHCTlink.product() );
534  }
535 }
edm::EDGetTokenT< edm::LHCTransportLinkContainer > m_LHCtr
Definition: RunManager.h:111
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
bool isValid() const
Definition: HandleBase.h:75
T const * product() const
Definition: Handle.h:81
std::unique_ptr< SimTrackManager > m_trackManager
Definition: RunManager.h:161
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:153
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:152
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:128
void RunManager::stopG4 ( )

Definition at line 359 of file RunManager.cc.

References m_runTerminated, and terminateRun().

360 {
361  G4StateManager::GetStateManager()->SetNewState(G4State_Quit);
362  if (!m_runTerminated) { terminateRun(); }
363 }
void terminateRun()
Definition: RunManager.cc:502
bool m_runTerminated
Definition: RunManager.h:120
void RunManager::terminateRun ( )

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

503 {
504  if(m_runTerminated) { return; }
505  if (m_userRunAction!=nullptr) {
507  delete m_userRunAction;
508  m_userRunAction = nullptr;
509  }
510  delete m_currentEvent;
511  m_currentEvent = nullptr;
512  delete m_simEvent;
513  m_simEvent = nullptr;
514  if(m_kernel != nullptr) { m_kernel->RunTermination(); }
515  m_runInitialized = false;
516  m_runTerminated = true;
517 }
G4Event * m_currentEvent
Definition: RunManager.h:127
void EndOfRunAction(const G4Run *aRun)
Definition: RunAction.cc:40
G4Run * m_currentRun
Definition: RunManager.h:126
bool m_runTerminated
Definition: RunManager.h:120
RunAction * m_userRunAction
Definition: RunManager.h:129
bool m_runInitialized
Definition: RunManager.h:119
G4SimEvent * m_simEvent
Definition: RunManager.h:128
G4RunManagerKernel * m_kernel
Definition: RunManager.h:107

Member Data Documentation

bool RunManager::firstRun
private

Definition at line 122 of file RunManager.h.

Referenced by initG4().

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

Definition at line 164 of file RunManager.h.

Referenced by initG4().

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

Definition at line 165 of file RunManager.h.

Referenced by initG4().

AttachSD* RunManager::m_attach
private

Definition at line 151 of file RunManager.h.

Referenced by initG4().

bool RunManager::m_check
private

Definition at line 136 of file RunManager.h.

Referenced by initG4(), and RunManager().

sim::ChordFinderSetter* RunManager::m_chordFinderSetter
private

Definition at line 162 of file RunManager.h.

Referenced by initG4().

G4Event* RunManager::m_currentEvent
private

Definition at line 127 of file RunManager.h.

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

G4Run* RunManager::m_currentRun
private

Definition at line 126 of file RunManager.h.

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

int RunManager::m_EvtMgrVerbosity
private

Definition at line 135 of file RunManager.h.

Referenced by initializeUserActions().

std::string RunManager::m_FieldFile
private

Definition at line 167 of file RunManager.h.

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

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

Definition at line 148 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_g4overlap
private

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

Referenced by initializeUserActions(), and RunManager().

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

Definition at line 110 of file RunManager.h.

Referenced by generateEvent().

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

Definition at line 111 of file RunManager.h.

Referenced by resetGenParticleId().

bool RunManager::m_managerInitialized
private

Definition at line 118 of file RunManager.h.

Referenced by initG4().

bool RunManager::m_nonBeam
private

Definition at line 113 of file RunManager.h.

Referenced by generateEvent().

edm::ParameterSet RunManager::m_p
private

Definition at line 149 of file RunManager.h.

Referenced by initG4(), and RunManager().

edm::ParameterSet RunManager::m_pEventAction
private

Definition at line 143 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pField
private

Definition at line 138 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_pGenerator
private

Definition at line 139 of file RunManager.h.

edm::ParameterSet RunManager::m_pGeometry
private

Definition at line 137 of file RunManager.h.

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

Definition at line 115 of file RunManager.h.

Referenced by initG4().

std::string RunManager::m_PhysicsTablesDir
private

Definition at line 132 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_pPhysics
private

Definition at line 141 of file RunManager.h.

Referenced by initG4().

PrimaryTransformer* RunManager::m_primaryTransformer
private

Definition at line 116 of file RunManager.h.

Referenced by initG4().

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

Definition at line 155 of file RunManager.h.

Referenced by initG4().

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

Definition at line 159 of file RunManager.h.

Referenced by RunManager().

edm::ParameterSet RunManager::m_pRunAction
private

Definition at line 142 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pStackingAction
private

Definition at line 144 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pSteppingAction
private

Definition at line 146 of file RunManager.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManager::m_pTrackingAction
private

Definition at line 145 of file RunManager.h.

Referenced by initializeUserActions().

bool RunManager::m_pUseMagneticField
private

Definition at line 123 of file RunManager.h.

Referenced by initG4().

edm::ParameterSet RunManager::m_pVertexGenerator
private

Definition at line 140 of file RunManager.h.

std::string RunManager::m_RegionFile
private

Definition at line 169 of file RunManager.h.

Referenced by initG4(), and RunManager().

SimActivityRegistry RunManager::m_registry
private

Definition at line 157 of file RunManager.h.

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

bool RunManager::m_RestorePhysicsTables
private

Definition at line 134 of file RunManager.h.

Referenced by initG4().

bool RunManager::m_runAborted
private

Definition at line 121 of file RunManager.h.

Referenced by abortRun(), and initializeRun().

bool RunManager::m_runInitialized
private

Definition at line 119 of file RunManager.h.

Referenced by initializeRun(), and terminateRun().

SimRunInterface* RunManager::m_runInterface
private

Definition at line 130 of file RunManager.h.

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

bool RunManager::m_runTerminated
private

Definition at line 120 of file RunManager.h.

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

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

Definition at line 153 of file RunManager.h.

Referenced by initG4().

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

Definition at line 152 of file RunManager.h.

Referenced by initG4().

G4SimEvent* RunManager::m_simEvent
private

Definition at line 128 of file RunManager.h.

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

bool RunManager::m_StorePhysicsTables
private

Definition at line 133 of file RunManager.h.

Referenced by initG4().

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

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

Referenced by RunManager().

RunAction* RunManager::m_userRunAction
private

Definition at line 129 of file RunManager.h.

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

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

Definition at line 158 of file RunManager.h.

Referenced by RunManager().

std::string RunManager::m_WriteFile
private

Definition at line 168 of file RunManager.h.

Referenced by initG4(), and RunManager().