CMS 3D CMS Logo

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

#include <RunManagerMT.h>

Inheritance diagram for RunManagerMT:
RunManager

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< boost::shared_ptr
< SimProducer > > 
producers () const
 
 RunManagerMT (edm::ParameterSet const &p)
 
std::vector
< SensitiveCaloDetector * > & 
sensCaloDetectors ()
 
std::vector
< SensitiveTkDetector * > & 
sensTkDetectors ()
 
G4SimEventsimEvent ()
 
void stopG4 ()
 
void terminateRun ()
 
 ~RunManagerMT ()
 
- Public Member Functions inherited from RunManager
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< boost::shared_ptr
< SimProducer > > 
producers () const
 
 RunManager (edm::ParameterSet const &p)
 
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)
 
- Protected Member Functions inherited from RunManager
void DumpMagneticField (const G4Field *) const
 
G4Event * generateEvent (edm::Event &inpevt)
 
void resetGenParticleId (edm::Event &inpevt)
 

Private Attributes

bool firstRun
 
edm::ESWatcher
< IdealGeometryRecord
idealGeomRcdWatcher_
 
edm::ESWatcher
< IdealMagneticFieldRecord
idealMagRcdWatcher_
 
AttachSDm_attach
 
bool m_check
 
G4Event * m_currentEvent
 
G4Run * m_currentRun
 
ExceptionHandlerm_CustomExceptionHandler
 
int m_EvtMgrVerbosity
 
sim::FieldBuilderm_fieldBuilder
 
std::string m_FieldFile
 
std::vector< std::string > m_G4Commands
 
Generatorm_generator
 
std::string m_InTag
 
G4RunManagerKernel * m_kernel
 
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::auto_ptr< PhysicsListm_physicsList
 
std::string m_PhysicsTablesDir
 
edm::ParameterSet m_pPhysics
 
PrimaryTransformerm_primaryTransformer
 
std::vector< boost::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
 
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
 
edm::InputTag m_theLHCTlinkTag
 
std::auto_ptr< SimTrackManagerm_trackManager
 
RunActionm_userRunAction
 
std::vector< boost::shared_ptr
< SimWatcher > > 
m_watchers
 
std::string m_WriteFile
 

Detailed Description

Definition at line 62 of file RunManagerMT.h.

Constructor & Destructor Documentation

RunManagerMT::RunManagerMT ( edm::ParameterSet const &  p)

Definition at line 110 of file RunManagerMT.cc.

References SimActivityRegistry::connect(), createWatchers(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), m_check, m_CustomExceptionHandler, m_FieldFile, m_generator, m_InTag, m_kernel, m_p, m_pGenerator, m_producers, m_registry, m_runInterface, m_userRunAction, m_watchers, m_WriteFile, and AlCaHLTBitMon_QueryRunRegistry::string.

