CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
SteppingAction Class Reference

#include <SteppingAction.h>

Inheritance diagram for SteppingAction:

Public Member Functions

 SteppingAction (EventAction *ea, const edm::ParameterSet &ps, const CMSSteppingVerbose *, bool hasW)
 
void UserSteppingAction (const G4Step *aStep) final
 
 ~SteppingAction () override
 

Public Attributes

SimActivityRegistry::G4StepSignal m_g4StepSignal
 

Private Member Functions

bool initPointer ()
 
bool isInsideDeadRegion (const G4Region *reg) const
 
bool isLowEnergy (const G4Step *aStep) const
 
bool isOutOfTimeWindow (G4Track *theTrack, const G4Region *reg) const
 
bool isThisVolume (const G4VTouchable *touch, const G4VPhysicalVolume *pv) const
 
void PrintKilledTrack (const G4Track *, const TrackStatus &) const
 

Private Attributes

const G4VPhysicalVolume * calo
 
std::vector< std::string > deadRegionNames
 
std::vector< const G4Region * > deadRegions
 
std::vector< double > ekinMins
 
std::vector< std::string > ekinNames
 
std::vector< std::string > ekinParticles
 
std::vector< int > ekinPDG
 
std::vector< G4LogicalVolume * > ekinVolumes
 
EventActioneventAction_
 
bool hasWatcher
 
bool initialized
 
bool killBeamPipe
 
std::vector< std::string > maxTimeNames
 
std::vector< const G4Region * > maxTimeRegions
 
double maxTrackTime
 
std::vector< double > maxTrackTimes
 
unsigned int ndeadRegions
 
unsigned int numberEkins
 
unsigned int numberPart
 
unsigned int numberTimes
 
unsigned int nWarnings
 
const CMSSteppingVerbosesteppingVerbose
 
double theCriticalDensity
 
double theCriticalEnergyForVacuum
 
const G4VPhysicalVolume * tracker
 

Detailed Description

Definition at line 30 of file SteppingAction.h.

Constructor & Destructor Documentation

SteppingAction::SteppingAction ( EventAction ea,
const edm::ParameterSet ps,
const CMSSteppingVerbose sv,
bool  hasW 
)
explicit

Definition at line 18 of file SteppingAction.cc.

References deadRegionNames, ekinMins, ekinNames, ekinParticles, g, edm::ParameterSet::getParameter(), mps_fire::i, killBeamPipe, maxTimeNames, maxTrackTime, maxTrackTimes, MeV, ndeadRegions, numberEkins, numberPart, numberTimes, theCriticalDensity, and theCriticalEnergyForVacuum.

