BOSS 7.0.6
BESIII Offline Software System
Loading...
Searching...
No Matches
G4Svc Class Reference

#include <G4Svc.h>

+ Inheritance diagram for G4Svc:

Public Member Functions

virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)
 
G4RunManager * runMgr ()
 
void SetUserInitialization (G4VUserDetectorConstruction *userInit)
 
void SetUserInitialization (G4VUserPhysicsList *physInit)
 
void SetUserAction (G4UserRunAction *)
 
void SetUserAction (G4UserEventAction *)
 
void SetUserAction (G4VUserPrimaryGeneratorAction *)
 
void SetUserAction (G4UserStackingAction *)
 
void SetUserAction (G4UserTrackingAction *)
 
void SetUserAction (G4UserSteppingAction *)
 
const G4Event * GetCurrentEvent () const
 
const G4Run * GetCurrentRun () const
 
G4UImanager * uiMgr ()
 
void StartUISession ()
 
double GetBeamPosX ()
 
double GetBeamPosY ()
 
double GetBeamPosZ ()
 
double GetBeamSizeX ()
 
double GetBeamSizeY ()
 
double GetBeamSizeZ ()
 
double GetBeamShiftPx ()
 
double GetBeamShiftPy ()
 
double GetBeamShiftPz ()
 
double GetBeamStartTime ()
 
double GetBeamDeltaTime ()
 
double GetNBunch ()
 
double GetBunchTimeSigma ()
 
double GetBeamTime ()
 
void SetBeamTime (double value)
 
std::string GetMdcNoiseFile ()
 
double GetBeamAngle ()
 
bool GetBoostLab ()
 
bool GetSetBeamShift ()
 
int GetMdcDataInput ()
 
int GetMdcDedxFlag ()
 
NTuple::Tuple * GetTupleMdc ()
 
void SetTupleMdc (NTuple::Tuple *tuple)
 
NTuple::Tuple * GetTupleTof1 ()
 
void SetTupleTof1 (NTuple::Tuple *tuple)
 
NTuple::Tuple * GetTupleTof2 ()
 
void SetTupleTof2 (NTuple::Tuple *tuple)
 
NTuple::Tuple * GetTupleTof3 ()
 
void SetTupleTof3 (NTuple::Tuple *tuple)
 
NTuple::Tuple * GetTupleEmc1 ()
 
void SetTupleEmc1 (NTuple::Tuple *tuple)
 
NTuple::Tuple * GetTupleEmc2 ()
 
void SetTupleEmc2 (NTuple::Tuple *tuple)
 
NTuple::Tuple * GetTupleMuc ()
 
void SetTupleMuc (NTuple::Tuple *tuple)
 
bool MdcRootFlag ()
 
bool TofRootFlag ()
 
bool EmcRootFlag ()
 
bool MucRootFlag ()
 
bool TofSaturationFlag ()
 
bool EmcLightOutput ()
 
double EmcIncoherentNoise ()
 
double EmcCoherentNoise ()
 
double EmcNoiseMean ()
 
double EmcNoiseSigma ()
 
double EmcNoiseThreshold ()
 
int EmcNoiseLevel ()
 
int EmcTime ()
 
int EmcElecSaturation ()
 
int EmcElecSatuDead ()
 
int MucNoiseMode ()
 
int LogLevel ()
 
void G4Init ()
 
void RunInitialize ()
 
void RunTerminate ()
 
void SimulateEvents (int)
 
virtual G4RunManager * runMgr ()=0
 
virtual G4UImanager * uiMgr ()=0
 
virtual void StartUISession ()=0
 
virtual const G4Event * GetCurrentEvent () const =0
 
virtual const G4Run * GetCurrentRun () const =0
 
virtual void SetUserInitialization (G4VUserDetectorConstruction *)=0
 
virtual void SetUserInitialization (G4VUserPhysicsList *)=0
 
virtual void SetUserAction (G4UserRunAction *)=0
 
virtual void SetUserAction (G4UserEventAction *)=0
 
virtual void SetUserAction (G4VUserPrimaryGeneratorAction *)=0
 