111  : RunManager(p),
112  m_generator(0), m_nonBeam(p.getParameter<bool>("NonBeamEvent")),
114  m_managerInitialized(false),
115  m_runInitialized(false), m_runTerminated(false), m_runAborted(false),
116  firstRun(true),
117  m_pUseMagneticField(p.getParameter<bool>("UseMagneticField")),
119  m_PhysicsTablesDir(p.getParameter<std::string>("PhysicsTablesDirectory")),
120  m_StorePhysicsTables(p.getParameter<bool>("StorePhysicsTables")),
121  m_RestorePhysicsTables(p.getParameter<bool>("RestorePhysicsTables")),
122  m_EvtMgrVerbosity(p.getUntrackedParameter<int>("G4EventManagerVerbosity",0)),
123  m_pField(p.getParameter<edm::ParameterSet>("MagneticField")),
124  m_pGenerator(p.getParameter<edm::ParameterSet>("Generator")),
125  m_pPhysics(p.getParameter<edm::ParameterSet>("Physics")),
126  m_pRunAction(p.getParameter<edm::ParameterSet>("RunAction")),
127  m_pEventAction(p.getParameter<edm::ParameterSet>("EventAction")),
128  m_pStackingAction(p.getParameter<edm::ParameterSet>("StackingAction")),
129  m_pTrackingAction(p.getParameter<edm::ParameterSet>("TrackingAction")),
130  m_pSteppingAction(p.getParameter<edm::ParameterSet>("SteppingAction")),
131  m_G4Commands(p.getParameter<std::vector<std::string> >("G4Commands")),
132  m_p(p), m_fieldBuilder(0),
133  m_theLHCTlinkTag(p.getParameter<edm::InputTag>("theLHCTlinkTag"))
134 {
135  //m_HepMC = iC.consumes<edm::HepMCProduct>(p.getParameter<edm::InputTag>("HepMCProduct"));
136 
137  m_kernel = G4RunManagerKernel::GetRunManagerKernel();
138  if (m_kernel==0) m_kernel = new G4RunManagerKernel();
139 
141 
142  m_check = p.getUntrackedParameter<bool>("CheckOverlap",false);
143  m_WriteFile = p.getUntrackedParameter<std::string>("FileNameGDML","");
144  m_FieldFile = p.getUntrackedParameter<std::string>("FileNameField","");
145  if("" != m_FieldFile) { m_FieldFile += ".txt"; }
146 
147  m_userRunAction = 0;
148  m_runInterface = 0;
149 
150  //Look for an outside SimActivityRegistry
151  // this is used by the visualization code
152  edm::Service<SimActivityRegistry> otherRegistry;
153  if(otherRegistry){
154  m_registry.connect(*otherRegistry);
155  }
156 
158 
160  m_InTag = m_pGenerator.getParameter<std::string>("HepMCProductLabel") ;
161 
162 }
bool m_managerInitialized
Definition: RunManagerMT.h:114
T getParameter(std::string const &) const
edm::ParameterSet m_pStackingAction
Definition: RunManagerMT.h:140
G4SimEvent * m_simEvent
Definition: RunManagerMT.h:122
edm::ParameterSet m_pRunAction
Definition: RunManagerMT.h:138
edm::ParameterSet m_pGenerator
Definition: RunManagerMT.h:135
PrimaryTransformer * m_primaryTransformer
Definition: RunManagerMT.h:113
ExceptionHandler * m_CustomExceptionHandler
Definition: RunManagerMT.h:145
bool m_runTerminated
Definition: RunManagerMT.h:116
sim::FieldBuilder * m_fieldBuilder
Definition: RunManagerMT.h:156
bool m_runInitialized
Definition: RunManagerMT.h:115
std::vector< std::string > m_G4Commands
Definition: RunManagerMT.h:143
G4Run * m_currentRun
Definition: RunManagerMT.h:120
int m_EvtMgrVerbosity
Definition: RunManagerMT.h:131
std::string m_WriteFile
Definition: RunManagerMT.h:164
Generator * m_generator
Definition: RunManagerMT.h:108
G4Event * m_currentEvent
Definition: RunManagerMT.h:121
static void createWatchers(const edm::ParameterSet &iP, SimActivityRegistry &iReg, std::vector< boost::shared_ptr< SimWatcher > > &oWatchers, std::vector< boost::shared_ptr< SimProducer > > &oProds)
Definition: RunManagerMT.cc:75
edm::ParameterSet m_pTrackingAction
Definition: RunManagerMT.h:141
G4RunManagerKernel * m_kernel
Definition: RunManagerMT.h:106
std::vector< boost::shared_ptr< SimProducer > > m_producers
Definition: RunManagerMT.h:153
bool m_pUseMagneticField
Definition: RunManagerMT.h:119
edm::ParameterSet m_p
Definition: RunManagerMT.h:144
edm::InputTag m_theLHCTlinkTag
Definition: RunManagerMT.h:161
edm::ParameterSet m_pSteppingAction
Definition: RunManagerMT.h:142
std::vector< boost::shared_ptr< SimWatcher > > m_watchers
Definition: RunManagerMT.h:152
bool m_StorePhysicsTables
Definition: RunManagerMT.h:129
std::string m_FieldFile
Definition: RunManagerMT.h:163
edm::ParameterSet m_pField
Definition: RunManagerMT.h:134
edm::ParameterSet m_pPhysics
Definition: RunManagerMT.h:137
std::string m_InTag
Definition: RunManagerMT.h:109
bool m_RestorePhysicsTables
Definition: RunManagerMT.h:130
edm::ParameterSet m_pEventAction
Definition: RunManagerMT.h:139
std::string m_PhysicsTablesDir
Definition: RunManagerMT.h:128
void connect(SimActivityRegistry &iOther)
forwards our signals to slots connected to iOther
RunAction * m_userRunAction
Definition: RunManagerMT.h:123
RunManager(edm::ParameterSet const &p)
Definition: RunManager.cc:110
SimRunInterface * m_runInterface
Definition: RunManagerMT.h:124
SimActivityRegistry m_registry
Definition: RunManagerMT.h:151
RunManagerMT::~RunManagerMT ( )

Definition at line 164 of file RunManagerMT.cc.

References m_runInterface, m_runTerminated, and terminateRun().

165 {
166  if (!m_runTerminated) { terminateRun(); }
167  G4StateManager::GetStateManager()->SetNewState(G4State_Quit);
168  G4GeometryManager::GetInstance()->OpenGeometry();
169  // if (m_kernel!=0) delete m_kernel;
170  delete m_runInterface;
171 }
void terminateRun()
bool m_runTerminated
Definition: RunManagerMT.h:116
SimRunInterface * m_runInterface
Definition: RunManagerMT.h:124

Member Function Documentation

void RunManagerMT::abortEvent ( )

Definition at line 384 of file RunManagerMT.cc.

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

Referenced by abortRun().

385 {
386  if (m_runTerminated) { return; }
387  G4Track* t =
388  m_kernel->GetEventManager()->GetTrackingManager()->GetTrack();
389  t->SetTrackStatus(fStopAndKill) ;
390 
391  // CMS-specific act
392  //
393  TrackingAction* uta =
394  (TrackingAction*)m_kernel->GetEventManager()->GetUserTrackingAction() ;
395  uta->PostUserTrackingAction(t) ;
396 
397  m_currentEvent->SetEventAborted();
398 
399  // do NOT call this method for now
400  // because it'll set abortRequested=true (withing G4EventManager)
401  // this will make Geant4, in the event *next* after the aborted one
402  // NOT to get the primamry, thus there's NOTHING to trace, and it goes
403  // to the end of G4Event::DoProcessing(G4Event*), where abortRequested
404  // will be reset to true again
405  //
406  //m_kernel->GetEventManager()->AbortCurrentEvent();
407  //
408  // instead, mimic what it does, except (re)setting abortRequested
409  //
410  m_kernel->GetEventManager()->GetStackManager()->clear() ;
411  m_kernel->GetEventManager()->GetTrackingManager()->EventAborted() ;
412 
413  G4StateManager* stateManager = G4StateManager::GetStateManager();
414  stateManager->SetNewState(G4State_GeomClosed);
415 }
bool m_runTerminated
Definition: RunManagerMT.h:116
G4Event * m_currentEvent
Definition: RunManagerMT.h:121
G4RunManagerKernel * m_kernel
Definition: RunManagerMT.h:106
virtual void PostUserTrackingAction(const G4Track *aTrack)
void RunManagerMT::abortRun ( bool  softAbort = false)