19  : eventAction_(e),
20  tracker(nullptr),
21  calo(nullptr),
22  steppingVerbose(sv),
23  nWarnings(0),
24  initialized(false),
25  killBeamPipe(false),
26  hasWatcher(hasW) {
27  theCriticalEnergyForVacuum = (p.getParameter<double>("CriticalEnergyForVacuum") * CLHEP::MeV);
28  if (0.0 < theCriticalEnergyForVacuum) {
29  killBeamPipe = true;
30  }
31  theCriticalDensity = (p.getParameter<double>("CriticalDensity") * CLHEP::g / CLHEP::cm3);
32  maxTrackTime = p.getParameter<double>("MaxTrackTime") * CLHEP::ns;
33  maxTrackTimes = p.getParameter<std::vector<double> >("MaxTrackTimes");
34  maxTimeNames = p.getParameter<std::vector<std::string> >("MaxTimeNames");
35  deadRegionNames = p.getParameter<std::vector<std::string> >("DeadRegions");
36  ekinMins = p.getParameter<std::vector<double> >("EkinThresholds");
37  ekinNames = p.getParameter<std::vector<std::string> >("EkinNames");
38  ekinParticles = p.getParameter<std::vector<std::string> >("EkinParticles");
39 
40  edm::LogVerbatim("SimG4CoreApplication")
41  << "SteppingAction:: KillBeamPipe = " << killBeamPipe
42  << " CriticalDensity = " << theCriticalDensity * CLHEP::cm3 / CLHEP::g << " g/cm3;"
43  << " CriticalEnergyForVacuum = " << theCriticalEnergyForVacuum / CLHEP::MeV << " Mev;"
44  << " MaxTrackTime = " << maxTrackTime / CLHEP::ns << " ns";
45 
46  numberTimes = maxTrackTimes.size();
47  if (numberTimes > 0) {
48  for (unsigned int i = 0; i < numberTimes; i++) {
49  edm::LogVerbatim("SimG4CoreApplication")
50  << "SteppingAction::MaxTrackTime for " << maxTimeNames[i] << " is " << maxTrackTimes[i] << " ns ";
51  maxTrackTimes[i] *= ns;
52  }
53  }
54 
55  ndeadRegions = deadRegionNames.size();
56  if (ndeadRegions > 0) {
57  edm::LogVerbatim("SimG4CoreApplication")
58  << "SteppingAction: Number of DeadRegions where all trackes are killed " << ndeadRegions;
59  for (unsigned int i = 0; i < ndeadRegions; ++i) {
60  edm::LogVerbatim("SimG4CoreApplication") << "SteppingAction: DeadRegion " << i << ". " << deadRegionNames[i];
61  }
62  }
63  numberEkins = ekinNames.size();
64  numberPart = ekinParticles.size();
65  if (0 == numberPart) {
66  numberEkins = 0;
67  }
68 
69  if (numberEkins > 0) {
70  edm::LogVerbatim("SimG4CoreApplication")
71  << "SteppingAction::Kill following " << numberPart << " particles in " << numberEkins << " volumes";
72  for (unsigned int i = 0; i < numberPart; ++i) {
73  edm::LogVerbatim("SimG4CoreApplication")
74  << "SteppingAction::Particle " << i << " " << ekinParticles[i] << " Threshold = " << ekinMins[i] << " MeV";
75  ekinMins[i] *= CLHEP::MeV;
76  }
77  for (unsigned int i = 0; i < numberEkins; ++i) {
78  edm::LogVerbatim("SimG4CoreApplication") << "SteppingAction::LogVolume[" << i << "] = " << ekinNames[i];
79  }
80  }
81 }
const G4VPhysicalVolume * tracker
double theCriticalDensity
unsigned int numberPart
const CMSSteppingVerbose * steppingVerbose
unsigned int numberEkins
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
const double MeV
std::vector< std::string > deadRegionNames
const G4VPhysicalVolume * calo
unsigned int numberTimes
std::vector< double > maxTrackTimes
double theCriticalEnergyForVacuum
EventAction * eventAction_
std::vector< double > ekinMins
std::vector< std::string > maxTimeNames
std::vector< std::string > ekinNames
unsigned int ndeadRegions
std::vector< std::string > ekinParticles
unsigned int nWarnings
SteppingAction::~SteppingAction ( )
override

Definition at line 83 of file SteppingAction.cc.

83 {}

Member Function Documentation

bool SteppingAction::initPointer ( )
private

Definition at line 187 of file SteppingAction.cc.

References calo, deadRegionNames, deadRegions, ekinMins, ekinNames, ekinParticles, ekinPDG, ekinVolumes, mps_fire::i, LogDebug, maxTimeNames, maxTimeRegions, MeV, ndeadRegions, numberEkins, numberPart, numberTimes, FSQDQM_cfi::pvs, and tracker.

Referenced by UserSteppingAction().

