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 
15 
16 #include <string>
17 #include <TTree.h>
18 
19 class DDCompactView;
20 class DDFilteredView;
21 class G4LogicalVolume;
22 class G4Material;
23 class G4Step;
24 
25 class HGCSD : public CaloSD, public Observer<const BeginOfJob *> {
26 public:
27  HGCSD(const std::string &,
28  const DDCompactView &,
30  edm::ParameterSet const &,
31  const SimTrackManager *);
32  ~HGCSD() override = default;
33 
34  uint32_t setDetUnitId(const G4Step *step) override;
35 
36 protected:
37  double getEnergyDeposit(const G4Step *) override;
38  using CaloSD::update;
39  void update(const BeginOfJob *) override;
40  void initRun() override;
41  void initEvent(const BeginOfEvent *) override;
42  void endEvent() override;
43  bool filterHit(CaloG4Hit *, double) override;
44 
45 private:
46  uint32_t setDetUnitId(ForwardSubdetector &, int, int, int, int, G4ThreeVector &);
47  bool isItinFidVolume(const G4ThreeVector &) { return true; }
48 
51  std::unique_ptr<HGCNumberingScheme> numberingScheme_;
52  std::unique_ptr<HGCMouseBite> mouseBite_;
53  double eminHit_;
55  double slopeMin_;
56  int levelT_;
58  double mouseBiteCut_;
59  std::vector<double> angles_;
60 
61  TTree *tree_;
62  uint32_t t_EventID_;
63  std::vector<int> t_Layer_, t_Parcode_;
64  std::vector<double> t_dEStep1_, t_dEStep2_, t_TrackE_;
65  std::vector<double> t_Angle_;
66 };
67 
68 #endif // HGCSD_h
std::vector< double > t_TrackE_
Definition: HGCSD.h:64
double getEnergyDeposit(const G4Step *) override
Definition: HGCSD.cc:104
std::vector< double > t_dEStep1_
Definition: HGCSD.h:64
std::vector< double > t_dEStep2_
Definition: HGCSD.h:64
int levelT_
Definition: HGCSD.h:56
bool isItinFidVolume(const G4ThreeVector &)
Definition: HGCSD.h:47
double mouseBiteCut_
Definition: HGCSD.h:58
Definition: CaloSD.h:38
std::vector< int > t_Layer_
Definition: HGCSD.h:63
std::string nameX_
Definition: HGCSD.h:49
std::vector< double > angles_
Definition: HGCSD.h:59
bool storeAllG4Hits_
Definition: HGCSD.h:57
ForwardSubdetector
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:80
bool waferRot_
Definition: HGCSD.h:57
HGCalGeometryMode::GeometryMode geom_mode_
Definition: HGCSD.h:50
double slopeMin_
Definition: HGCSD.h:55
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HGCSD.h:52
void initRun() override
Definition: HGCSD.cc:226
std::vector< int > t_Parcode_
Definition: HGCSD.h:63
std::unique_ptr< HGCNumberingScheme > numberingScheme_
Definition: HGCSD.h:51
void initEvent(const BeginOfEvent *) override
Definition: HGCSD.cc:242
double eminHit_
Definition: HGCSD.h:53
std::vector< double > t_Angle_
Definition: HGCSD.h:65
bool rejectMB_
Definition: HGCSD.h:57
HGCSD(const std::string &, const DDCompactView &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: HGCSD.cc:39
TTree * tree_
Definition: HGCSD.h:61
uint32_t setDetUnitId(const G4Step *step) override
Definition: HGCSD.cc:148
void update(const BeginOfJob *) override
This routine will be called when the appropriate signal arrives.
Definition: HGCSD.cc:204
Definition: HGCSD.h:25
bool filterHit(CaloG4Hit *, double) override
Definition: HGCSD.cc:262
step
Definition: StallMonitor.cc:94
~HGCSD() override=default
ForwardSubdetector myFwdSubdet_
Definition: HGCSD.h:54
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:460
uint32_t t_EventID_
Definition: HGCSD.h:62