Definition at line 486 of file RunManagerMT.cc.

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

Referenced by produce().

487 {
488  m_runAborted = false;
489  if (!softAbort) { abortEvent(); }
490  if (m_currentRun!=0) { delete m_currentRun; m_currentRun = 0; }
491  m_runInitialized = false;
492  m_runAborted = true;
493  terminateRun();
494 }
void abortEvent()
void terminateRun()
bool m_runInitialized
Definition: RunManagerMT.h:115
G4Run * m_currentRun
Definition: RunManagerMT.h:120
void RunManagerMT::Connect ( RunAction runAction)

Definition at line 510 of file RunManagerMT.cc.

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

Referenced by initializeUserActions().

511 {
514 }
SimActivityRegistry::EndOfRunSignal m_endOfRunSignal
Definition: RunAction.h:23
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:22
SimActivityRegistry m_registry
Definition: RunManagerMT.h:151
void RunManagerMT::Connect ( EventAction eventAction)

Definition at line 516 of file RunManagerMT.cc.

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

517 {
520 }
EndOfEventSignal endOfEventSignal_
SimActivityRegistry::EndOfEventSignal m_endOfEventSignal
Definition: EventAction.h:46
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:45
SimActivityRegistry m_registry
Definition: RunManagerMT.h:151
void RunManagerMT::Connect ( TrackingAction trackingAction)

Definition at line 522 of file RunManagerMT.cc.

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

523 {
526 }
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 m_registry
Definition: RunManagerMT.h:151
SimActivityRegistry::BeginOfTrackSignal m_beginOfTrackSignal
void RunManagerMT::Connect ( SteppingAction steppingAction)

Definition at line 528 of file RunManagerMT.cc.

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

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

Definition at line 80 of file RunManagerMT.h.

References m_currentEvent.

80 { return m_currentEvent; }
G4Event * m_currentEvent
Definition: RunManagerMT.h:121
const G4Run* RunManagerMT::currentRun ( ) const
inline

Definition at line 76 of file RunManagerMT.h.

References m_currentRun.

76 { return m_currentRun; }
G4Run * m_currentRun
Definition: RunManagerMT.h:120
void RunManagerMT::DumpMagneticField ( const G4Field *  field) const
protected

Definition at line 533 of file RunManagerMT.cc.

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

Referenced by initG4().

534 {
535  std::ofstream fout(m_FieldFile.c_str(), std::ios::out);
536  if(fout.fail()){
537  edm::LogWarning("SimG4CoreApplication")
538  << " RunManagerMT WARNING : "
539  << "error opening file <" << m_FieldFile << "> for magnetic field";
540  } else {
541  double rmax = 9000*mm;
542  double zmax = 16000*mm;
543 
544  double dr = 5*cm;
545  double dz = 20*cm;
546 
547  int nr = (int)(rmax/dr);
548  int nz = 2*(int)(zmax/dz);
549 
550  double r = 0.0;
551  double z0 = -zmax;
552  double z;
553 
554  double phi = 0.0;
555  double cosf = cos(phi);
556  double sinf = sin(phi);
557 
558  double point[4] = {0.0,0.0,0.0,0.0};
559  double bfield[3] = {0.0,0.0,0.0};
560 
561  fout << std::setprecision(6);
562  for(int i=0; i<=nr; ++i) {
563  z = z0;
564  for(int j=0; j<=nz; ++j) {
565  point[0] = r*cosf;
566  point[1] = r*sinf;
567  point[2] = z;
568  field->GetFieldValue(point, bfield);
569  fout << "R(mm)= " << r/mm << " phi(deg)= " << phi/degree
570  << " Z(mm)= " << z/mm << " Bz(tesla)= " << bfield[2]/tesla
571  << " Br(tesla)= " << (bfield[0]*cosf + bfield[1]*sinf)/tesla
572  << " Bphi(tesla)= " << (bfield[0]*sinf - bfield[1]*cosf)/tesla
573  << G4endl;
574  z += dz;
575  }
576  r += dr;
577  }
578 
579  fout.close();
580  }
581 }
int i
Definition: DBlmapReader.cc:9
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
float float float z
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int j
Definition: DBlmapReader.cc:9
tuple out
Definition: dbtoconf.py:99
std::string m_FieldFile
Definition: RunManagerMT.h:163
*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
Definition: DDAxes.h:10
G4Event * RunManagerMT::generateEvent ( edm::Event inpevt)
protected

Definition at line 353 of file RunManagerMT.cc.

References edm::EventID::event(), edm::Event::getByLabel(), Generator::HepMC2G4(), edm::EventBase::id(), m_currentEvent, m_generator, m_InTag, m_nonBeam, m_simEvent, Generator::nonBeamEvent2G4(), resetGenParticleId(), and Generator::setGenEvent().