187  {
188  const G4PhysicalVolumeStore* pvs = G4PhysicalVolumeStore::GetInstance();
189  if (pvs) {
190  std::vector<G4VPhysicalVolume*>::const_iterator pvcite;
191  for (pvcite = pvs->begin(); pvcite != pvs->end(); ++pvcite) {
192  if ((*pvcite)->GetName() == "Tracker")
193  tracker = (*pvcite);
194  if ((*pvcite)->GetName() == "CALO")
195  calo = (*pvcite);
196  if (tracker && calo)
197  break;
198  }
199  if (tracker || calo) {
200  edm::LogVerbatim("SimG4CoreApplication") << "Pointer for Tracker " << tracker << " and for Calo " << calo;
201  if (tracker)
202  LogDebug("SimG4CoreApplication") << "Tracker vol name " << tracker->GetName();
203  if (calo)
204  LogDebug("SimG4CoreApplication") << "Calorimeter vol name " << calo->GetName();
205  }
206  }
207 
208  const G4LogicalVolumeStore* lvs = G4LogicalVolumeStore::GetInstance();
209  if (numberEkins > 0) {
210  if (lvs) {
211  ekinVolumes.resize(numberEkins, nullptr);
212  std::vector<G4LogicalVolume*>::const_iterator lvcite;
213  for (lvcite = lvs->begin(); lvcite != lvs->end(); ++lvcite) {
214  for (unsigned int i = 0; i < numberEkins; ++i) {
215  if ((*lvcite)->GetName() == (G4String)(ekinNames[i])) {
216  ekinVolumes[i] = (*lvcite);
217  break;
218  }
219  }
220  }
221  }
222  for (unsigned int i = 0; i < numberEkins; ++i) {
223  edm::LogVerbatim("SimG4CoreApplication") << ekinVolumes[i]->GetName() << " with pointer " << ekinVolumes[i];
224  }
225  }
226 
227  if (numberPart > 0) {
228  G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable();
229  G4String partName;
230  ekinPDG.resize(numberPart, 0);
231  for (unsigned int i = 0; i < numberPart; ++i) {
232  ekinPDG[i] = theParticleTable->FindParticle(partName = ekinParticles[i])->GetPDGEncoding();
233  edm::LogVerbatim("SimG4CoreApplication") << "Particle " << ekinParticles[i] << " with PDG code " << ekinPDG[i]
234  << " and KE cut off " << ekinMins[i] / MeV << " MeV";
235  }
236  }
237 
238  const G4RegionStore* rs = G4RegionStore::GetInstance();
239  if (numberTimes > 0) {
240  maxTimeRegions.resize(numberTimes, nullptr);
241  std::vector<G4Region*>::const_iterator rcite;
242  for (rcite = rs->begin(); rcite != rs->end(); ++rcite) {
243  for (unsigned int i = 0; i < numberTimes; ++i) {
244  if ((*rcite)->GetName() == (G4String)(maxTimeNames[i])) {
245  maxTimeRegions[i] = (*rcite);
246  break;
247  }
248  }
249  }
250  }
251  if (ndeadRegions > 0) {
252  deadRegions.resize(ndeadRegions, nullptr);
253  std::vector<G4Region*>::const_iterator rcite;
254  for (rcite = rs->begin(); rcite != rs->end(); ++rcite) {
255  for (unsigned int i = 0; i < ndeadRegions; ++i) {
256  if ((*rcite)->GetName() == (G4String)(deadRegionNames[i])) {
257  deadRegions[i] = (*rcite);
258  break;
259  }
260  }
261  }
262  }
263  return true;
264 }
#define LogDebug(id)
const G4VPhysicalVolume * tracker
std::vector< int > ekinPDG
std::vector< const G4Region * > deadRegions
unsigned int numberPart
unsigned int numberEkins
const double MeV
std::vector< std::string > deadRegionNames
const G4VPhysicalVolume * calo
unsigned int numberTimes
std::vector< G4LogicalVolume * > ekinVolumes
std::vector< double > ekinMins
std::vector< std::string > maxTimeNames
std::vector< std::string > ekinNames
unsigned int ndeadRegions
std::vector< std::string > ekinParticles
std::vector< const G4Region * > maxTimeRegions
bool SteppingAction::isInsideDeadRegion ( const G4Region *  reg) const
inlineprivate

Definition at line 73 of file SteppingAction.h.

References deadRegions, mps_fire::i, and ndeadRegions.

Referenced by UserSteppingAction().

73  {
74  bool res = false;
75  for (unsigned int i = 0; i < ndeadRegions; ++i) {
76  if (reg == deadRegions[i]) {
77  res = true;
78  break;
79  }
80  }
81  return res;
82 }
std::vector< const G4Region * > deadRegions
Definition: Electron.h:6
unsigned int ndeadRegions
bool SteppingAction::isLowEnergy ( const G4Step *  aStep) const
private

Definition at line 165 of file SteppingAction.cc.

References ekinMins, ekinPDG, ekinVolumes, RemoveAddSevLevel::flag, mps_fire::i, numberEkins, and numberPart.

Referenced by UserSteppingAction().

