Go to the documentation of this file. 1 #ifndef SimG4CMS_HCalSD_h
2 #define SimG4CMS_HCalSD_h
27 #include "G4String.hh"
32 class G4LogicalVolume;
63 uint32_t
setDetUnitId(
int,
const G4ThreeVector&,
int,
int);
65 bool isItHF(
const G4Step*);
66 bool isItHF(
const G4String&);
69 bool isItPMT(
const G4LogicalVolume*);
80 double layerWeight(
int,
const G4ThreeVector&,
int,
int);
82 void plotHF(
const G4ThreeVector&
pos,
bool emType);
std::vector< const G4LogicalVolume * > fibreLV
bool isItStraightBundle(const G4LogicalVolume *)
std::vector< int > hfLevels
void getFromHFLibrary(const G4Step *step, bool &isKilled)
const HBHEDarkening * m_HBDarkening
void getFromParam(const G4Step *step, bool &isKilled)
std::vector< const G4LogicalVolume * > pmtLV
void update(const BeginOfRun *) override
This routine will be called when the appropriate signal arrives.
void getHitFibreBundle(const G4Step *step, bool type)
double getEnergyDeposit(const G4Step *) override
bool isItPMT(const G4LogicalVolume *)
~HCalSD() override=default
bool isItinFidVolume(const G4ThreeVector &)
void getHitPMT(const G4Step *step)
double layerWeight(int, const G4ThreeVector &, int, int)
std::unique_ptr< HcalTestNS > m_HcalTestNS
std::map< uint32_t, double > layerWeights
std::vector< std::string > hfNames
std::vector< const G4LogicalVolume * > fibre1LV
void update(const BeginOfJob *) override
This routine will be called when the appropriate signal arrives.
bool filterHit(CaloG4Hit *, double) override
void modifyDepth(HcalNumberingFromDDD::HcalID &id)
void readWeightFromFile(const std::string &)
std::vector< const G4LogicalVolume * > hfLV
bool isItConicalBundle(const G4LogicalVolume *)
HCalSD(const std::string &, const HcalDDDSimConstants *, const HcalDDDRecConstants *, const HcalSimulationConstants *, const HBHEDarkening *, const HBHEDarkening *, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
std::unique_ptr< HcalNumberingFromDDD > numberingFromDDD
const HcalSimulationConstants * hcalSimConstants_
std::unique_ptr< HFShowerFibreBundle > showerBundle
void hitForFibre(const G4Step *step)
bool isItHF(const G4Step *)
const HcalDDDSimConstants * hcalConstants_
std::unique_ptr< HFShowerLibrary > showerLibrary
bool isItScintillator(const G4Material *)
std::vector< std::string > fibreNames
std::unique_ptr< HFShower > hfshower
std::vector< double > gpar
std::unique_ptr< HFDarkening > m_HFDarkening
std::vector< const G4LogicalVolume * > fibre2LV
void setNumberingScheme(HcalNumberingScheme *)
void plotHF(const G4ThreeVector &pos, bool emType)
void plotProfile(const G4Step *step, const G4ThreeVector &pos, double edep, double time, int id)
std::vector< const G4Material * > materials
bool getFromLibrary(const G4Step *) override
uint32_t setDetUnitId(const G4Step *step) override
std::unique_ptr< HFShowerPMT > showerPMT
bool isItFibre(const G4LogicalVolume *)
std::vector< std::string > matNames
void fillLogVolumeVector(const std::string &, const std::vector< std::string > &, std::vector< const G4LogicalVolume * > &)
const HBHEDarkening * m_HEDarkening
std::unique_ptr< HFShowerParam > showerParam
std::unique_ptr< HcalNumberingScheme > numberingScheme