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 G4LogicalVolume *, const G4Track *) const
 
bool isOutOfTimeWindow (const G4Region *reg, const double &time) 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
 
G4int maxNumberOfSteps
 
std::vector< std::string > maxTimeNames
 
std::vector< const G4Region * > maxTimeRegions
 
double maxTrackTime
 
double maxTrackTimeForward
 
std::vector< double > maxTrackTimes
 
double maxZCentralCMS
 
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 32 of file SteppingAction.h.

Constructor & Destructor Documentation

◆ SteppingAction()

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

Definition at line 18 of file SteppingAction.cc.

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

References deadRegionNames, ekinMins, ekinNames, ekinParticles, g, mps_fire::i, killBeamPipe, visualization-live-secondInstance_cfg::m, maxNumberOfSteps, maxTimeNames, maxTrackTime, maxTrackTimeForward, maxTrackTimes, maxZCentralCMS, MeV, ndeadRegions, numberEkins, numberPart, numberTimes, AlCaHLTBitMon_ParallelJobs::p, theCriticalDensity, and theCriticalEnergyForVacuum.

◆ ~SteppingAction()

SteppingAction::~SteppingAction ( )
override

Definition at line 89 of file SteppingAction.cc.

89 {}

Member Function Documentation

◆ initPointer()

bool SteppingAction::initPointer ( )
private

Definition at line 217 of file SteppingAction.cc.

217  {
218  const G4PhysicalVolumeStore* pvs = G4PhysicalVolumeStore::GetInstance();
219  for (auto const& pvcite : *pvs) {
220  const G4String& pvname = pvcite->GetName();
221  if (pvname == "Tracker")
222  tracker = pvcite;
223  else if (pvname == "CALO")
224  calo = pvcite;
225 
226  if (tracker && calo)
227  break;
228  }
229  edm::LogVerbatim("SimG4CoreApplication")
230  << "SteppingAction: pointer for Tracker " << tracker << " and for Calo " << calo;
231 
232  const G4LogicalVolumeStore* lvs = G4LogicalVolumeStore::GetInstance();
233  if (numberEkins > 0) {
234  ekinVolumes.resize(numberEkins, nullptr);
235  for (auto const& lvcite : *lvs) {
236  const G4String& lvname = lvcite->GetName();
237  for (unsigned int i = 0; i < numberEkins; ++i) {
238  if (lvname == (G4String)(ekinNames[i])) {
239  ekinVolumes[i] = lvcite;
240  break;
241  }
242  }
243  }
244  for (unsigned int i = 0; i < numberEkins; ++i) {
245  edm::LogVerbatim("SimG4CoreApplication") << ekinVolumes[i]->GetName() << " with pointer " << ekinVolumes[i];
246  }
247  }
248 
249  if (numberPart > 0) {
250  G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable();
251  ekinPDG.resize(numberPart, 0);
252  for (unsigned int i = 0; i < numberPart; ++i) {
253  const G4ParticleDefinition* part = theParticleTable->FindParticle(ekinParticles[i]);
254  if (nullptr != part)
255  ekinPDG[i] = part->GetPDGEncoding();
256  edm::LogVerbatim("SimG4CoreApplication") << "Particle " << ekinParticles[i] << " with PDG code " << ekinPDG[i]
257  << " and KE cut off " << ekinMins[i] / MeV << " MeV";
258  }
259  }
260 
261  const G4RegionStore* rs = G4RegionStore::GetInstance();
262  if (numberTimes > 0) {
263  maxTimeRegions.resize(numberTimes, nullptr);
264  for (auto const& rcite : *rs) {
265  const G4String& rname = rcite->GetName();
266  for (unsigned int i = 0; i < numberTimes; ++i) {
267  if (rname == (G4String)(maxTimeNames[i])) {
268  maxTimeRegions[i] = rcite;
269  break;
270  }
271  }
272  }
273  }
274  if (ndeadRegions > 0) {
275  deadRegions.resize(ndeadRegions, nullptr);
276  for (auto const& rcite : *rs) {
277  const G4String& rname = rcite->GetName();
278  for (unsigned int i = 0; i < ndeadRegions; ++i) {
279  if (rname == (G4String)(deadRegionNames[i])) {
280  deadRegions[i] = rcite;
281  break;
282  }
283  }
284  }
285  }
286  return true;
287 }

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