165  {
166  bool flag = false;
167  const G4StepPoint* sp = aStep->GetPostStepPoint();
168  G4LogicalVolume* lv = sp->GetPhysicalVolume()->GetLogicalVolume();
169  for (unsigned int i = 0; i < numberEkins; ++i) {
170  if (lv == ekinVolumes[i]) {
171  flag = true;
172  break;
173  }
174  }
175  if (flag) {
176  double ekin = sp->GetKineticEnergy();
177  int pCode = aStep->GetTrack()->GetDefinition()->GetPDGEncoding();
178  for (unsigned int i = 0; i < numberPart; ++i) {
179  if (pCode == ekinPDG[i]) {
180  return (ekin <= ekinMins[i]) ? true : false;
181  }
182  }
183  }
184  return false;
185 }
std::vector< int > ekinPDG
unsigned int numberPart
unsigned int numberEkins
std::vector< G4LogicalVolume * > ekinVolumes
std::vector< double > ekinMins
bool SteppingAction::isOutOfTimeWindow ( G4Track *  theTrack,
const G4Region *  reg 
) const
inlineprivate

Definition at line 84 of file SteppingAction.h.

References mps_fire::i, maxTimeRegions, maxTrackTime, maxTrackTimes, and numberTimes.

Referenced by UserSteppingAction().

84  {
85  double tofM = maxTrackTime;
86  for (unsigned int i = 0; i < numberTimes; ++i) {
87  if (reg == maxTimeRegions[i]) {
88  tofM = maxTrackTimes[i];
89  break;
90  }
91  }
92  return (theTrack->GetGlobalTime() > tofM) ? true : false;
93 }
unsigned int numberTimes
std::vector< double > maxTrackTimes
std::vector< const G4Region * > maxTimeRegions
bool SteppingAction::isThisVolume ( const G4VTouchable *  touch,
const G4VPhysicalVolume *  pv 
) const
inlineprivate

Definition at line 95 of file SteppingAction.h.

References personalPlayback::level, and MetAnalyzer::pv().

Referenced by UserSteppingAction().

95  {
96  int level = (touch->GetHistoryDepth()) + 1;
97  return (level >= 3) ? (touch->GetVolume(level - 3) == pv) : false;
98 }
def pv(vc)
Definition: MetAnalyzer.py:7
void SteppingAction::PrintKilledTrack ( const G4Track *  aTrack,
const TrackStatus tst 
) const
private

Definition at line 266 of file SteppingAction.cc.

References MeV, MetAnalyzer::pv(), rname, sDeadRegion, sEnergyDepNaN, sKilledByProcess, sLowEnergy, sLowEnergyInVacuum, sOutOfTime, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by UserSteppingAction().

266  {
267  std::string vname = "";
268  std::string rname = "";
269  std::string typ = " ";
270  switch (tst) {
271  case sKilledByProcess:
272  typ = " G4Process ";
273  break;
274  case sDeadRegion:
275  typ = " in dead region ";
276  break;
277  case sOutOfTime:
278  typ = " out of time window ";
279  break;
280  case sLowEnergy:
281  typ = " low energy limit ";
282  break;
283  case sLowEnergyInVacuum:
284  typ = " low energy limit in vacuum ";
285  break;
286  case sEnergyDepNaN:
287  typ = " energy deposition is NaN ";
288  break;
289  default:
290  break;
291  }
292  G4VPhysicalVolume* pv = aTrack->GetNextVolume();
293  if (pv) {
294  vname = pv->GetLogicalVolume()->GetName();
295  rname = pv->GetLogicalVolume()->GetRegion()->GetName();
296  }
297 
298  edm::LogVerbatim("SimG4CoreApplication")
299  << "Track #" << aTrack->GetTrackID() << " " << aTrack->GetDefinition()->GetParticleName()
300  << " E(MeV)= " << aTrack->GetKineticEnergy() / MeV << " T(ns)= " << aTrack->GetGlobalTime() / ns
301  << " is killed due to " << typ << " inside LV: " << vname << " (" << rname << ") at " << aTrack->GetPosition();
302 }
const double MeV
def pv(vc)
Definition: MetAnalyzer.py:7
const G4String rname[NREG]
void SteppingAction::UserSteppingAction ( const G4Step *  aStep)
final

Definition at line 85 of file SteppingAction.cc.

References EventAction::addTkCaloStateInfo(), calo, eventAction_, initialized, initPointer(), isInsideDeadRegion(), isLowEnergy(), edm::isNotFinite(), isOutOfTimeWindow(), isThisVolume(), killBeamPipe, m_g4StepSignal, MeV, CMSSteppingVerbose::NextStep(), numberEkins, nWarnings, AlCaHLTBitMon_ParallelJobs::p, PrintKilledTrack(), sAlive, sDeadRegion, sEnergyDepNaN, sKilledByProcess, sLowEnergy, sLowEnergyInVacuum, sOutOfTime, steppingVerbose, theCriticalDensity, theCriticalEnergyForVacuum, tracker, x, y, and z.