virtual void SetUserAction (G4UserStackingAction *)=0
 
virtual void SetUserAction (G4UserTrackingAction *)=0
 
virtual void SetUserAction (G4UserSteppingAction *)=0
 
virtual void G4Init ()=0
 

Protected Member Functions

 G4Svc (const std::string &name, ISvcLocator *svc)
 
virtual ~G4Svc ()
 

Friends

class SvcFactory< G4Svc >
 

Additional Inherited Members

- Static Public Member Functions inherited from IG4Svc
static const InterfaceID & interfaceID ()
 Retrieve interface ID.
 

Detailed Description

Definition at line 31 of file G4Svc.h.

Constructor & Destructor Documentation

◆ G4Svc()

G4Svc::G4Svc ( const std::string &  name,
ISvcLocator *  svc 
)
protected

Definition at line 37 of file G4Svc.cpp.

37 :
38 Service( name, svc ), p_runMgr(0), p_uiMgr(0), p_visMgr(0),
39 _init(false), m_beamTime(0)
40{
41 //declareProperty( "PhysicsList", m_PhysicsList="none");
42 //declareProperty( "DefaultPhysicsCut", m_PhysicsCut=-1.);
43 declareProperty( "Visualize", m_vis=false);
44 //declareProperty( "VisType", m_visType="VRML1FILE");
45
46 declareProperty( "RunVerbosity", m_runVerb=0);
47 declareProperty( "EventVerbosity", m_eventVerb=0);
48 declareProperty( "TrackingVerbosity", m_trackVerb=0);
49
50 declareProperty( "FADSmacro",m_macroName="none" );
51 declareProperty( "MdcNoiseFile", m_mdcNoiseFile="none");
52
53 //declareProperty( "SaveHits", m_saveHits=true);
54 //declareProperty( "SaveTracks", m_saveTracks=false);
55 declareProperty( "LogLevel", m_logLevel=6);
56
57 declareProperty( "InteractiveG4" , m_interactiveG4=false);
58
59 declareProperty("BesGenAction", m_besGenAction=false);
60
61 declareProperty("BeamPosX",m_beamPosX=0);
62 declareProperty("BeamPosY",m_beamPosY=0);
63 declareProperty("BeamPosZ",m_beamPosZ=0);
64
65 declareProperty("BeamSizeX", m_beamSizeX=10);
66 declareProperty("BeamSizeY", m_beamSizeY=20);
67 declareProperty("BeamSizeZ", m_beamSizeZ=30);
68
69 declareProperty("BeamStartTime",m_beamStartTime=0);
70 declareProperty("BeamDeltaTime",m_beamDeltaTime=0);
71 declareProperty("NBunch",m_nBunch=1);
72
73 declareProperty("BunchTimeSigma",m_bunchTimeSigma=0);
74
75 declareProperty("MdcDataInput",m_mdcDataInput=1);
76 declareProperty("MdcDedxFlag",m_mdcDedxFlag=1);
77
78 declareProperty("BoostLab",m_boostLab=false);
79 declareProperty("BeamAngle",m_beamAngle=11);
80
81 declareProperty("SetBeamShift",m_setBeamShift= false);
82 declareProperty("BeamShiftPx" ,m_beamShiftPx=39.45); // in unit MeV
83 declareProperty("BeamShiftPy" ,m_beamShiftPy=-0.98);
84 declareProperty("BeamShiftPz" ,m_beamShiftPz=3.70);
85
86 declareProperty("MdcRootFlag",m_mdcRootFlag=false);
87 declareProperty("TofRootFlag",m_tofRootFlag=false);
88 declareProperty("EmcRootFlag",m_emcRootFlag=false);
89 declareProperty("MucRootFlag",m_mucRootFlag=false);
90
91 // Switch for ADC Saturation in Bhabha events
92 declareProperty("TofSaturationFlag",m_tofSaturationFlag=true);
93
94 declareProperty("EmcLightOutput",m_emcLightOutput=true);
95 declareProperty("EmcIncoherentNoise",m_emcIncoherentNoise=0.2);
96 declareProperty("EmcCoherentNoise",m_emcCoherentNoise=0.);
97 declareProperty("EmcNoiseMean",m_emcNoiseMean=1.16);
98 declareProperty("EmcNoiseSigma",m_emcNoiseSigma=0.23);
99 declareProperty("EmcNoiseThreshold",m_emcNoiseThreshold=0.5);
100 declareProperty("EmcNoiseLevel",m_emcNoiseLevel=3);
101 declareProperty("EmcTime",m_emcTime=20);
102 declareProperty("EmcELecSaturation",m_emcELecSaturation=1);
103 declareProperty("EmcELecSatuDead",m_emcELecSatuDead=0);
104 declareProperty("MucNoiseMode", m_mucNoiseMode=1);
105}