Referenced by produce().

354 {
355  if (m_currentEvent!=0) { delete m_currentEvent; }
356  m_currentEvent = 0;
357  if (m_simEvent!=0) { delete m_simEvent; }
358  m_simEvent = 0;
359  G4Event * evt = new G4Event(inpevt.id().event());
360 
362 
363  inpevt.getByLabel( m_InTag, HepMCEvt ) ;
364 
365  m_generator->setGenEvent(HepMCEvt->GetEvent());
366 
367  // required to reset the GenParticle Id for particles transported
368  // along the beam pipe
369  // to their original value for SimTrack creation
370  resetGenParticleId( inpevt );
371 
372  if (!m_nonBeam)
373  {
374  m_generator->HepMC2G4(HepMCEvt->GetEvent(),evt);
375  }
376  else
377  {
378  m_generator->nonBeamEvent2G4(HepMCEvt->GetEvent(),evt);
379  }
380 
381  return evt;
382 }
EventNumber_t event() const
Definition: EventID.h:44
G4SimEvent * m_simEvent
Definition: RunManagerMT.h:122
void HepMC2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:91
Generator * m_generator
Definition: RunManagerMT.h:108
G4Event * m_currentEvent
Definition: RunManagerMT.h:121
void setGenEvent(const HepMC::GenEvent *inpevt)
Definition: Generator.h:24
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
std::string m_InTag
Definition: RunManagerMT.h:109
void nonBeamEvent2G4(const HepMC::GenEvent *g, G4Event *e)
Definition: Generator.cc:481
edm::EventID id() const
Definition: EventBase.h:56
void resetGenParticleId(edm::Event &inpevt)
const Generator* RunManagerMT::generator ( ) const
inline

Definition at line 79 of file RunManagerMT.h.

References m_generator.

79 { return m_generator; }
Generator * m_generator
Definition: RunManagerMT.h:108
SimTrackManager * RunManagerMT::GetSimTrackManager ( )

Definition at line 505 of file RunManagerMT.cc.

References m_trackManager.

506 {
507  return m_trackManager.get();
508 }
std::auto_ptr< SimTrackManager > m_trackManager
Definition: RunManagerMT.h:155
void RunManagerMT::initG4 ( const edm::EventSetup es)

Definition at line 173 of file RunManagerMT.cc.

References SimActivityRegistry::beginOfJobSignal_, sim::FieldBuilder::build(), edm::ESWatcher< T >::check(), asciidump::cmd, AttachSD::create(), SurfaceDeformationFactory::create(), SimActivityRegistry::dddWorldSignal_, dir, DumpMagneticField(), edm::hlt::Exception, firstRun, g, edm::EventSetup::get(), reco::get(), edm::ParameterSet::getParameter(), DDDWorld::GetWorldVolume(), idealGeomRcdWatcher_, idealMagRcdWatcher_, recoMuon::in, initializeRun(), initializeUserActions(), m_attach, m_check, m_fieldBuilder, m_FieldFile, m_G4Commands, m_kernel, m_managerInitialized, m_p, m_pField, m_physicsList, m_PhysicsTablesDir, m_pPhysics, m_primaryTransformer, m_pUseMagneticField, m_registry, m_RestorePhysicsTables, m_sensCaloDets, m_sensTkDets, m_StorePhysicsTables, m_trackManager, m_WriteFile, and AlCaHLTBitMon_QueryRunRegistry::string.