85  {
86  if (!initialized) {
88  }
89 
90  //if(hasWatcher) { m_g4StepSignal(aStep); }
91  m_g4StepSignal(aStep);
92 
93  G4Track* theTrack = aStep->GetTrack();
94  TrackStatus tstat = (theTrack->GetTrackStatus() == fAlive) ? sAlive : sKilledByProcess;
95 
96  G4StepPoint* postStep = aStep->GetPostStepPoint();
97 
98  if (sAlive == tstat && postStep->GetPhysicalVolume() != nullptr) {
99  G4StepPoint* preStep = aStep->GetPreStepPoint();
100  const G4Region* theRegion = preStep->GetPhysicalVolume()->GetLogicalVolume()->GetRegion();
101 
102  // kill in dead regions
103  if (isInsideDeadRegion(theRegion)) {
104  tstat = sDeadRegion;
105  }
106 
107  // NaN energy deposit
108  if (sAlive == tstat && edm::isNotFinite(aStep->GetTotalEnergyDeposit())) {
109  tstat = sEnergyDepNaN;
110  if (nWarnings < 20) {
111  ++nWarnings;
112  edm::LogWarning("SimG4CoreApplication")
113  << "Track #" << theTrack->GetTrackID() << " " << theTrack->GetDefinition()->GetParticleName()
114  << " E(MeV)= " << preStep->GetKineticEnergy() / MeV
115  << " is killed due to edep=NaN inside PV: " << preStep->GetPhysicalVolume()->GetName() << " at "
116  << theTrack->GetPosition() << " StepLen(mm)= " << aStep->GetStepLength();
117  }
118  }
119 
120  // kill out of time
121  if (sAlive == tstat && isOutOfTimeWindow(theTrack, theRegion)) {
122  tstat = sOutOfTime;
123  }
124 
125  // kill low-energy in volumes on demand
126  if (sAlive == tstat && numberEkins > 0 && isLowEnergy(aStep)) {
127  tstat = sLowEnergy;
128  }
129 
130  // kill low-energy in vacuum
131  G4double kinEnergy = theTrack->GetKineticEnergy();
132  if (sAlive == tstat && killBeamPipe && kinEnergy < theCriticalEnergyForVacuum &&
133  theTrack->GetDefinition()->GetPDGCharge() != 0.0 && kinEnergy > 0.0 &&
134  theTrack->GetNextVolume()->GetLogicalVolume()->GetMaterial()->GetDensity() <= theCriticalDensity) {
135  tstat = sLowEnergyInVacuum;
136  }
137 
138  // check transition tracker/calo
139  if (sAlive == tstat) {
140  if (isThisVolume(preStep->GetTouchable(), tracker) && isThisVolume(postStep->GetTouchable(), calo)) {
141  math::XYZVectorD pos((preStep->GetPosition()).x(), (preStep->GetPosition()).y(), (preStep->GetPosition()).z());
142 
143  math::XYZTLorentzVectorD mom((preStep->GetMomentum()).x(),
144  (preStep->GetMomentum()).y(),
145  (preStep->GetMomentum()).z(),
146  preStep->GetTotalEnergy());
147 
148  uint32_t id = theTrack->GetTrackID();
149 
150  std::pair<math::XYZVectorD, math::XYZTLorentzVectorD> p(pos, mom);
152  }
153  } else {
154  theTrack->SetTrackStatus(fStopAndKill);
155 #ifdef DebugLog
156  PrintKilledTrack(theTrack, tstat);
157 #endif
158  }
159  }
160  if (nullptr != steppingVerbose) {
161  steppingVerbose->NextStep(aStep, fpSteppingManager, (1 < tstat));
162  }
163 }
const G4VPhysicalVolume * tracker
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
double theCriticalDensity
SimActivityRegistry::G4StepSignal m_g4StepSignal
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
void NextStep(const G4Step *, const G4SteppingManager *ptr, bool isKilled) const
const CMSSteppingVerbose * steppingVerbose
bool isOutOfTimeWindow(G4Track *theTrack, const G4Region *reg) const
unsigned int numberEkins
const double MeV
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
Definition: Vector3D.h:8
TrackStatus
const G4VPhysicalVolume * calo
double theCriticalEnergyForVacuum
EventAction * eventAction_
void addTkCaloStateInfo(uint32_t t, const std::pair< math::XYZVectorD, math::XYZTLorentzVectorD > &p)
Definition: EventAction.cc:72
bool isLowEnergy(const G4Step *aStep) const
bool isInsideDeadRegion(const G4Region *reg) const
void PrintKilledTrack(const G4Track *, const TrackStatus &) const
bool isThisVolume(const G4VTouchable *touch, const G4VPhysicalVolume *pv) const
unsigned int nWarnings