◆ ~G4Svc()

G4Svc::~G4Svc ( )
protectedvirtual

Definition at line 109 of file G4Svc.cpp.

109 {
110// std::cout<<"G4Svc::~G4Svc()"<<std::endl;
111// if (p_runMgr != 0) {
112// delete p_runMgr;
113// }
114//#ifdef G4VIS_USE
115// if (p_visMgr != 0) {
116// delete p_visMgr;
117// }
118//#endif
119
120}

Member Function Documentation

◆ EmcCoherentNoise()

double G4Svc::EmcCoherentNoise ( )
inline

Definition at line 126 of file G4Svc.h.

126{return m_emcCoherentNoise;}

Referenced by BesEmcDigitizer::Digitize().

◆ EmcElecSatuDead()

int G4Svc::EmcElecSatuDead ( )
inline

Definition at line 133 of file G4Svc.h.

133{return m_emcELecSatuDead;}

Referenced by BesEmcDigitizer::Digitize().

◆ EmcElecSaturation()

int G4Svc::EmcElecSaturation ( )
inline

Definition at line 132 of file G4Svc.h.

132{return m_emcELecSaturation;}

Referenced by BesEmcDigitizer::Digitize().

◆ EmcIncoherentNoise()

double G4Svc::EmcIncoherentNoise ( )
inline

Definition at line 125 of file G4Svc.h.

125{return m_emcIncoherentNoise;}

Referenced by BesEmcDigitizer::AddNoise5x5(), BesEmcDigitizer::AddNoiseAll(), and BesEmcDigitizer::Digitize().

◆ EmcLightOutput()

bool G4Svc::EmcLightOutput ( )
inline

Definition at line 124 of file G4Svc.h.

124{return m_emcLightOutput;}

Referenced by BesEmcDigitizer::AddNoise5x5(), BesEmcDigitizer::AddNoiseAll(), and BesEmcDigitizer::Digitize().

◆ EmcNoiseLevel()

int G4Svc::EmcNoiseLevel ( )
inline

Definition at line 130 of file G4Svc.h.

130{return m_emcNoiseLevel;}

Referenced by BesEmcDigitizer::Digitize().

◆ EmcNoiseMean()

double G4Svc::EmcNoiseMean ( )
inline

Definition at line 127 of file G4Svc.h.

127{return m_emcNoiseMean;}

Referenced by BesEmcDigitizer::AddNoiseAll().

◆ EmcNoiseSigma()

double G4Svc::EmcNoiseSigma ( )
inline

Definition at line 128 of file G4Svc.h.

128{return m_emcNoiseSigma;}

Referenced by BesEmcDigitizer::AddNoiseAll().

◆ EmcNoiseThreshold()

double G4Svc::EmcNoiseThreshold ( )
inline

Definition at line 129 of file G4Svc.h.

129{return m_emcNoiseThreshold;}

Referenced by BesEmcDigitizer::AddNoise5x5(), and BesEmcDigitizer::AddNoiseAll().

◆ EmcRootFlag()

bool G4Svc::EmcRootFlag ( )
inline

Definition at line 119 of file G4Svc.h.

119{return m_emcRootFlag;}

Referenced by BesEmcDigitizer::BesEmcDigitizer(), BesEmcDigitizer::Digitize(), and BesSim::initialize().

◆ EmcTime()