174 {
175  bool geomChanged = idealGeomRcdWatcher_.check(es);
176  if (geomChanged && (!firstRun)) {
177  throw cms::Exception("BadConfig")
178  << "[SimG4Core RunManagerMT]\n"
179  << "The Geometry configuration is changed during the job execution\n"
180  << "this is not allowed, the geometry must stay unchanged\n";
181  }
182  if (m_pUseMagneticField) {
183  bool magChanged = idealMagRcdWatcher_.check(es);
184  if (magChanged && (!firstRun)) {
185  throw cms::Exception("BadConfig")
186  << "[SimG4Core RunManagerMT]\n"
187  << "The MagneticField configuration is changed during the job execution\n"
188  << "this is not allowed, the MagneticField must stay unchanged\n";
189  }
190  }
191 
192  if (m_managerInitialized) return;
193 
194  // DDDWorld: get the DDCV from the ES and use it to build the World
196  es.get<IdealGeometryRecord>().get(pDD);
197 
199  SensitiveDetectorCatalog catalog_;
200  const DDDWorld * world = new DDDWorld(&(*pDD), map_, catalog_, m_check);
202 
203  if("" != m_WriteFile) {
204  G4GDMLParser gdml;
205  gdml.Write(m_WriteFile, world->GetWorldVolume());
206  }
207 
209  {
210  // setup the magnetic field
212  es.get<IdealMagneticFieldRecord>().get(pMF);
213  const GlobalPoint g(0.,0.,0.);
214 
215  m_fieldBuilder = new sim::FieldBuilder(&(*pMF), m_pField);
216  G4TransportationManager * tM =
217  G4TransportationManager::GetTransportationManager();
218  m_fieldBuilder->build( tM->GetFieldManager(),
219  tM->GetPropagatorInField());
220  if("" != m_FieldFile) {
221  DumpMagneticField(tM->GetFieldManager()->GetDetectorField());
222  }
223  }
224 
225  // we need the track manager now
226  m_trackManager = std::auto_ptr<SimTrackManager>(new SimTrackManager);
227 
228  // attach sensitive detector
229  m_attach = new AttachSD;
230 
231  std::pair< std::vector<SensitiveTkDetector*>,
232  std::vector<SensitiveCaloDetector*> > sensDets =
233  m_attach->create(*world,(*pDD),catalog_,m_p,m_trackManager.get(),
234  m_registry);
235 
236  m_sensTkDets.swap(sensDets.first);
237  m_sensCaloDets.swap(sensDets.second);
238 
239  edm::LogInfo("SimG4CoreApplication")
240  << " RunManagerMT: Sensitive Detector "
241  << "building finished; found "
242  << m_sensTkDets.size()
243  << " Tk type Producers, and "
244  << m_sensCaloDets.size()
245  << " Calo type producers ";
246 
248  es.get<PDTRecord>().get(fTable);
249  const HepPDT::ParticleDataTable *fPDGTable = &(*fTable);
250 
252 
253  std::auto_ptr<PhysicsListMakerBase>
254  physicsMaker(PhysicsListFactory::get()->create(
255  m_pPhysics.getParameter<std::string> ("type")));
256  if (physicsMaker.get()==0) {
257  throw SimG4Exception("Unable to find the Physics list requested");
258  }
259  m_physicsList =
260  physicsMaker->make(map_,fPDGTable,m_fieldBuilder,m_pPhysics,m_registry);
261 
262  PhysicsList* phys = m_physicsList.get();
263  if (phys==0) {
264  throw SimG4Exception("Physics list construction failed!");
265  }
266 
267  // adding GFlash, Russian Roulette for eletrons and gamma,
268  // step limiters on top of any Physics Lists
269  phys->RegisterPhysics(new ParametrisedEMPhysics("EMoptions",m_pPhysics));
270 
271  m_kernel->SetPhysics(phys);
272  m_kernel->InitializePhysics();
273 
274  m_physicsList->ResetStoredInAscii();
275  std::string tableDir = m_PhysicsTablesDir;
277  m_physicsList->SetPhysicsTableRetrieved(tableDir);
278  }
279  if (m_kernel->RunInitialization()) { m_managerInitialized = true; }
280  else {
281  throw SimG4Exception("G4RunManagerKernel initialization failed!");
282  }
283 
285  {
286  std::ostringstream dir;
287  dir << tableDir << '\0';
288  std::string cmd = std::string("/control/shell mkdir -p ")+tableDir;
289  if (!std::ifstream(dir.str().c_str(), std::ios::in))
290  G4UImanager::GetUIpointer()->ApplyCommand(cmd);
291  m_physicsList->StorePhysicsTable(tableDir);
292  }
293 
294  //tell all interesting parties that we are beginning the job
295  BeginOfJob aBeginOfJob(&es);
296  m_registry.beginOfJobSignal_(&aBeginOfJob);
297 
299 
300  for (unsigned it=0; it<m_G4Commands.size(); it++) {
301  edm::LogInfo("SimG4CoreApplication") << "RunManagerMT:: Requests UI: "
302  << m_G4Commands[it];
303  G4UImanager::GetUIpointer()->ApplyCommand(m_G4Commands[it]);
304  }
305 
306  // If the Geant4 particle table is needed, decomment the lines below
307  //
308  // G4cout << "Output of G4ParticleTable DumpTable:" << G4endl;
309  // G4ParticleTable::GetParticleTable()->DumpTable("ALL");
310 
311  initializeRun();
312  firstRun= false;
313 }
bool m_managerInitialized
Definition: RunManagerMT.h:114
AttachSD * m_attach
Definition: RunManagerMT.h:147
T getParameter(std::string const &) const
std::pair< std::vector< SensitiveTkDetector * >, std::vector< SensitiveCaloDetector * > > create(const DDDWorld &w, const DDCompactView &cpv, SensitiveDetectorCatalog &clg, edm::ParameterSet const &p, const SimTrackManager *m, SimActivityRegistry &reg) const
Definition: AttachSD.cc:23
const G4VPhysicalVolume * GetWorldVolume() const
Definition: DDDWorld.h:17
edm::ESWatcher< IdealMagneticFieldRecord > idealMagRcdWatcher_
Definition: RunManagerMT.h:159
std::vector< SensitiveCaloDetector * > m_sensCaloDets
Definition: RunManagerMT.h:149
HepPDT::ParticleDataTable ParticleDataTable
std::auto_ptr< SimTrackManager > m_trackManager
Definition: RunManagerMT.h:155
PrimaryTransformer * m_primaryTransformer
Definition: RunManagerMT.h:113
sim::FieldBuilder * m_fieldBuilder
Definition: RunManagerMT.h:156
void build(G4FieldManager *fM=0, G4PropagatorInField *fP=0)
Definition: FieldBuilder.cc:47
std::vector< std::string > m_G4Commands
Definition: RunManagerMT.h:143
void initializeUserActions()
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::string m_WriteFile
Definition: RunManagerMT.h:164
BeginOfJobSignal beginOfJobSignal_
std::vector< SensitiveTkDetector * > m_sensTkDets
Definition: RunManagerMT.h:148
void initializeRun()
G4RunManagerKernel * m_kernel
Definition: RunManagerMT.h:106
string cmd
Definition: asciidump.py:19
bool m_pUseMagneticField
Definition: RunManagerMT.h:119
edm::ParameterSet m_p
Definition: RunManagerMT.h:144
void DumpMagneticField(const G4Field *) const
bool m_StorePhysicsTables
Definition: RunManagerMT.h:129
std::auto_ptr< PhysicsList > m_physicsList
Definition: RunManagerMT.h:112
std::string m_FieldFile
Definition: RunManagerMT.h:163
edm::ParameterSet m_pField
Definition: RunManagerMT.h:134
edm::ParameterSet m_pPhysics
Definition: RunManagerMT.h:137
DDDWorldSignal dddWorldSignal_
const T & get() const
Definition: EventSetup.h:55
bool m_RestorePhysicsTables
Definition: RunManagerMT.h:130
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:58
std::string m_PhysicsTablesDir
Definition: RunManagerMT.h:128
edm::ESWatcher< IdealGeometryRecord > idealGeomRcdWatcher_
Definition: RunManagerMT.h:158
dbl *** dir
Definition: mlp_gen.cc:35
SurfaceDeformation * create(int type, const std::vector< double > &params)
T get(const Candidate &c)
Definition: component.h:55
SimActivityRegistry m_registry
Definition: RunManagerMT.h:151
void RunManagerMT::initializeRun ( )