Member Data Documentation

const G4VPhysicalVolume * SteppingAction::calo
private

Definition at line 50 of file SteppingAction.h.

Referenced by initPointer(), and UserSteppingAction().

std::vector<std::string> SteppingAction::deadRegionNames
private

Definition at line 57 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

std::vector<const G4Region*> SteppingAction::deadRegions
private

Definition at line 59 of file SteppingAction.h.

Referenced by initPointer(), and isInsideDeadRegion().

std::vector<double> SteppingAction::ekinMins
private

Definition at line 55 of file SteppingAction.h.

Referenced by initPointer(), isLowEnergy(), and SteppingAction().

std::vector<std::string> SteppingAction::ekinNames
private

Definition at line 56 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

std::vector<std::string> SteppingAction::ekinParticles
private

Definition at line 56 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

std::vector<int> SteppingAction::ekinPDG
private

Definition at line 61 of file SteppingAction.h.

Referenced by initPointer(), and isLowEnergy().

std::vector<G4LogicalVolume*> SteppingAction::ekinVolumes
private

Definition at line 60 of file SteppingAction.h.

Referenced by initPointer(), and isLowEnergy().

EventAction* SteppingAction::eventAction_
private

Definition at line 49 of file SteppingAction.h.

Referenced by UserSteppingAction().

bool SteppingAction::hasWatcher
private

Definition at line 70 of file SteppingAction.h.

bool SteppingAction::initialized
private

Definition at line 68 of file SteppingAction.h.

Referenced by UserSteppingAction().

bool SteppingAction::killBeamPipe
private

Definition at line 69 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

SimActivityRegistry::G4StepSignal SteppingAction::m_g4StepSignal
std::vector<std::string> SteppingAction::maxTimeNames
private

Definition at line 56 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

std::vector<const G4Region*> SteppingAction::maxTimeRegions
private

Definition at line 58 of file SteppingAction.h.

Referenced by initPointer(), and isOutOfTimeWindow().

double SteppingAction::maxTrackTime
private

Definition at line 54 of file SteppingAction.h.

Referenced by isOutOfTimeWindow(), and SteppingAction().

std::vector<double> SteppingAction::maxTrackTimes
private

Definition at line 55 of file SteppingAction.h.

Referenced by isOutOfTimeWindow(), and SteppingAction().

unsigned int SteppingAction::ndeadRegions
private

Definition at line 65 of file SteppingAction.h.

Referenced by initPointer(), isInsideDeadRegion(), and SteppingAction().

unsigned int SteppingAction::numberEkins
private

Definition at line 63 of file SteppingAction.h.

Referenced by initPointer(), isLowEnergy(), SteppingAction(), and UserSteppingAction().

unsigned int SteppingAction::numberPart
private

Definition at line 64 of file SteppingAction.h.

Referenced by initPointer(), isLowEnergy(), and SteppingAction().

unsigned int SteppingAction::numberTimes
private

Definition at line 62 of file SteppingAction.h.

Referenced by initPointer(), isOutOfTimeWindow(), and SteppingAction().

unsigned int SteppingAction::nWarnings
private

Definition at line 66 of file SteppingAction.h.

Referenced by UserSteppingAction().

const CMSSteppingVerbose* SteppingAction::steppingVerbose
private

Definition at line 51 of file SteppingAction.h.

Referenced by UserSteppingAction().

double SteppingAction::theCriticalDensity
private

Definition at line 53 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

double SteppingAction::theCriticalEnergyForVacuum
private

Definition at line 52 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

const G4VPhysicalVolume* SteppingAction::tracker
private

Definition at line 50 of file SteppingAction.h.

Referenced by initPointer(), and UserSteppingAction().