int G4Svc::EmcTime ( )
inline

Definition at line 131 of file G4Svc.h.

131{return m_emcTime;}

Referenced by BesEmcDigitizer::AddNoise5x5(), BesEmcDigitizer::AddNoiseAll(), and BesEmcDigitizer::Digitize().

◆ finalize()

StatusCode G4Svc::finalize ( )
virtual

Definition at line 167 of file G4Svc.cpp.

167 {
168
169 MsgStream log( msgSvc(), name() );
170 StatusCode status = Service::finalize();
171
172 if ( status.isSuccess() )
173 log << MSG::INFO << "Service finalised successfully" << endreq;
174
175 return status;
176}
IMessageSvc * msgSvc()

◆ G4Init()

void G4Svc::G4Init ( )
virtual

Implements IG4Svc.

Definition at line 296 of file G4Svc.cpp.

296 {
297
298 MsgStream log( msgSvc(), name() );
299
300 log << MSG::VERBOSE << "Attempting G4 Initialization" << endreq;
301
302 if (!_init) {
303 // Tracking
304 //if (m_saveTracks) {
305 // log << MSG::INFO << "turning tracking on" << std::endl;
306 // uiMgr()->ApplyCommand("/tracking/storeTrajectory 1");
307 //}
308
309 // Visualization manager
310#ifdef G4VIS_USE
311 if (m_vis) {
312 log << MSG::INFO << "Initializing G4SvcVisManager" << endreq;
313 //p_visMgr = new G4SvcVisManager;
314 p_visMgr = new G4VisExecutive;
315 p_visMgr->Initialize();
316 }
317#else
318 m_vis = false;
319#endif
320
321 if (!m_vis) {
322 log << MSG::INFO << "Not including Visualization" << endreq;
323 }
324
325 // Verbosity
326 log << MSG::DEBUG << "Setting verbosity levels - "
327 << "run: " << m_runVerb << " event: " << m_eventVerb
328 << " track: " << m_trackVerb << endreq;
329
330 {
331 std::ostrstream ost;
332 ost << "/run/verbose " << m_runVerb << std::ends;
333 uiMgr()->ApplyCommand(ost.str());
334 }
335 {
336 std::ostrstream ost;
337 ost << "/event/verbose " << m_eventVerb << std::ends;
338 uiMgr()->ApplyCommand(ost.str());
339 }
340 {
341 std::ostrstream ost;
342 ost << "/tracking/verbose " << m_trackVerb << std::ends;
343 uiMgr()->ApplyCommand(ost.str());
344 }
345
346 log << MSG::DEBUG << "Initializing G4 kernel" << endreq;
347 p_runMgr->Initialize();
348 _init = true;
349
350 if (m_macroName!="none"){
351 log << MSG::INFO << "Running G4 macro "<<m_macroName<< endreq;
352 uiMgr()->ApplyCommand("/control/execute "+m_macroName);
353 }
354 if (m_interactiveG4) {
356 }
357
358 }else {
359 log << MSG::ERROR << "G4 kernel already initialized" << endreq;
360 }
361}
G4UImanager * uiMgr()
Definition: G4Svc.cpp:214
void StartUISession()
Definition: G4Svc.cpp:283

Referenced by BesSim::beginRun().

◆ GetBeamAngle()

double G4Svc::GetBeamAngle ( )
inline

Definition at line 89 of file G4Svc.h.

89{return m_beamAngle;}

◆ GetBeamDeltaTime()

double G4Svc::GetBeamDeltaTime ( )
inline

Definition at line 81 of file G4Svc.h.

