CMS 3D CMS Logo

HGCalSD.h
Go to the documentation of this file.
1 #ifndef SimG4CMS_HGCalSD_h
2 #define SimG4CMS_HGCalSD_h
3 // File: HGCalSD.h
5 // Description: Stores hits of the High Granularity Calorimeter (HGC) in the
6 // appropriate container (post TDR version)
8 
16 #include <string>
17 
18 class HGCalDDDConstants;
19 class G4LogicalVolume;
20 class G4Step;
21 
22 class HGCalSD : public CaloSD, public Observer<const BeginOfJob *> {
23 public:
24  HGCalSD(const std::string &,
25  const HGCalDDDConstants *,
27  edm::ParameterSet const &,
28  const SimTrackManager *);
29  ~HGCalSD() override = default;
30 
31  uint32_t setDetUnitId(const G4Step *step) override;
32 
33 protected:
34  double getEnergyDeposit(const G4Step *) override;
35  using CaloSD::update;
36  void update(const BeginOfJob *) override;
37  void initRun() override;
38  bool filterHit(CaloG4Hit *, double) override;
39  void processSecondHit(const G4Step *, const G4Track *) override;
40 
41 private:
42  uint32_t setDetUnitId(int, int, int, int, G4ThreeVector &);
43  bool isItinFidVolume(const G4ThreeVector &);
44  bool calibCell(const uint32_t &id);
45 
49  std::unique_ptr<HGCalNumberingScheme> numberingScheme_;
50  std::unique_ptr<HGCGuardRing> guardRing_;
51  std::unique_ptr<HGCGuardRingPartial> guardRingPartial_;
52  std::unique_ptr<HGCMouseBite> mouseBite_;
53  std::unique_ptr<HGCalCellOffset> cellOffset_;
67  const double tan30deg_, cos30deg_;
68  std::vector<double> angles_;
70  bool calibCell_;
71  double fraction_;
72 };
73 
74 #endif // HGCalSD_h
int verbose_
Definition: HGCalSD.h:62
bool calibCell_
Definition: HGCalSD.h:70
double distanceFromEdge_
Definition: HGCalSD.h:57
int levelT2_
Definition: HGCalSD.h:59
void processSecondHit(const G4Step *, const G4Track *) override
Definition: HGCalSD.cc:350
edm::ParameterSet const & ps_
Definition: HGCalSD.h:48
std::vector< int > calibCellPartLD_
Definition: HGCalSD.h:66
double slopeMin_
Definition: HGCalSD.h:57
Definition: CaloSD.h:40
std::string myName_
Definition: HGCalSD.h:46
HGCalSD(const std::string &, const HGCalDDDConstants *, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: HGCalSD.cc:33
std::vector< int > calibCellPartHD_
Definition: HGCalSD.h:65
std::unique_ptr< HGCalNumberingScheme > numberingScheme_
Definition: HGCalSD.h:49
std::string nameX_
Definition: HGCalSD.h:55
double mouseBiteCut_
Definition: HGCalSD.h:58
void initRun() override
Definition: HGCalSD.cc:344
bool calibCells_
Definition: HGCalSD.h:63
double getEnergyDeposit(const G4Step *) override
Definition: HGCalSD.cc:110
bool rejectMB_
Definition: HGCalSD.h:61
DetId::Detector mydet_
Definition: HGCalSD.h:54
uint32_t setDetUnitId(const G4Step *step) override
Definition: HGCalSD.cc:141
std::vector< int > calibCellFullHD_
Definition: HGCalSD.h:65
const double cos30deg_
Definition: HGCalSD.h:67
std::string missingFile_
Definition: HGCalSD.h:69
bool storeAllG4Hits_
Definition: HGCalSD.h:60
double fraction_
Definition: HGCalSD.h:71
std::vector< double > angles_
Definition: HGCalSD.h:68
const HGCalDDDConstants * hgcons_
Definition: HGCalSD.h:47
const double tan30deg_
Definition: HGCalSD.h:67
bool waferRot_
Definition: HGCalSD.h:61
double waferSize_
Definition: HGCalSD.h:58
bool dd4hep_
Definition: HGCalSD.h:63
double calibCellRLD_
Definition: HGCalSD.h:64
bool isItinFidVolume(const G4ThreeVector &)
~HGCalSD() override=default
bool checkID_
Definition: HGCalSD.h:61
bool calibCell(const uint32_t &id)
Definition: HGCalSD.cc:378
int cornerMinMask_
Definition: HGCalSD.h:59
Detector
Definition: DetId.h:24
HGCalGeometryMode::GeometryMode geom_mode_
Definition: HGCalSD.h:56
double weight_
Definition: HGCalSD.h:58
std::unique_ptr< HGCalCellOffset > cellOffset_
Definition: HGCalSD.h:53
bool fiducialCut_
Definition: HGCalSD.h:61
std::unique_ptr< HGCGuardRingPartial > guardRingPartial_
Definition: HGCalSD.h:51
std::vector< int > calibCellFullLD_
Definition: HGCalSD.h:66
bool filterHit(CaloG4Hit *, double) override
Definition: HGCalSD.cc:346
int useSimWt_
Definition: HGCalSD.h:62
std::unique_ptr< HGCGuardRing > guardRing_
Definition: HGCalSD.h:50
step
Definition: StallMonitor.cc:83
int levelT1_
Definition: HGCalSD.h:59
double guardRingOffset_
Definition: HGCalSD.h:58
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HGCalSD.h:52
double eminHit_
Definition: HGCalSD.h:57
double calibCellRHD_
Definition: HGCalSD.h:64
void update(const BeginOfRun *) override
This routine will be called when the appropriate signal arrives.
Definition: CaloSD.cc:748
void update(const BeginOfJob *) override
This routine will be called when the appropriate signal arrives.
Definition: HGCalSD.cc:267