CMS 3D CMS Logo

RecHitTools.h
Go to the documentation of this file.
1 #ifndef __RecoLocalCalo_HGCalRecAlgos_RecHitTools_h__
2 #define __RecoLocalCalo_HGCalRecAlgos_RecHitTools_h__
3 
4 #include <array>
5 #include <cmath>
12 
13 class CaloGeometry;
15 class DetId;
16 
17 namespace edm {
18  class Event;
19  class EventSetup;
20 } // namespace edm
21 
22 namespace hgcal {
23  class RecHitTools {
24  public:
27 
28  void setGeometry(CaloGeometry const&);
30 
31  GlobalPoint getPosition(const DetId& id) const;
32  GlobalPoint getPositionLayer(int layer, bool nose = false) const;
33  // zside returns +/- 1
34  int zside(const DetId& id) const;
35 
36  std::float_t getSiThickness(const DetId&) const;
37  std::float_t getRadiusToSide(const DetId&) const;
38  int getSiThickIndex(const DetId&) const;
39 
40  std::pair<float, float> getScintDEtaDPhi(const DetId&) const;
41 
42  unsigned int getLayer(DetId::Detector type, bool nose = false) const;
43  unsigned int getLayer(ForwardSubdetector type) const;
44  unsigned int getLayer(const DetId&) const;
45  unsigned int getLayerWithOffset(const DetId&) const;
46  std::pair<int, int> getWafer(const DetId&) const;
47  std::pair<int, int> getCell(const DetId&) const;
48 
49  bool isHalfCell(const DetId&) const;
50 
51  bool isSilicon(const DetId&) const;
52  bool isScintillator(const DetId&) const;
53 
54  bool isOnlySilicon(const unsigned int layer) const;
55 
56  // 4-vector helper functions using GlobalPoint
57  float getEta(const GlobalPoint& position, const float& vertex_z = 0.) const;
58  float getPhi(const GlobalPoint& position) const;
59  float getPt(const GlobalPoint& position, const float& hitEnergy, const float& vertex_z = 0.) const;
60 
61  // 4-vector helper functions using DetId
62  float getEta(const DetId& id, const float& vertex_z = 0.) const;
63  float getPhi(const DetId& id) const;
64  float getPt(const DetId& id, const float& hitEnergy, const float& vertex_z = 0.) const;
65 
66  inline const CaloGeometry* getGeometry() const { return geom_; };
67  unsigned int lastLayerEE(bool nose = false) const { return (nose ? HFNoseDetId::HFNoseLayerEEmax : fhOffset_); }
68  unsigned int lastLayerFH() const { return fhLastLayer_; }
69  unsigned int firstLayerBH() const { return bhOffset_ + 1; }
70  unsigned int lastLayerBH() const { return bhLastLayer_; }
71  unsigned int lastLayer(bool nose = false) const { return (nose ? noseLastLayer_ : bhLastLayer_); }
72  unsigned int maxNumberOfWafersPerLayer(bool nose = false) const {
74  }
75  inline int getScintMaxIphi() const { return bhMaxIphi_; }
76  inline int getGeometryType() const { return geometryType_; }
77  bool maskCell(const DetId& id, int corners = 3) const;
78 
79  private:
85  };
86 } // namespace hgcal
87 
88 #endif
hgcal::RecHitTools::geom_
const CaloGeometry * geom_
Definition: RecHitTools.h:80
hgcal::RecHitTools
Definition: RecHitTools.h:23
hgcal::RecHitTools::getSiThickness
std::float_t getSiThickness(const DetId &) const
Definition: RecHitTools.cc:176
hgcal::RecHitTools::geometryType_
int geometryType_
Definition: RecHitTools.h:83
hgcal::RecHitTools::getRadiusToSide
std::float_t getRadiusToSide(const DetId &) const
Definition: RecHitTools.cc:232
hgcal::RecHitTools::getSiThickIndex
int getSiThickIndex(const DetId &) const
Definition: RecHitTools.cc:202
hgcal::RecHitTools::isHalfCell
bool isHalfCell(const DetId &) const
Definition: RecHitTools.cc:412
hgcal::RecHitTools::maxNumberOfWafersPerLayer
unsigned int maxNumberOfWafersPerLayer(bool nose=false) const
Definition: RecHitTools.h:72
ForwardSubdetector
ForwardSubdetector
Definition: ForwardSubdetector.h:4
edm
HLT enums.
Definition: AlignableModifier.h:19
hgcal::RecHitTools::fhLastLayer_
unsigned int fhLastLayer_
Definition: RecHitTools.h:81
hgcal::RecHitTools::getCell
std::pair< int, int > getCell(const DetId &) const
Definition: RecHitTools.cc:394
HFNoseDetId.h
hgcal::RecHitTools::maxNumberOfWafersNose_
unsigned int maxNumberOfWafersNose_
Definition: RecHitTools.h:82
hgcal::RecHitTools::bhOffset_
unsigned int bhOffset_
Definition: RecHitTools.h:81
hgcal::RecHitTools::getGeometryType
int getGeometryType() const
Definition: RecHitTools.h:76
hgcal::RecHitTools::getScintDEtaDPhi
std::pair< float, float > getScintDEtaDPhi(const DetId &) const
Definition: RecHitTools.cc:222
hgcal
Definition: EgammaPCAHelper.h:31
ForwardSubdetector.h
DetId
Definition: DetId.h:17
hgcal::RecHitTools::lastLayerFH
unsigned int lastLayerFH() const
Definition: RecHitTools.h:68
CaloGeometry
Definition: CaloGeometry.h:21
hgcal::RecHitTools::getPt
float getPt(const GlobalPoint &position, const float &hitEnergy, const float &vertex_z=0.) const
Definition: RecHitTools.cc:460
hgcal::RecHitTools::RecHitTools
RecHitTools()
Definition: RecHitTools.h:25
Event
Point3DBase< float, GlobalTag >
hgcal::RecHitTools::getWafer
std::pair< int, int > getWafer(const DetId &) const
Definition: RecHitTools.cc:376
CaloGeometryRecord.h
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
hgcal::RecHitTools::lastLayerBH
unsigned int lastLayerBH() const
Definition: RecHitTools.h:70
hgcal::RecHitTools::getPhi
float getPhi(const GlobalPoint &position) const
Definition: RecHitTools.cc:449
type
type
Definition: SiPixelVCal_PayloadInspector.cc:39
hgcal::RecHitTools::getLayerWithOffset
unsigned int getLayerWithOffset(const DetId &) const
Definition: RecHitTools.cc:362
hgcal::RecHitTools::isSilicon
bool isSilicon(const DetId &) const
Definition: RecHitTools.cc:425
hgcal::RecHitTools::lastLayerEE
unsigned int lastLayerEE(bool nose=false) const
Definition: RecHitTools.h:67
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
hgcal::RecHitTools::maxNumberOfWafersPerLayer_
unsigned int maxNumberOfWafersPerLayer_
Definition: RecHitTools.h:82
DetId::Detector
Detector
Definition: DetId.h:24
hgcal::RecHitTools::zside
int zside(const DetId &id) const
Definition: RecHitTools.cc:160
hgcal::RecHitTools::~RecHitTools
~RecHitTools()
Definition: RecHitTools.h:26
hgcal::RecHitTools::getPositionLayer
GlobalPoint getPositionLayer(int layer, bool nose=false) const
Definition: RecHitTools.cc:138
hgcal::RecHitTools::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
Definition: RecHitTools.cc:116
HFNoseDetId::HFNoseLayerEEmax
static const int HFNoseLayerEEmax
Definition: HFNoseDetId.h:29
hgcal::RecHitTools::lastLayer
unsigned int lastLayer(bool nose=false) const
Definition: RecHitTools.h:71
hgcal::RecHitTools::getLayer
unsigned int getLayer(DetId::Detector type, bool nose=false) const
Definition: RecHitTools.cc:304
hgcal::RecHitTools::firstLayerBH
unsigned int firstLayerBH() const
Definition: RecHitTools.h:69
hgcal::RecHitTools::getEta
float getEta(const GlobalPoint &position, const float &vertex_z=0.) const
Definition: RecHitTools.cc:438
hgcal::RecHitTools::fhOffset_
unsigned int fhOffset_
Definition: RecHitTools.h:81
DetId.h
hgcal::RecHitTools::setGeometry
void setGeometry(CaloGeometry const &)
Definition: RecHitTools.cc:68
hgcal::RecHitTools::maskCell
bool maskCell(const DetId &id, int corners=3) const
Definition: RecHitTools.cc:473
hgcal::RecHitTools::noseLastLayer_
unsigned int noseLastLayer_
Definition: RecHitTools.h:81
CaloGeometry.h
hgcal::RecHitTools::isScintillator
bool isScintillator(const DetId &) const
Definition: RecHitTools.cc:430
hgcal::RecHitTools::isOnlySilicon
bool isOnlySilicon(const unsigned int layer) const
Definition: RecHitTools.cc:432
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
hgcal::RecHitTools::bhMaxIphi_
int bhMaxIphi_
Definition: RecHitTools.h:84
EventSetup
hgcal::RecHitTools::bhLastLayer_
unsigned int bhLastLayer_
Definition: RecHitTools.h:81
hgcal::RecHitTools::getPosition
GlobalPoint getPosition(const DetId &id) const
Definition: RecHitTools.cc:126
GlobalPoint.h
hgcal::RecHitTools::getScintMaxIphi
int getScintMaxIphi() const
Definition: RecHitTools.h:75
hgcal::RecHitTools::getGeometry
const CaloGeometry * getGeometry() const
Definition: RecHitTools.h:66