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.

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

84 {}

Member Function Documentation

bool SteppingAction::initPointer ( )
private

Definition at line 193 of file SteppingAction.cc.

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

Referenced by UserSteppingAction().

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

References deadRegions, mps_fire::i, and ndeadRegions.

Referenced by UserSteppingAction().

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

Definition at line 170 of file SteppingAction.cc.

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

Referenced by UserSteppingAction().

171 {
172  bool flag = false;
173  const G4StepPoint* sp = aStep->GetPostStepPoint();
174  G4LogicalVolume* lv = sp->GetPhysicalVolume()->GetLogicalVolume();
175  for (unsigned int i=0; i<numberEkins; ++i) {
176  if (lv == ekinVolumes[i]) {
177  flag = true;
178  break;
179  }
180  }
181  if (flag) {
182  double ekin = sp->GetKineticEnergy();
183  int pCode = aStep->GetTrack()->GetDefinition()->GetPDGEncoding();
184  for (unsigned int i=0; i<numberPart; ++i) {
185  if (pCode == ekinPDG[i]) {
186  return (ekin <= ekinMins[i]) ? true : false;
187  }
188  }
189  }
190  return false;
191 }
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 89 of file SteppingAction.h.

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

Referenced by UserSteppingAction().

90 {
91  double tofM = maxTrackTime;
92  for (unsigned int i=0; i<numberTimes; ++i) {
93  if (reg == maxTimeRegions[i]) {
94  tofM = maxTrackTimes[i];
95  break;
96  }
97  }
98  return (theTrack->GetGlobalTime() > tofM) ? true : false;
99 }
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 101 of file SteppingAction.h.

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

Referenced by UserSteppingAction().

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

Definition at line 274 of file SteppingAction.cc.

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

Referenced by UserSteppingAction().

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

Definition at line 86 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.

87 {
88  if (!initialized) { initialized = initPointer(); }
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 
100  G4StepPoint* preStep = aStep->GetPreStepPoint();
101  const G4Region* theRegion =
102  preStep->GetPhysicalVolume()->GetLogicalVolume()->GetRegion();
103 
104  // kill in dead regions
105  if(isInsideDeadRegion(theRegion)) { tstat = sDeadRegion; }
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()
114  << " " << theTrack->GetDefinition()->GetParticleName()
115  << " E(MeV)= " << preStep->GetKineticEnergy()/MeV
116  << " is killed due to edep=NaN inside PV: "
117  << preStep->GetPhysicalVolume()->GetName()
118  << " at " << theTrack->GetPosition()
119  << " StepLen(mm)= " << aStep->GetStepLength();
120  }
121  }
122 
123  // kill out of time
124  if(sAlive == tstat && isOutOfTimeWindow(theTrack, theRegion)) { tstat = sOutOfTime; }
125 
126  // kill low-energy in volumes on demand
127  if(sAlive == tstat && numberEkins > 0 && isLowEnergy(aStep)) { tstat = sLowEnergy; }
128 
129  // kill low-energy in vacuum
130  G4double kinEnergy = theTrack->GetKineticEnergy();
131  if(sAlive == tstat && killBeamPipe && kinEnergy < theCriticalEnergyForVacuum
132  && theTrack->GetDefinition()->GetPDGCharge() != 0.0 && kinEnergy > 0.0
133  && theTrack->GetNextVolume()->GetLogicalVolume()->GetMaterial()->GetDensity()
134  <= theCriticalDensity) {
135  tstat = sLowEnergyInVacuum;
136  }
137 
138  // check transition tracker/calo
139  if(sAlive == tstat) {
140 
141  if(isThisVolume(preStep->GetTouchable(),tracker) &&
142  isThisVolume(postStep->GetTouchable(),calo)) {
143 
144  math::XYZVectorD pos((preStep->GetPosition()).x(),
145  (preStep->GetPosition()).y(),
146  (preStep->GetPosition()).z());
147 
148  math::XYZTLorentzVectorD mom((preStep->GetMomentum()).x(),
149  (preStep->GetMomentum()).y(),
150  (preStep->GetMomentum()).z(),
151  preStep->GetTotalEnergy());
152 
153  uint32_t id = theTrack->GetTrackID();
154 
155  std::pair<math::XYZVectorD,math::XYZTLorentzVectorD> p(pos,mom);
157  }
158  } else {
159  theTrack->SetTrackStatus(fStopAndKill);
160 #ifdef DebugLog
161  PrintKilledTrack(theTrack, tstat);
162 #endif
163  }
164  }
165  if(nullptr != steppingVerbose) {
166  steppingVerbose->NextStep(aStep, fpSteppingManager, (1 < tstat));
167  }
168 }
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:81
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 53 of file SteppingAction.h.

Referenced by initPointer(), and UserSteppingAction().

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

Definition at line 60 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

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

Definition at line 62 of file SteppingAction.h.

Referenced by initPointer(), and isInsideDeadRegion().

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

Definition at line 58 of file SteppingAction.h.

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

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

Definition at line 59 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

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

Definition at line 59 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

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

Definition at line 64 of file SteppingAction.h.

Referenced by initPointer(), and isLowEnergy().

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

Definition at line 63 of file SteppingAction.h.

Referenced by initPointer(), and isLowEnergy().

EventAction* SteppingAction::eventAction_
private

Definition at line 52 of file SteppingAction.h.

Referenced by UserSteppingAction().

bool SteppingAction::hasWatcher
private

Definition at line 73 of file SteppingAction.h.

bool SteppingAction::initialized
private

Definition at line 71 of file SteppingAction.h.

Referenced by UserSteppingAction().

bool SteppingAction::killBeamPipe
private

Definition at line 72 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

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

Definition at line 59 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

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

Definition at line 61 of file SteppingAction.h.

Referenced by initPointer(), and isOutOfTimeWindow().

double SteppingAction::maxTrackTime
private

Definition at line 57 of file SteppingAction.h.

Referenced by isOutOfTimeWindow(), and SteppingAction().

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

Definition at line 58 of file SteppingAction.h.

Referenced by isOutOfTimeWindow(), and SteppingAction().

unsigned int SteppingAction::ndeadRegions
private

Definition at line 68 of file SteppingAction.h.

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

unsigned int SteppingAction::numberEkins
private

Definition at line 66 of file SteppingAction.h.

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

unsigned int SteppingAction::numberPart
private

Definition at line 67 of file SteppingAction.h.

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

unsigned int SteppingAction::numberTimes
private

Definition at line 65 of file SteppingAction.h.

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

unsigned int SteppingAction::nWarnings
private

Definition at line 69 of file SteppingAction.h.

Referenced by UserSteppingAction().

const CMSSteppingVerbose* SteppingAction::steppingVerbose
private

Definition at line 54 of file SteppingAction.h.

Referenced by UserSteppingAction().

double SteppingAction::theCriticalDensity
private

Definition at line 56 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

double SteppingAction::theCriticalEnergyForVacuum
private

Definition at line 55 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

const G4VPhysicalVolume* SteppingAction::tracker
private

Definition at line 53 of file SteppingAction.h.

Referenced by initPointer(), and UserSteppingAction().