CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SteppingAction.h
Go to the documentation of this file.
1 #ifndef SimG4Core_SteppingAction_H
2 #define SimG4Core_SteppingAction_H
3 
6 
7 #include "G4LogicalVolume.hh"
8 #include "G4Region.hh"
9 #include "G4UserSteppingAction.hh"
10 #include "G4VPhysicalVolume.hh"
11 
12 #include <string>
13 #include <vector>
14 
15 class EventAction;
16 class G4VTouchable;
17 
18 class SteppingAction: public G4UserSteppingAction {
19 
20 public:
23  void UserSteppingAction(const G4Step * aStep);
24 
26 private:
27  void catchLowEnergyInVacuumHere(const G4Step * aStep);
28  void catchLowEnergyInVacuumNext(const G4Step * aStep);
29  bool catchLongLived (const G4Step * aStep);
30  bool killLowEnergy (const G4Step * aStep);
31  bool initPointer();
32  bool isThisVolume(const G4VTouchable* touch, G4VPhysicalVolume* pv);
33  void killTrack (const G4Step * aStep);
34 private:
37  G4VPhysicalVolume *tracker, *calo;
41  double maxTrackTime;
42  std::vector<double> maxTrackTimes, ekinMins;
43  std::vector<std::string> maxTimeNames, ekinNames, ekinParticles;
44  std::vector<G4Region*> maxTimeRegions;
45  std::vector<G4LogicalVolume*> ekinVolumes;
46  std::vector<int> ekinPDG;
47  int verbose;
48 };
49 
50 #endif
std::vector< int > ekinPDG
double theCriticalDensity
SimActivityRegistry::G4StepSignal m_g4StepSignal
bool catchLongLived(const G4Step *aStep)
G4VPhysicalVolume * calo
bool isThisVolume(const G4VTouchable *touch, G4VPhysicalVolume *pv)
void catchLowEnergyInVacuumHere(const G4Step *aStep)
void UserSteppingAction(const G4Step *aStep)
std::vector< double > maxTrackTimes
SteppingAction(EventAction *ea, const edm::ParameterSet &ps)
std::vector< G4LogicalVolume * > ekinVolumes
double theCriticalEnergyForVacuum
EventAction * eventAction_
void killTrack(const G4Step *aStep)
std::vector< double > ekinMins
std::vector< std::string > maxTimeNames
std::vector< std::string > ekinNames
bool killLowEnergy(const G4Step *aStep)
G4VPhysicalVolume * tracker
void catchLowEnergyInVacuumNext(const G4Step *aStep)
std::vector< std::string > ekinParticles
std::vector< G4Region * > maxTimeRegions