Referenced by UserSteppingAction().

◆ isInsideDeadRegion()

bool SteppingAction::isInsideDeadRegion ( const G4Region *  reg) const
inlineprivate

Definition at line 80 of file SteppingAction.h.

80  {
81  bool res = false;
82  for (auto& region : deadRegions) {
83  if (reg == region) {
84  res = true;
85  break;
86  }
87  }
88  return res;
89 }

References deadRegions, and HLT_FULL_cff::region.

Referenced by UserSteppingAction().

◆ isLowEnergy()

bool SteppingAction::isLowEnergy ( const G4LogicalVolume *  lv,
const G4Track *  theTrack 
) const
private

Definition at line 200 of file SteppingAction.cc.

200  {
201  const double ekin = theTrack->GetKineticEnergy();
202  int pCode = theTrack->GetDefinition()->GetPDGEncoding();
203 
204  for (auto& vol : ekinVolumes) {
205  if (lv == vol) {
206  for (unsigned int i = 0; i < numberPart; ++i) {
207  if (pCode == ekinPDG[i]) {
208  return (ekin <= ekinMins[i]);
209  }
210  }
211  break;
212  }
213  }
214  return false;
215 }

References ekinMins, ekinPDG, ekinVolumes, mps_fire::i, and numberPart.

Referenced by UserSteppingAction().

◆ isOutOfTimeWindow()

bool SteppingAction::isOutOfTimeWindow ( const G4Region *  reg,
const double &  time 
) const
inlineprivate

Definition at line 91 of file SteppingAction.h.

91  {
92  double tofM = maxTrackTime;
93  for (unsigned int i = 0; i < numberTimes; ++i) {
94  if (reg == maxTimeRegions[i]) {
95  tofM = maxTrackTimes[i];
96  break;
97  }
98  }
99  return (time > tofM);
100 }

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

Referenced by UserSteppingAction().

◆ isThisVolume()

bool SteppingAction::isThisVolume ( const G4VTouchable *  touch,
const G4VPhysicalVolume *  pv 
) const
inlineprivate

Definition at line 102 of file SteppingAction.h.

102  {
103  int level = (touch->GetHistoryDepth()) + 1;
104  return (level >= 3) ? (touch->GetVolume(level - 3) == pv) : false;
105 }

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

Referenced by UserSteppingAction().

◆ PrintKilledTrack()

void SteppingAction::PrintKilledTrack ( const G4Track *  aTrack,
const TrackStatus tst 
) const
private

Definition at line 289 of file SteppingAction.cc.

289  {
290  std::string vname = "";
291  std::string rname = "";
292  std::string typ = " ";
293  switch (tst) {
294  case sDeadRegion:
295  typ = " in dead region ";
296  break;
297  case sOutOfTime:
298  typ = " out of time window ";
299  break;
300  case sLowEnergy:
301  typ = " low energy limit ";
302  break;
303  case sLowEnergyInVacuum:
304  typ = " low energy limit in vacuum ";
305  break;
306  case sEnergyDepNaN:
307  typ = " energy deposition is NaN ";
308  break;
309  case sVeryForward:
310  typ = " very forward track ";
311  break;
312  case sNumberOfSteps:
313  typ = " too many steps ";
314  break;
315  default:
316  break;
317  }
318  G4VPhysicalVolume* pv = aTrack->GetNextVolume();
319  vname = pv->GetLogicalVolume()->GetName();
320  rname = pv->GetLogicalVolume()->GetRegion()->GetName();
321 
322  const double ekin = aTrack->GetKineticEnergy();
323  if (ekin < 2 * CLHEP::MeV) {
324  return;
325  }
326  edm::LogWarning("SimG4CoreApplication")
327  << "Track #" << aTrack->GetTrackID() << " StepN= " << aTrack->GetCurrentStepNumber() << " "
328  << aTrack->GetDefinition()->GetParticleName() << " E(MeV)=" << ekin / CLHEP::MeV
329  << " T(ns)=" << aTrack->GetGlobalTime() / CLHEP::ns << " is killed due to " << typ << "\n LV: " << vname << " ("
330  << rname << ") at " << aTrack->GetPosition() << " step(cm)=" << aTrack->GetStep()->GetStepLength() / CLHEP::cm;
331 }

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