Definition at line 452 of file RunManagerMT.cc.

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

Referenced by initG4().

453 {
454  m_runInitialized = false;
455  if (m_currentRun==0) { m_currentRun = new G4Run(); }
456  G4StateManager::GetStateManager()->SetNewState(G4State_GeomClosed);
458  m_runAborted = false;
459  m_runInitialized = true;
460 }
bool m_runInitialized
Definition: RunManagerMT.h:115
G4Run * m_currentRun
Definition: RunManagerMT.h:120
void BeginOfRunAction(const G4Run *aRun)
Definition: RunAction.cc:16
RunAction * m_userRunAction
Definition: RunManagerMT.h:123
void RunManagerMT::initializeUserActions ( )

Definition at line 417 of file RunManagerMT.cc.

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

Referenced by initG4().

418 {
419  m_runInterface = new SimRunInterface(this, false);
420 
423 
424  G4EventManager * eventManager = m_kernel->GetEventManager();
425  eventManager->SetVerboseLevel(m_EvtMgrVerbosity);
426 
427  if (m_generator!=0) {
428  EventAction * userEventAction =
430  Connect(userEventAction);
431  eventManager->SetUserAction(userEventAction);
432 
433  TrackingAction* userTrackingAction =
434  new TrackingAction(userEventAction,m_pTrackingAction);
435  Connect(userTrackingAction);
436  eventManager->SetUserAction(userTrackingAction);
437 
438  SteppingAction* userSteppingAction =
439  new SteppingAction(userEventAction,m_pSteppingAction);
440  Connect(userSteppingAction);
441  eventManager->SetUserAction(userSteppingAction);
442 
443  eventManager->SetUserAction(new StackingAction(m_pStackingAction));
444 
445  } else {
446  edm::LogWarning("SimG4CoreApplication") << " RunManagerMT: WARNING : "
447  << "No generator; initialized "
448  << "only RunAction!";
449  }
450 }
void Connect(RunAction *)
edm::ParameterSet m_pStackingAction
Definition: RunManagerMT.h:140
edm::ParameterSet m_pRunAction
Definition: RunManagerMT.h:138
std::auto_ptr< SimTrackManager > m_trackManager
Definition: RunManagerMT.h:155
int m_EvtMgrVerbosity
Definition: RunManagerMT.h:131
Generator * m_generator
Definition: RunManagerMT.h:108
edm::ParameterSet m_pTrackingAction
Definition: RunManagerMT.h:141
G4RunManagerKernel * m_kernel
Definition: RunManagerMT.h:106
edm::ParameterSet m_pSteppingAction
Definition: RunManagerMT.h:142
edm::ParameterSet m_pEventAction
Definition: RunManagerMT.h:139
RunAction * m_userRunAction
Definition: RunManagerMT.h:123
SimRunInterface * m_runInterface
Definition: RunManagerMT.h:124
void RunManagerMT::produce ( edm::Event inpevt,
const edm::EventSetup es 
)

Definition at line 322 of file RunManagerMT.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().

323 {
324  m_currentEvent = generateEvent(inpevt);
325  m_simEvent = new G4SimEvent;
328  if (m_generator->genVertex() !=0 ) {
331  m_generator->genVertex()->y()/centimeter,
332  m_generator->genVertex()->z()/centimeter,
333  m_generator->genVertex()->t()/second));
334  }
335  if (m_currentEvent->GetNumberOfPrimaryVertex()==0) {
336  edm::LogError("SimG4CoreApplication")
337  << " RunManagerMT::produce event " << inpevt.id().event()
338  << " with no G4PrimaryVertices \n Aborting Run" ;
339 
340  abortRun(false);
341  } else {
342  m_kernel->GetEventManager()->ProcessOneEvent(m_currentEvent);
343  }
344 
345  edm::LogInfo("SimG4CoreApplication")
346  << " RunManagerMT: saved : Event " << inpevt.id().event()
347  << " of weight " << m_simEvent->weight()
348  << " with " << m_simEvent->nTracks() << " tracks and "
349  << m_simEvent->nVertices()
350  << " vertices, generated by " << m_simEvent->nGenParts() << " particles ";
351 }
EventNumber_t event() const
Definition: EventID.h:44
G4SimEvent * m_simEvent
Definition: RunManagerMT.h:122
virtual const math::XYZTLorentzVector * genVertex() const
Definition: Generator.h:29
virtual const double eventWeight() const
Definition: Generator.h:30
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
virtual const HepMC::GenEvent * genEvent() const
Definition: Generator.h:28
void abortRun(bool softAbort=false)
U second(std::pair< T, U > const &p)
void weight(float w)
Definition: G4SimEvent.h:27
Generator * m_generator
Definition: RunManagerMT.h:108
G4Event * m_currentEvent
Definition: RunManagerMT.h:121
G4RunManagerKernel * m_kernel
Definition: RunManagerMT.h:106
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
edm::EventID id() const
Definition: EventBase.h:56
G4Event * generateEvent(edm::Event &inpevt)
void collisionPoint(const math::XYZTLorentzVectorD &v)
Definition: G4SimEvent.h:29
std::vector<boost::shared_ptr<SimProducer> > RunManagerMT::producers ( ) const
inline

