1 #ifndef SimG4CMS_CaloSteppingAction_H 2 #define SimG4CMS_CaloSteppingAction_H 32 #ifdef HcalNumberingTest 37 #include "G4LogicalVolume.hh" 38 #include "G4Region.hh" 40 #include "G4UserSteppingAction.hh" 41 #include "G4VPhysicalVolume.hh" 42 #include "G4VTouchable.hh" 55 public Observer<const BeginOfEvent *>,
74 void NaNTrap(
const G4Step *)
const;
76 void fillHit(uint32_t
id,
double dE,
double time,
int primID, uint16_t depth,
double em,
int flag);
77 uint16_t
getDepth(
bool flag,
double crystalDepth,
double radl)
const;
78 double curve_LY(
double crystalLength,
double crystalDepth)
const;
79 double getBirkL3(
double dE,
double step,
double chg,
double dens)
const;
80 double getBirkHC(
double dE,
double step,
double chg,
double dens)
const;
87 #ifdef HcalNumberingTest 88 std::unique_ptr<HcalNumberingFromDDD> hcNumbering_;
96 std::map<const G4LogicalVolume *, double>
xtalMap_;
97 std::map<const G4LogicalVolume *, std::string>
mapLV_;
103 typedef std::tuple<const G4LogicalVolume *, uint32_t, int, int, double, double, double, double>
PassiveData;
std::map< std::pair< int, CaloHitID >, CaloGVHit > hitMap_[nSD_]
std::vector< const G4LogicalVolume * > volEBSD_
std::vector< PCaloHit > PCaloHitContainer
double getBirkL3(double dE, double step, double chg, double dens) const
void produce(edm::Event &, const edm::EventSetup &) override
uint32_t getDetIDHC(int det, int lay, int depth, const math::XYZVectorD &pos) const
double getBirkHC(double dE, double step, double chg, double dens) const
double curve_LY(double crystalLength, double crystalDepth) const
void fillHits(edm::PCaloHitContainer &cc, int type)
std::vector< const G4LogicalVolume * > volEESD_
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
std::vector< std::string > nameHitC_
std::map< const G4LogicalVolume *, std::string > mapLV_
CaloSteppingAction(const edm::ParameterSet &p)
std::vector< const G4LogicalVolume * > volHCSD_
std::vector< std::string > nameHCSD_
std::map< const G4LogicalVolume *, double > xtalMap_
void fillPassiveHits(edm::PassiveHitContainer &cc)
std::vector< PassiveHit > PassiveHitContainer
std::unique_ptr< CaloSlaveSD > slave_[nSD_]
std::vector< std::string > nameEBSD_
void fillHit(uint32_t id, double dE, double time, int primID, uint16_t depth, double em, int flag)
void NaNTrap(const G4Step *) const
std::unique_ptr< HcalNumberingFromPS > hcNumberingPS_
std::unique_ptr< HcalNumberingScheme > hcNumberingScheme_
void update(const BeginOfJob *job) override
This routine will be called when the appropriate signal arrives.
std::unique_ptr< EcalBarrelNumberingScheme > ebNumberingScheme_
std::unique_ptr< EcalEndcapNumberingScheme > eeNumberingScheme_
std::vector< std::string > nameEESD_
std::vector< PassiveData > store_
uint16_t getDepth(bool flag, double crystalDepth, double radl) const
~CaloSteppingAction() override
std::tuple< const G4LogicalVolume *, uint32_t, int, int, double, double, double, double > PassiveData