Referenced by UserSteppingAction().

◆ UserSteppingAction()

void SteppingAction::UserSteppingAction ( const G4Step *  aStep)
final

Definition at line 91 of file SteppingAction.cc.

91  {
92  if (!initialized) {
94  }
95 
96  //if(hasWatcher) { m_g4StepSignal(aStep); }
97  m_g4StepSignal(aStep);
98 
99  G4Track* theTrack = aStep->GetTrack();
100  TrackStatus tstat = (theTrack->GetTrackStatus() == fAlive) ? sAlive : sKilledByProcess;
101 
102  const G4StepPoint* preStep = aStep->GetPreStepPoint();
103  const G4StepPoint* postStep = aStep->GetPostStepPoint();
104 
105  // NaN energy deposit
106  if (edm::isNotFinite(aStep->GetTotalEnergyDeposit())) {
107  tstat = sEnergyDepNaN;
108  if (nWarnings < 5) {
109  ++nWarnings;
110  edm::LogWarning("SimG4CoreApplication")
111  << "Track #" << theTrack->GetTrackID() << " " << theTrack->GetDefinition()->GetParticleName()
112  << " E(MeV)= " << preStep->GetKineticEnergy() / MeV << " Nstep= " << theTrack->GetCurrentStepNumber()
113  << " is killed due to edep=NaN inside PV: " << preStep->GetPhysicalVolume()->GetName() << " at "
114  << theTrack->GetPosition() << " StepLen(mm)= " << aStep->GetStepLength();
115  }
116  }
117 
118  // the track is killed by the process
119  if (tstat == sKilledByProcess) {
120  if (nullptr != steppingVerbose) {
121  steppingVerbose->NextStep(aStep, fpSteppingManager, false);
122  }
123  return;
124  }
125 
126  if (sAlive == tstat && theTrack->GetCurrentStepNumber() > maxNumberOfSteps) {
127  tstat = sNumberOfSteps;
128  if (nWarnings < 5) {
129  ++nWarnings;
130  edm::LogWarning("SimG4CoreApplication")
131  << "Track #" << theTrack->GetTrackID() << " " << theTrack->GetDefinition()->GetParticleName()
132  << " E(MeV)= " << preStep->GetKineticEnergy() / MeV << " Nstep= " << theTrack->GetCurrentStepNumber()
133  << " is killed due to limit on number of steps;/n PV: " << preStep->GetPhysicalVolume()->GetName() << " at "
134  << theTrack->GetPosition() << " StepLen(mm)= " << aStep->GetStepLength();
135  }
136  }
137  const double time = theTrack->GetGlobalTime();
138 
139  // check Z-coordinate
140  if (sAlive == tstat && std::abs(theTrack->GetPosition().z()) >= maxZCentralCMS) {
142  }
143 
144  // check G4Region
145  if (sAlive == tstat) {
146  // next logical volume and next region
147  const G4LogicalVolume* lv = postStep->GetPhysicalVolume()->GetLogicalVolume();
148  const G4Region* theRegion = lv->GetRegion();
149 
150  // kill in dead regions
151  if (isInsideDeadRegion(theRegion))
152  tstat = sDeadRegion;
153 
154  // kill out of time
155  if (sAlive == tstat) {
156  if (isOutOfTimeWindow(theRegion, time))
157  tstat = sOutOfTime;
158  }
159 
160  // kill low-energy in volumes on demand
161  if (sAlive == tstat && numberEkins > 0) {
162  if (isLowEnergy(lv, theTrack))
163  tstat = sLowEnergy;
164  }
165 
166  // kill low-energy in vacuum
167  if (sAlive == tstat && killBeamPipe) {
168  if (theTrack->GetKineticEnergy() < theCriticalEnergyForVacuum &&
169  theTrack->GetDefinition()->GetPDGCharge() != 0.0 && lv->GetMaterial()->GetDensity() <= theCriticalDensity) {
170  tstat = sLowEnergyInVacuum;
171  }
172  }
173  }
174  // check transition tracker/calo
175  if (sAlive == tstat || sVeryForward == tstat) {
176  if (isThisVolume(preStep->GetTouchable(), tracker) && isThisVolume(postStep->GetTouchable(), calo)) {
177  math::XYZVectorD pos((preStep->GetPosition()).x(), (preStep->GetPosition()).y(), (preStep->GetPosition()).z());
178 
179  math::XYZTLorentzVectorD mom((preStep->GetMomentum()).x(),
180  (preStep->GetMomentum()).y(),
181  (preStep->GetMomentum()).z(),
182  preStep->GetTotalEnergy());
183 
184  uint32_t id = theTrack->GetTrackID();
185 
186  std::pair<math::XYZVectorD, math::XYZTLorentzVectorD> p(pos, mom);
188  }
189  } else {
190  theTrack->SetTrackStatus(fStopAndKill);
191 #ifdef DebugLog
192  PrintKilledTrack(theTrack, tstat);
193 #endif
194  }
195  if (nullptr != steppingVerbose) {
196  steppingVerbose->NextStep(aStep, fpSteppingManager, (1 < tstat));
197  }
198 }

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