Definition at line 88 of file RunManagerMT.h.

References m_producers.

88  {
89  return m_producers;
90  }
std::vector< boost::shared_ptr< SimProducer > > m_producers
Definition: RunManagerMT.h:153
void RunManagerMT::resetGenParticleId ( edm::Event inpevt)
protected

Definition at line 496 of file RunManagerMT.cc.

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

Referenced by generateEvent().

497 {
499  inpevt.getByLabel( m_theLHCTlinkTag, theLHCTlink );
500  if ( theLHCTlink.isValid() ) {
501  m_trackManager->setLHCTransportLink( theLHCTlink.product() );
502  }
503 }
std::auto_ptr< SimTrackManager > m_trackManager
Definition: RunManagerMT.h:155
edm::InputTag m_theLHCTlinkTag
Definition: RunManagerMT.h:161
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
T const * product() const
Definition: Handle.h:81
std::vector<SensitiveCaloDetector*>& RunManagerMT::sensCaloDetectors ( )
inline

Definition at line 85 of file RunManagerMT.h.

References m_sensCaloDets.

85  {
86  return m_sensCaloDets;
87  }
std::vector< SensitiveCaloDetector * > m_sensCaloDets
Definition: RunManagerMT.h:149
std::vector<SensitiveTkDetector*>& RunManagerMT::sensTkDetectors ( )
inline

Definition at line 82 of file RunManagerMT.h.

References m_sensTkDets.

82  {
83  return m_sensTkDets;
84  }
std::vector< SensitiveTkDetector * > m_sensTkDets
Definition: RunManagerMT.h:148
G4SimEvent* RunManagerMT::simEvent ( )
inline

Definition at line 81 of file RunManagerMT.h.

References m_simEvent.

81 { return m_simEvent; }
G4SimEvent * m_simEvent
Definition: RunManagerMT.h:122
void RunManagerMT::stopG4 ( )

Definition at line 315 of file RunManagerMT.cc.

References m_runTerminated, and terminateRun().

316 {
317  //std::cout << "RunManagerMT::stopG4" << std::endl;
318  G4StateManager::GetStateManager()->SetNewState(G4State_Quit);
319  if (!m_runTerminated) { terminateRun(); }
320 }
void terminateRun()
bool m_runTerminated
Definition: RunManagerMT.h:116
void RunManagerMT::terminateRun ( )

Definition at line 462 of file RunManagerMT.cc.

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

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

463 {
464  if (m_userRunAction!=0) {
466  delete m_userRunAction;
467  m_userRunAction = 0;
468  }
469  /*
470  if (m_currentRun!=0) {
471  delete m_currentRun;
472  m_currentRun = 0;
473  }
474  */
475  if (m_kernel!=0 && !m_runTerminated) {
476  delete m_currentEvent;
477  m_currentEvent = 0;
478  delete m_simEvent;
479  m_simEvent = 0;
480  m_kernel->RunTermination();
481  m_runInitialized = false;
482  m_runTerminated = true;
483  }
484 }
G4SimEvent * m_simEvent
Definition: RunManagerMT.h:122
bool m_runTerminated
Definition: RunManagerMT.h:116
bool m_runInitialized
Definition: RunManagerMT.h:115
G4Run * m_currentRun
Definition: RunManagerMT.h:120
G4Event * m_currentEvent
Definition: RunManagerMT.h:121
G4RunManagerKernel * m_kernel
Definition: RunManagerMT.h:106
void EndOfRunAction(const G4Run *aRun)
Definition: RunAction.cc:28
RunAction * m_userRunAction
Definition: RunManagerMT.h:123

Member Data Documentation

bool RunManagerMT::firstRun
private

Definition at line 118 of file RunManagerMT.h.

Referenced by initG4().

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

Definition at line 158 of file RunManagerMT.h.

Referenced by initG4().

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

Definition at line 159 of file RunManagerMT.h.

Referenced by initG4().

AttachSD* RunManagerMT::m_attach
private

Definition at line 147 of file RunManagerMT.h.

Referenced by initG4().

bool RunManagerMT::m_check
private

Definition at line 132 of file RunManagerMT.h.

Referenced by initG4(), and RunManagerMT().

G4Event* RunManagerMT::m_currentEvent
private

Definition at line 121 of file RunManagerMT.h.

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

G4Run* RunManagerMT::m_currentRun
private

