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 
27 public:
28 
29  HGCSD(const std::string& , const DDCompactView &,
31  edm::ParameterSet const &, const SimTrackManager*);
32  ~HGCSD() override = default;
33 
34  uint32_t setDetUnitId(const G4Step* step) override;
35 
36 protected:
37 
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 
48  uint32_t setDetUnitId(ForwardSubdetector&, int, int,
49  int, int, G4ThreeVector &);
50  bool isItinFidVolume (const G4ThreeVector&) {return true;}
51 
54  std::unique_ptr<HGCNumberingScheme> numberingScheme_;
55  std::unique_ptr<HGCMouseBite> mouseBite_;
56  double eminHit_;
58  double slopeMin_;
59  int levelT_;
61  double mouseBiteCut_;
62  std::vector<double> angles_;
63 
64  TTree *tree_;
65  uint32_t t_EventID_;
66  std::vector<int> t_Layer_, t_Parcode_;
67  std::vector<double> t_dEStep1_, t_dEStep2_, t_TrackE_;
68  std::vector<double> t_Angle_;
69 };
70 
71 #endif // HGCSD_h
std::vector< double > t_TrackE_
Definition: HGCSD.h:67
double getEnergyDeposit(const G4Step *) override
Definition: HGCSD.cc:100
std::vector< double > t_dEStep1_
Definition: HGCSD.h:67
std::vector< double > t_dEStep2_
Definition: HGCSD.h:67
int levelT_
Definition: HGCSD.h:59
bool isItinFidVolume(const G4ThreeVector &)
Definition: HGCSD.h:50
double mouseBiteCut_
Definition: HGCSD.h:61
Definition: CaloSD.h:37
std::vector< int > t_Layer_
Definition: HGCSD.h:66
std::string nameX_
Definition: HGCSD.h:52
std::vector< double > angles_
Definition: HGCSD.h:62
bool storeAllG4Hits_
Definition: HGCSD.h:60
ForwardSubdetector
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:80
bool waferRot_
Definition: HGCSD.h:60
HGCalGeometryMode::GeometryMode geom_mode_
Definition: HGCSD.h:53
double slopeMin_
Definition: HGCSD.h:58
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HGCSD.h:55
void initRun() override
Definition: HGCSD.cc:235
std::vector< int > t_Parcode_
Definition: HGCSD.h:66
std::unique_ptr< HGCNumberingScheme > numberingScheme_
Definition: HGCSD.h:54
void initEvent(const BeginOfEvent *) override
Definition: HGCSD.cc:251
double eminHit_
Definition: HGCSD.h:56
std::vector< double > t_Angle_
Definition: HGCSD.h:68
bool rejectMB_
Definition: HGCSD.h:60
HGCSD(const std::string &, const DDCompactView &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: HGCSD.cc:39
TTree * tree_
Definition: HGCSD.h:64
uint32_t setDetUnitId(const G4Step *step) override
Definition: HGCSD.cc:146
void update(const BeginOfJob *) override
This routine will be called when the appropriate signal arrives.
Definition: HGCSD.cc:209
Definition: HGCSD.h:25
bool filterHit(CaloG4Hit *, double) override
Definition: HGCSD.cc:270
step
~HGCSD() override=default
ForwardSubdetector myFwdSubdet_
Definition: HGCSD.h:57
void endEvent() override
Definition: HGCSD.cc:264
void update(const BeginOfRun *) override
This routine will be called when the appropriate signal arrives.
Definition: CaloSD.cc:484
uint32_t t_EventID_
Definition: HGCSD.h:65