Member Data Documentation

◆ calo

const G4VPhysicalVolume * SteppingAction::calo
private

Definition at line 52 of file SteppingAction.h.

Referenced by initPointer(), and UserSteppingAction().

◆ deadRegionNames

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

Definition at line 73 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

◆ deadRegions

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

Definition at line 75 of file SteppingAction.h.

Referenced by initPointer(), and isInsideDeadRegion().

◆ ekinMins

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

Definition at line 71 of file SteppingAction.h.

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

◆ ekinNames

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

Definition at line 72 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

◆ ekinParticles

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

Definition at line 72 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

◆ ekinPDG

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

Definition at line 77 of file SteppingAction.h.

Referenced by initPointer(), and isLowEnergy().

◆ ekinVolumes

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

Definition at line 76 of file SteppingAction.h.

Referenced by initPointer(), and isLowEnergy().

◆ eventAction_

EventAction* SteppingAction::eventAction_
private

Definition at line 51 of file SteppingAction.h.

Referenced by UserSteppingAction().

◆ hasWatcher

bool SteppingAction::hasWatcher
private

Definition at line 69 of file SteppingAction.h.

◆ initialized

bool SteppingAction::initialized
private

Definition at line 67 of file SteppingAction.h.

Referenced by UserSteppingAction().

◆ killBeamPipe

bool SteppingAction::killBeamPipe
private

Definition at line 68 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

◆ m_g4StepSignal

SimActivityRegistry::G4StepSignal SteppingAction::m_g4StepSignal

◆ maxNumberOfSteps

G4int SteppingAction::maxNumberOfSteps
private

Definition at line 65 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

◆ maxTimeNames

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

Definition at line 72 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

◆ maxTimeRegions

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

Definition at line 74 of file SteppingAction.h.

Referenced by initPointer(), and isOutOfTimeWindow().

◆ maxTrackTime

double SteppingAction::maxTrackTime
private

Definition at line 56 of file SteppingAction.h.