Definition at line 120 of file RunManagerMT.h.

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

ExceptionHandler* RunManagerMT::m_CustomExceptionHandler
private

Definition at line 145 of file RunManagerMT.h.

Referenced by RunManagerMT().

int RunManagerMT::m_EvtMgrVerbosity
private

Definition at line 131 of file RunManagerMT.h.

Referenced by initializeUserActions().

sim::FieldBuilder* RunManagerMT::m_fieldBuilder
private

Definition at line 156 of file RunManagerMT.h.

Referenced by initG4().

std::string RunManagerMT::m_FieldFile
private

Definition at line 163 of file RunManagerMT.h.

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

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

Definition at line 143 of file RunManagerMT.h.

Referenced by initG4().

Generator* RunManagerMT::m_generator
private
std::string RunManagerMT::m_InTag
private

Definition at line 109 of file RunManagerMT.h.

Referenced by generateEvent(), and RunManagerMT().

G4RunManagerKernel* RunManagerMT::m_kernel
private
bool RunManagerMT::m_managerInitialized
private

Definition at line 114 of file RunManagerMT.h.

Referenced by initG4().

bool RunManagerMT::m_nonBeam
private

Definition at line 111 of file RunManagerMT.h.

Referenced by generateEvent().

edm::ParameterSet RunManagerMT::m_p
private

Definition at line 144 of file RunManagerMT.h.

Referenced by initG4(), and RunManagerMT().

edm::ParameterSet RunManagerMT::m_pEventAction
private

Definition at line 139 of file RunManagerMT.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManagerMT::m_pField
private

Definition at line 134 of file RunManagerMT.h.

Referenced by initG4().

edm::ParameterSet RunManagerMT::m_pGenerator
private

Definition at line 135 of file RunManagerMT.h.

Referenced by RunManagerMT().

edm::ParameterSet RunManagerMT::m_pGeometry
private

Definition at line 133 of file RunManagerMT.h.

std::auto_ptr<PhysicsList> RunManagerMT::m_physicsList
private

Definition at line 112 of file RunManagerMT.h.

Referenced by initG4().

std::string RunManagerMT::m_PhysicsTablesDir
private

Definition at line 128 of file RunManagerMT.h.

Referenced by initG4().

edm::ParameterSet RunManagerMT::m_pPhysics
private

Definition at line 137 of file RunManagerMT.h.

Referenced by initG4().

PrimaryTransformer* RunManagerMT::m_primaryTransformer
private

Definition at line 113 of file RunManagerMT.h.

Referenced by initG4().

std::vector<boost::shared_ptr<SimProducer> > RunManagerMT::m_producers
private

Definition at line 153 of file RunManagerMT.h.

Referenced by producers(), and RunManagerMT().

edm::ParameterSet RunManagerMT::m_pRunAction
private

Definition at line 138 of file RunManagerMT.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManagerMT::m_pStackingAction
private

Definition at line 140 of file RunManagerMT.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManagerMT::m_pSteppingAction
private

Definition at line 142 of file RunManagerMT.h.

Referenced by initializeUserActions().

edm::ParameterSet RunManagerMT::m_pTrackingAction
private

Definition at line 141 of file RunManagerMT.h.

Referenced by initializeUserActions().

bool RunManagerMT::m_pUseMagneticField
private

Definition at line 119 of file RunManagerMT.h.

Referenced by initG4().

edm::ParameterSet RunManagerMT::m_pVertexGenerator
private

Definition at line 136 of file RunManagerMT.h.

SimActivityRegistry RunManagerMT::m_registry
private

Definition at line 151 of file RunManagerMT.h.

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

bool RunManagerMT::m_RestorePhysicsTables
private

Definition at line 130 of file RunManagerMT.h.

Referenced by initG4().

bool RunManagerMT::m_runAborted
private

Definition at line 117 of file RunManagerMT.h.

Referenced by abortRun(), and initializeRun().

bool RunManagerMT::m_runInitialized
private

Definition at line 115 of file RunManagerMT.h.

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

SimRunInterface* RunManagerMT::m_runInterface
private

Definition at line 124 of file RunManagerMT.h.

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

bool RunManagerMT::m_runTerminated
private

Definition at line 116 of file RunManagerMT.h.

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

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

Definition at line 149 of file RunManagerMT.h.

Referenced by initG4(), and sensCaloDetectors().

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

Definition at line 148 of file RunManagerMT.h.

Referenced by initG4(), and sensTkDetectors().

G4SimEvent* RunManagerMT::m_simEvent
private

Definition at line 122 of file RunManagerMT.h.

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

bool RunManagerMT::m_StorePhysicsTables
private

Definition at line 129 of file RunManagerMT.h.

Referenced by initG4().

edm::InputTag RunManagerMT::m_theLHCTlinkTag
private

Definition at line 161 of file RunManagerMT.h.

Referenced by resetGenParticleId().

std::auto_ptr<SimTrackManager> RunManagerMT::m_trackManager
private
RunAction* RunManagerMT::m_userRunAction
private

Definition at line 123 of file RunManagerMT.h.

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

std::vector<boost::shared_ptr<SimWatcher> > RunManagerMT::m_watchers
private

Definition at line 152 of file RunManagerMT.h.

Referenced by RunManagerMT().

std::string RunManagerMT::m_WriteFile
private

Definition at line 164 of file RunManagerMT.h.

Referenced by initG4(), and RunManagerMT().