CMS 3D CMS Logo

HGCSD.h
Go to the documentation of this file.
1 #ifndef SimG4CMS_HGCSD_h
2 #define SimG4CMS_HGCSD_h
3 // File: HGCSD.h
5 // Description: Stores hits of the High Granularity Calorimeter (HGC) in the
6 // appropriate container
8 
9 //#define plotDebug
10 
17 
18 #include <string>
19 #ifdef plotDebug
20 #include <TTree.h>
21 #endif
22 class G4LogicalVolume;
23 class G4Material;
24 class G4Step;
25 
26 class HGCSD : public CaloSD, public Observer<const BeginOfJob *> {
27 public:
28  HGCSD(const std::string &,
29  const HGCalTBDDDConstants *,
31  edm::ParameterSet const &,
32  const SimTrackManager *);
33  ~HGCSD() override = default;
34 
35  uint32_t setDetUnitId(const G4Step *step) override;
36 
37 protected:
38  double getEnergyDeposit(const G4Step *) override;
39  using CaloSD::update;
40  void update(const BeginOfJob *) override;
41  void initRun() override;
42  void initEvent(const BeginOfEvent *) override;
43  void endEvent() override;
44  bool filterHit(CaloG4Hit *, double) override;
45 
46 private:
47  uint32_t setDetUnitId(ForwardSubdetector &, int, int, int, int, G4ThreeVector &);
48  bool isItinFidVolume(const G4ThreeVector &) { return true; }
49 
53  std::unique_ptr<HGCNumberingScheme> numberingScheme_;
54  std::unique_ptr<HGCMouseBite> mouseBite_;
55  double eminHit_;
57  double slopeMin_;
58  int levelT_;
60  double mouseBiteCut_;
61  bool dd4hep_;
62  std::vector<double> angles_;
63 
64 #ifdef plotDebug
65  TTree *tree_;
66 #endif
67  uint32_t t_EventID_;
68  std::vector<int> t_Layer_, t_Parcode_;
69  std::vector<double> t_dEStep1_, t_dEStep2_, t_TrackE_;
70  std::vector<double> t_Angle_;
71 };
72 
73 #endif // HGCSD_h
std::vector< double > t_TrackE_
Definition: HGCSD.h:69
bool dd4hep_
Definition: HGCSD.h:61
double getEnergyDeposit(const G4Step *) override
Definition: HGCSD.cc:99
std::vector< double > t_dEStep1_
Definition: HGCSD.h:69
std::vector< double > t_dEStep2_
Definition: HGCSD.h:69
int levelT_
Definition: HGCSD.h:58
bool isItinFidVolume(const G4ThreeVector &)
Definition: HGCSD.h:48
double mouseBiteCut_
Definition: HGCSD.h:60
Definition: CaloSD.h:40
std::vector< int > t_Layer_
Definition: HGCSD.h:68
std::string nameX_
Definition: HGCSD.h:51
HGCSD(const std::string &, const HGCalTBDDDConstants *, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: HGCSD.cc:31
std::vector< double > angles_
Definition: HGCSD.h:62
bool storeAllG4Hits_
Definition: HGCSD.h:59
ForwardSubdetector
bool waferRot_
Definition: HGCSD.h:59
HGCalGeometryMode::GeometryMode geom_mode_
Definition: HGCSD.h:52
double slopeMin_
Definition: HGCSD.h:57
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HGCSD.h:54
void initRun() override
Definition: HGCSD.cc:226
std::vector< int > t_Parcode_
Definition: HGCSD.h:68
std::unique_ptr< HGCNumberingScheme > numberingScheme_
Definition: HGCSD.h:53
void initEvent(const BeginOfEvent *) override
Definition: HGCSD.cc:242
double eminHit_
Definition: HGCSD.h:55
std::vector< double > t_Angle_
Definition: HGCSD.h:70
bool rejectMB_
Definition: HGCSD.h:59
uint32_t setDetUnitId(const G4Step *step) override
Definition: HGCSD.cc:143
void update(const BeginOfJob *) override
This routine will be called when the appropriate signal arrives.
Definition: HGCSD.cc:206
Definition: HGCSD.h:26
const HGCalTBDDDConstants * hgcons_
Definition: HGCSD.h:50
bool filterHit(CaloG4Hit *, double) override
Definition: HGCSD.cc:262
step
Definition: StallMonitor.cc:83
~HGCSD() override=default
ForwardSubdetector myFwdSubdet_
Definition: HGCSD.h:56
void endEvent() override
Definition: HGCSD.cc:255
void update(const BeginOfRun *) override
This routine will be called when the appropriate signal arrives.
Definition: CaloSD.cc:750
uint32_t t_EventID_
Definition: HGCSD.h:67