Referenced by isOutOfTimeWindow(), and SteppingAction().

◆ maxTrackTimeForward

double SteppingAction::maxTrackTimeForward
private

Definition at line 57 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

◆ maxTrackTimes

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

Definition at line 71 of file SteppingAction.h.

Referenced by isOutOfTimeWindow(), and SteppingAction().

◆ maxZCentralCMS

double SteppingAction::maxZCentralCMS
private

Definition at line 58 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

◆ ndeadRegions

unsigned int SteppingAction::ndeadRegions
private

Definition at line 63 of file SteppingAction.h.

Referenced by initPointer(), and SteppingAction().

◆ numberEkins

unsigned int SteppingAction::numberEkins
private

Definition at line 61 of file SteppingAction.h.

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

◆ numberPart

unsigned int SteppingAction::numberPart
private

Definition at line 62 of file SteppingAction.h.

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

◆ numberTimes

unsigned int SteppingAction::numberTimes
private

Definition at line 60 of file SteppingAction.h.

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

◆ nWarnings

unsigned int SteppingAction::nWarnings
private

Definition at line 64 of file SteppingAction.h.

Referenced by UserSteppingAction().

◆ steppingVerbose

const CMSSteppingVerbose* SteppingAction::steppingVerbose
private

Definition at line 53 of file SteppingAction.h.

Referenced by UserSteppingAction().

◆ theCriticalDensity

double SteppingAction::theCriticalDensity
private

Definition at line 55 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

◆ theCriticalEnergyForVacuum

double SteppingAction::theCriticalEnergyForVacuum
private

Definition at line 54 of file SteppingAction.h.

Referenced by SteppingAction(), and UserSteppingAction().

◆ tracker

const G4VPhysicalVolume* SteppingAction::tracker
private

Definition at line 52 of file SteppingAction.h.

Referenced by initPointer(), and UserSteppingAction().

personalPlayback.level
level
Definition: personalPlayback.py:22
SteppingAction::maxTimeNames
std::vector< std::string > maxTimeNames
Definition: SteppingAction.h:72
DDAxes::y
SteppingAction::theCriticalDensity
double theCriticalDensity
Definition: SteppingAction.h:55
mps_fire.i
i
Definition: mps_fire.py:428
SteppingAction::tracker
const G4VPhysicalVolume * tracker
Definition: SteppingAction.h:52
SteppingAction::killBeamPipe
bool killBeamPipe
Definition: SteppingAction.h:68
edm::isNotFinite
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
SteppingAction::maxZCentralCMS
double maxZCentralCMS
Definition: SteppingAction.h:58
CMSSteppingVerbose::NextStep
void NextStep(const G4Step *, const G4SteppingManager *ptr, bool isKilled) const
Definition: CMSSteppingVerbose.cc:156
math::XYZTLorentzVectorD
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
pos
Definition: PixelAliasList.h:18
SteppingAction::numberPart
unsigned int numberPart
Definition: SteppingAction.h:62
sAlive
Definition: SteppingAction.h:21
protons_cff.time
time
Definition: protons_cff.py:35
MeV
const double MeV
SteppingAction::maxTrackTime
double maxTrackTime
Definition: SteppingAction.h:56
SteppingAction::deadRegionNames
std::vector< std::string > deadRegionNames
Definition: SteppingAction.h:73
sKilledByProcess
Definition: SteppingAction.h:22
DDAxes::x
sLowEnergyInVacuum
Definition: SteppingAction.h:26
SteppingAction::initPointer
bool initPointer()
Definition: SteppingAction.cc:217
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
SteppingAction::ekinParticles
std::vector< std::string > ekinParticles
Definition: SteppingAction.h:72
TrackStatus
TrackStatus
Definition: SteppingAction.h:20
part
part
Definition: HCALResponse.h:20
sNumberOfSteps
Definition: SteppingAction.h:29
SteppingAction::maxTimeRegions
std::vector< const G4Region * > maxTimeRegions
Definition: SteppingAction.h:74
SteppingAction::ekinNames
std::vector< std::string > ekinNames
Definition: SteppingAction.h:72
SteppingAction::theCriticalEnergyForVacuum
double theCriticalEnergyForVacuum
Definition: SteppingAction.h:54
sOutOfTime
Definition: SteppingAction.h:24
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:79
SteppingAction::initialized
bool initialized
Definition: SteppingAction.h:67
pfDeepBoostedJetPreprocessParams_cfi.sv
sv
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:352
DDAxes::z
SteppingAction::maxTrackTimeForward
double maxTrackTimeForward
Definition: SteppingAction.h:57
SteppingAction::PrintKilledTrack
void PrintKilledTrack(const G4Track *, const TrackStatus &) const
Definition: SteppingAction.cc:289
SteppingAction::isInsideDeadRegion
bool isInsideDeadRegion(const G4Region *reg) const
Definition: SteppingAction.h:80
SteppingAction::numberTimes
unsigned int numberTimes
Definition: SteppingAction.h:60
SteppingAction::steppingVerbose
const CMSSteppingVerbose * steppingVerbose
Definition: SteppingAction.h:53
math::XYZVectorD
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
Definition: Vector3D.h:8
sDeadRegion
Definition: SteppingAction.h:23
SteppingAction::maxTrackTimes
std::vector< double > maxTrackTimes
Definition: SteppingAction.h:71
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
rname
const G4String rname[NREG]
Definition: ParametrisedEMPhysics.cc:44
SteppingAction::ndeadRegions
unsigned int ndeadRegions
Definition: SteppingAction.h:63
SteppingAction::calo
const G4VPhysicalVolume * calo
Definition: SteppingAction.h:52
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88286
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
SteppingAction::ekinMins
std::vector< double > ekinMins
Definition: SteppingAction.h:71
SteppingAction::hasWatcher
bool hasWatcher
Definition: SteppingAction.h:69
res
Definition: Electron.h:6
FSQDQM_cfi.pvs
pvs
Definition: FSQDQM_cfi.py:12
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SteppingAction::isThisVolume
bool isThisVolume(const G4VTouchable *touch, const G4VPhysicalVolume *pv) const
Definition: SteppingAction.h:102
sEnergyDepNaN
Definition: SteppingAction.h:27
SteppingAction::ekinVolumes
std::vector< G4LogicalVolume * > ekinVolumes
Definition: SteppingAction.h:76
SteppingAction::m_g4StepSignal
SimActivityRegistry::G4StepSignal m_g4StepSignal
Definition: SteppingAction.h:39
SteppingAction::isOutOfTimeWindow
bool isOutOfTimeWindow(const G4Region *reg, const double &time) const
Definition: SteppingAction.h:91
SteppingAction::eventAction_
EventAction * eventAction_
Definition: SteppingAction.h:51
EventAction::addTkCaloStateInfo
void addTkCaloStateInfo(uint32_t t, const std::pair< math::XYZVectorD, math::XYZTLorentzVectorD > &p)
Definition: EventAction.cc:72
SteppingAction::isLowEnergy
bool isLowEnergy(const G4LogicalVolume *, const G4Track *) const
Definition: SteppingAction.cc:200
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
sLowEnergy
Definition: SteppingAction.h:25
SteppingAction::ekinPDG
std::vector< int > ekinPDG
Definition: SteppingAction.h:77
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
calo
Definition: Common.h:9
SteppingAction::deadRegions
std::vector< const G4Region * > deadRegions
Definition: SteppingAction.h:75
sVeryForward
Definition: SteppingAction.h:28
SteppingAction::numberEkins
unsigned int numberEkins
Definition: SteppingAction.h:61
SteppingAction::nWarnings
unsigned int nWarnings
Definition: SteppingAction.h:64
SteppingAction::maxNumberOfSteps
G4int maxNumberOfSteps
Definition: SteppingAction.h:65
g
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
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37