81{return m_beamDeltaTime;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetBeamPosX()

double G4Svc::GetBeamPosX ( )
inline

Definition at line 68 of file G4Svc.h.

68{return m_beamPosX;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetBeamPosY()

double G4Svc::GetBeamPosY ( )
inline

Definition at line 69 of file G4Svc.h.

69{return m_beamPosY;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetBeamPosZ()

double G4Svc::GetBeamPosZ ( )
inline

Definition at line 70 of file G4Svc.h.

70{return m_beamPosZ;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetBeamShiftPx()

double G4Svc::GetBeamShiftPx ( )
inline

Definition at line 76 of file G4Svc.h.

76{return m_beamShiftPx;}

Referenced by G4HepMCInterface::Boost().

◆ GetBeamShiftPy()

double G4Svc::GetBeamShiftPy ( )
inline

Definition at line 77 of file G4Svc.h.

77{return m_beamShiftPy;}

Referenced by G4HepMCInterface::Boost().

◆ GetBeamShiftPz()

double G4Svc::GetBeamShiftPz ( )
inline

Definition at line 78 of file G4Svc.h.

78{return m_beamShiftPz;}

Referenced by G4HepMCInterface::Boost().

◆ GetBeamSizeX()

double G4Svc::GetBeamSizeX ( )
inline

Definition at line 72 of file G4Svc.h.

72{return m_beamSizeX;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetBeamSizeY()

double G4Svc::GetBeamSizeY ( )
inline

Definition at line 73 of file G4Svc.h.

73{return m_beamSizeY;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetBeamSizeZ()

double G4Svc::GetBeamSizeZ ( )
inline

Definition at line 74 of file G4Svc.h.

74{return m_beamSizeZ;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetBeamStartTime()

double G4Svc::GetBeamStartTime ( )
inline

Definition at line 80 of file G4Svc.h.

80{return m_beamStartTime;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetBeamTime()

double G4Svc::GetBeamTime ( )
inline

◆ GetBoostLab()

bool G4Svc::GetBoostLab ( )
inline

Definition at line 90 of file G4Svc.h.

90{return m_boostLab;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetBunchTimeSigma()

double G4Svc::GetBunchTimeSigma ( )
inline

Definition at line 83 of file G4Svc.h.

83{return m_bunchTimeSigma;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetCurrentEvent()

const G4Event * G4Svc::GetCurrentEvent ( ) const
virtual

Implements IG4Svc.

Definition at line 193 of file G4Svc.cpp.

193 {
194
195 const G4Event *evt = p_runMgr->GetCurrentEvent();
196
197 if (evt == 0) {
198 MsgStream log( msgSvc(), name() );
199 log << MSG::ERROR << "Could not get current G4Event" << endreq;
200 }
201
202 return ( evt );
203
204}

◆ GetCurrentRun()

const G4Run * G4Svc::GetCurrentRun ( ) const
virtual

Implements IG4Svc.

Definition at line 207 of file G4Svc.cpp.

207 {
208
209 return ( p_runMgr->GetCurrentRun() );
210
211}

◆ GetMdcDataInput()

int G4Svc::GetMdcDataInput ( )
inline

Definition at line 93 of file G4Svc.h.

93{ return m_mdcDataInput; }

Referenced by BesMdcGeoParameter::BesMdcGeoParameter().

◆ GetMdcDedxFlag()

int G4Svc::GetMdcDedxFlag ( )
inline

Definition at line 94 of file G4Svc.h.

94{return m_mdcDedxFlag;}

Referenced by BesMdcSD::BesMdcSD(), BesMdcSD::ProcessHits(), and BesRawDataWriter::SaveMdcDigits().

◆ GetMdcNoiseFile()

std::string G4Svc::GetMdcNoiseFile ( )
inline

Definition at line 87 of file G4Svc.h.

87{return m_mdcNoiseFile;}

Referenced by BesMdcDigitizer::BesMdcDigitizer().

◆ GetNBunch()

double G4Svc::GetNBunch ( )
inline

Definition at line 82 of file G4Svc.h.

82{return m_nBunch;}

Referenced by G4HepMCInterface::HepMC2G4().

◆ GetSetBeamShift()

bool G4Svc::GetSetBeamShift ( )
inline

Definition at line 91 of file G4Svc.h.

91{return m_setBeamShift;}

◆ GetTupleEmc1()

NTuple::Tuple * G4Svc::GetTupleEmc1 ( )
inline

Definition at line 108 of file G4Svc.h.

108{return m_tupleEmc1;}

Referenced by BesEmcDigitizer::BesEmcDigitizer().

◆ GetTupleEmc2()

NTuple::Tuple * G4Svc::GetTupleEmc2 ( )
inline

Definition at line 111 of file G4Svc.h.

111{return m_tupleEmc2;}

Referenced by BesEmcDigitizer::BesEmcDigitizer().

◆ GetTupleMdc()

NTuple::Tuple * G4Svc::GetTupleMdc ( )
inline

Definition at line 96 of file G4Svc.h.

96{return m_tupleMdc;}

Referenced by BesMdcSD::BesMdcSD().

◆ GetTupleMuc()

NTuple::Tuple * G4Svc::GetTupleMuc ( )
inline

Definition at line 114 of file G4Svc.h.

114{return m_tupleMuc;}

Referenced by BesMucDigitizer::BesMucDigitizer().

◆ GetTupleTof1()

NTuple::Tuple * G4Svc::GetTupleTof1 ( )
inline

Definition at line 99 of file G4Svc.h.

99{return m_tupleTof1;}

Referenced by BesTofDigitizerV::BesTofDigitizerV().

◆ GetTupleTof2()

NTuple::Tuple * G4Svc::GetTupleTof2 ( )
inline

Definition at line 102 of file G4Svc.h.

102{return m_tupleTof2;}

Referenced by BesTofDigitizerV::BesTofDigitizerV().

◆ GetTupleTof3()

NTuple::Tuple * G4Svc::GetTupleTof3 ( )
inline

Definition at line 105 of file G4Svc.h.

105{return m_tupleTof3;}

Referenced by BesTofDigitizerV::BesTofDigitizerV().

◆ initialize()

StatusCode G4Svc::initialize ( )
virtual

Definition at line 140 of file G4Svc.cpp.

140 {
141
142 MsgStream log( msgSvc(), name() );
143
144 StatusCode status = Service::initialize();
145 log << MSG::INFO << "Service initialized" << endreq;
146
147 //get IRealizationSvc
148 IRealizationSvc *tmpReal;
149 status = service("RealizationSvc", tmpReal);
150 if (!status.isSuccess())
151 {
152 log << MSG::ERROR << " Could not initialize Realization Service" << endreq;
153 return status;
154 } else {
155 log << MSG::INFO << "got the RealizationSvc" << endreq;
156 m_RealizationSvc=dynamic_cast<RealizationSvc*>(tmpReal);
157 }
158
159 m_runID = m_RealizationSvc->getRunId();
160
161 runMgr();
162 return status;
163}
G4RunManager * runMgr()
Definition: G4Svc.cpp:123

◆ LogLevel()

int G4Svc::LogLevel ( )
inline

Definition at line 137 of file G4Svc.h.

137{return m_logLevel;}

Referenced by BesSim::initialize().

◆ MdcRootFlag()

bool G4Svc::MdcRootFlag ( )
inline

Definition at line 117 of file G4Svc.h.

117{return m_mdcRootFlag;}

Referenced by BesMdcSD::BesMdcSD(), and BesSim::initialize().

◆ MucNoiseMode()

int G4Svc::MucNoiseMode ( )
inline

Definition at line 135 of file G4Svc.h.

135{return m_mucNoiseMode;}

Referenced by BesMucSD::BesMucSD().

◆ MucRootFlag()

bool G4Svc::MucRootFlag ( )
inline

Definition at line 120 of file G4Svc.h.

120{return m_mucRootFlag;}

Referenced by BesMucDigitizer::BesMucDigitizer(), BesMucDigitizer::Digitize(), and BesSim::initialize().

◆ queryInterface()

StatusCode G4Svc::queryInterface ( const InterfaceID &  riid,
void **  ppvInterface 
)
virtual

Definition at line 179 of file G4Svc.cpp.

180 {
181 StatusCode sc = StatusCode::FAILURE;
182
183 if (riid == IID_IG4Svc) {
184 *ppvInterface = dynamic_cast<IG4Svc*>(this);
185 sc = StatusCode::SUCCESS;
186 } else {
187 sc = Service::queryInterface( riid, ppvInterface );
188 }
189 return sc;
190}
Definition: IG4Svc.h:30

◆ RunInitialize()

void G4Svc::RunInitialize ( )

Definition at line 364 of file G4Svc.cpp.

365{
366 bool cond = p_runMgr->ConfirmBeamOnCondition();
367 if(cond)
368 {
369 std::cout<<"########### initializing the G4Run ############"<<
370 std::endl;
371 p_runMgr->SetRunIDCounter( -std::abs(m_runID) );
372 p_runMgr->RunInitialization();
373 }
374}

Referenced by BesSim::beginRun().

◆ runMgr()

G4RunManager * G4Svc::runMgr ( )
virtual

Implements IG4Svc.

Definition at line 123 of file G4Svc.cpp.

123 {
124 //std::cout<<"G4Svc::runMgr()"<<std::endl;
125 MsgStream log( msgSvc(), name() );
126
127 if (p_runMgr == 0) {
128 p_runMgr = new G4SvcRunManager();
129 p_runMgr->SetLogLevel( m_logLevel );
130 //p_runMgr->SetSaveHits( m_saveHits );
131 //p_runMgr->SetSaveTracks( m_saveTracks );
132 }
133
134 return p_runMgr;
135
136}

Referenced by BesSim::finalize(), and initialize().

◆ RunTerminate()

void G4Svc::RunTerminate ( )

Definition at line 376 of file G4Svc.cpp.

377{
378 p_runMgr->RunTermination();
379}

Referenced by BesSim::finalize().

◆ SetBeamTime()

void G4Svc::SetBeamTime ( double  value)
inline

Definition at line 86 of file G4Svc.h.

86{m_beamTime = value;}

Referenced by BesTuningIO::GetTofRootHits(), and G4HepMCInterface::HepMC2G4().

◆ SetTupleEmc1()

void G4Svc::SetTupleEmc1 ( NTuple::Tuple *  tuple)
inline

Definition at line 109 of file G4Svc.h.

109{m_tupleEmc1 = tuple;}

Referenced by BesSim::bookEmcRootFile().

◆ SetTupleEmc2()

void G4Svc::SetTupleEmc2 ( NTuple::Tuple *  tuple)
inline

Definition at line 112 of file G4Svc.h.

112{m_tupleEmc2 = tuple;}

Referenced by BesSim::bookEmcRootFile().

◆ SetTupleMdc()

void G4Svc::SetTupleMdc ( NTuple::Tuple *  tuple)
inline

Definition at line 97 of file G4Svc.h.

97{m_tupleMdc = tuple;}

Referenced by BesSim::bookMdcRootFile().

◆ SetTupleMuc()

void G4Svc::SetTupleMuc ( NTuple::Tuple *  tuple)
inline

Definition at line 115 of file G4Svc.h.

115{m_tupleMuc = tuple;}

Referenced by BesSim::bookMucRootFile().

◆ SetTupleTof1()

void G4Svc::SetTupleTof1 ( NTuple::Tuple *  tuple)
inline

Definition at line 100 of file G4Svc.h.

100{m_tupleTof1 = tuple;}

Referenced by BesSim::bookTofRootFile().

◆ SetTupleTof2()

void G4Svc::SetTupleTof2 ( NTuple::Tuple *  tuple)
inline

Definition at line 103 of file G4Svc.h.

103{m_tupleTof2 = tuple;}

Referenced by BesSim::bookTofRootFile().

◆ SetTupleTof3()

void G4Svc::SetTupleTof3 ( NTuple::Tuple *  tuple)
inline

Definition at line 106 of file G4Svc.h.

106{m_tupleTof3 = tuple;}

Referenced by BesSim::bookTofRootFile().

◆ SetUserAction() [1/6]

void G4Svc::SetUserAction ( G4UserEventAction *  action)
virtual

Implements IG4Svc.

Definition at line 246 of file G4Svc.cpp.

246 {
247 if (p_runMgr != 0) {
248 p_runMgr->SetUserAction(action);
249 }
250}

◆ SetUserAction() [2/6]

void G4Svc::SetUserAction ( G4UserRunAction *  action)
virtual

Implements IG4Svc.

Definition at line 239 of file G4Svc.cpp.

239 {
240 if (p_runMgr != 0) {
241 p_runMgr->SetUserAction(action);
242 }
243}

Referenced by BesSim::initialize().

◆ SetUserAction() [3/6]

void G4Svc::SetUserAction ( G4UserStackingAction *  action)
virtual

Implements IG4Svc.

Definition at line 261 of file G4Svc.cpp.

261 {
262 if (p_runMgr != 0) {
263 p_runMgr->SetUserAction(action);
264 }
265}

◆ SetUserAction() [4/6]

void G4Svc::SetUserAction ( G4UserSteppingAction *  action)
virtual

Implements IG4Svc.

Definition at line 275 of file G4Svc.cpp.

275 {
276 if (p_runMgr != 0) {
277 p_runMgr->SetUserAction(action);
278 }
279}

◆ SetUserAction() [5/6]

void G4Svc::SetUserAction ( G4UserTrackingAction *  action)
virtual

Implements IG4Svc.

Definition at line 268 of file G4Svc.cpp.

268 {
269 if (p_runMgr != 0) {
270 p_runMgr->SetUserAction(action);
271 }
272}

◆ SetUserAction() [6/6]

void G4Svc::SetUserAction ( G4VUserPrimaryGeneratorAction *  action)
virtual

Implements IG4Svc.

Definition at line 253 of file G4Svc.cpp.

253 {
254 if (p_runMgr != 0) {
255 if(m_besGenAction)
256 p_runMgr->SetUserAction( action );
257 }
258}

◆ SetUserInitialization() [1/2]

void G4Svc::SetUserInitialization ( G4VUserDetectorConstruction *  userInit)
virtual

Implements IG4Svc.

Definition at line 223 of file G4Svc.cpp.

223 {
224 if (p_runMgr != 0) {
225 p_runMgr->SetUserInitialization(userInit);
226 }
227}

Referenced by BesSim::initialize().

◆ SetUserInitialization() [2/2]

void G4Svc::SetUserInitialization ( G4VUserPhysicsList *  physInit)
virtual

Implements IG4Svc.

Definition at line 231 of file G4Svc.cpp.

231 {
232 if (p_runMgr != 0) {
233 p_runMgr->SetUserInitialization(userInit);
234 }
235}

◆ SimulateEvents()

void G4Svc::SimulateEvents ( int  i)

Definition at line 381 of file G4Svc.cpp.

382{
383 p_runMgr->SimulateEvent(i);
384}
void SimulateEvent(int i)

Referenced by BesSim::execute().

◆ StartUISession()

void G4Svc::StartUISession ( )
virtual

Implements IG4Svc.

Definition at line 283 of file G4Svc.cpp.

283 {
284
285 MsgStream log( msgSvc(), name() );
286 log << MSG::DEBUG << "Starting G4 terminal" << endreq;
287
288 G4UIsession * ses = new G4UIterminal(new G4UItcsh);
289 ses->SessionStart();
290
291 delete ses;
292}

Referenced by G4Init().

◆ TofRootFlag()

◆ TofSaturationFlag()

bool G4Svc::TofSaturationFlag ( )
inline

Definition at line 122 of file G4Svc.h.

122{return m_tofSaturationFlag;} // Tof Q Saturation in bhabha events

Referenced by BesTofDigitizerBrV2::TofPmtRspns(), and BesTofDigitizerEcV3::TofPmtRspns().

◆ uiMgr()

G4UImanager * G4Svc::uiMgr ( )
virtual

Implements IG4Svc.

Definition at line 214 of file G4Svc.cpp.

214 {
215 if (p_uiMgr == 0) {
216 p_uiMgr = G4UImanager::GetUIpointer();
217 }
218 return ( p_uiMgr );
219}

Referenced by G4Init().

Friends And Related Function Documentation

◆ SvcFactory< G4Svc >

friend class SvcFactory< G4Svc >
friend

Definition at line 153 of file G4Svc.h.


The documentation for this class was generated from the following files: