1 #ifndef SimG4CMS_HCalSD_h 2 #define SimG4CMS_HCalSD_h 27 #include "G4String.hh" 32 class G4LogicalVolume;
65 uint32_t
setDetUnitId(
int,
const G4ThreeVector&,
int,
int);
67 bool isItHF(
const G4Step*);
68 bool isItHF(
const G4String&);
71 bool isItPMT(
const G4LogicalVolume*);
82 double layerWeight(
int,
const G4ThreeVector&,
int,
int);
84 void plotHF(
const G4ThreeVector&
pos,
bool emType);
103 static constexpr
double maxZ_ = 10000.0;
std::vector< std::string > matNames
void readWeightFromFile(const std::string &)
std::vector< const G4LogicalVolume * > hfLV
void hitForFibre(const G4Step *step)
void initEvent(const BeginOfEvent *) override
std::vector< std::string > fibreNames
static constexpr double slopeHE_
std::unique_ptr< HFShowerParam > showerParam
std::vector< double > gpar
const HcalDDDSimConstants * hcalConstants_
std::vector< std::string > hfNames
void plotProfile(const G4Step *step, const G4ThreeVector &pos, double edep, double time, int id)
std::vector< const G4LogicalVolume * > fibre2LV
void modifyDepth(HcalNumberingFromDDD::HcalID &id)
void update(const BeginOfJob *) override
This routine will be called when the appropriate signal arrives.
void setNumberingScheme(HcalNumberingScheme *)
std::unique_ptr< HFShowerPMT > showerPMT
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 *)
static constexpr double minRoff_
std::unique_ptr< HcalNumberingFromDDD > numberingFromDDD
~HCalSD() override=default
std::unique_ptr< HFDarkening > m_HFDarkening
const HBHEDarkening * m_HEDarkening
std::unique_ptr< HcalTestNS > m_HcalTestNS
void plotHF(const G4ThreeVector &pos, bool emType)
std::vector< int > hfLevels
void getFromParam(const G4Step *step, bool &isKilled)
void getFromHFLibrary(const G4Step *step, bool &isKilled)
uint32_t setDetUnitId(const G4Step *step) override
bool isItStraightBundle(const G4LogicalVolume *)
bool getFromLibrary(const G4Step *) override
std::vector< const G4LogicalVolume * > pmtLV
bool filterHit(CaloG4Hit *, double) override
void fillLogVolumeVector(const std::string &, const std::vector< std::string > &, std::vector< const G4LogicalVolume *> &)
static constexpr double maxZ_
void getHitFibreBundle(const G4Step *step, bool type)
double getEnergyDeposit(const G4Step *) override
std::unique_ptr< HFShowerFibreBundle > showerBundle
bool isItPMT(const G4LogicalVolume *)
bool isItinFidVolume(const G4ThreeVector &)
void printVolume(const G4VTouchable *touch) const
void getHitPMT(const G4Step *step)
std::vector< int > detNull_
std::unique_ptr< HFShowerLibrary > showerLibrary
double layerWeight(int, const G4ThreeVector &, int, int)
const HcalSimulationConstants * hcalSimConstants_
std::map< uint32_t, double > layerWeights
bool isItHF(const G4Step *)
bool isItScintillator(const G4Material *)
std::unique_ptr< HcalNumberingScheme > numberingScheme
std::unique_ptr< HFShower > hfshower
std::vector< const G4LogicalVolume * > fibreLV
std::vector< const G4LogicalVolume * > fibre1LV
std::vector< const G4Material * > materials
const HBHEDarkening * m_HBDarkening
static constexpr double maxRoff_
void update(const BeginOfRun *) override
This routine will be called when the appropriate signal arrives.
bool isItFibre(const G4LogicalVolume *)