1 #ifndef GEOMETRY_CALOTOPOLOGY_HCALTOPOLOGY_H 2 #define GEOMETRY_CALOTOPOLOGY_HCALTOPOLOGY_H 1 38 int exclude(
HcalSubdetector subdet,
int ieta1,
int ieta2,
int iphi1,
int iphi2,
int depth1=1,
int depth2=4);
47 unsigned int ncells()
const override;
62 std::vector<DetId>
east(
const DetId&
id)
const override;
64 std::vector<DetId>
west(
const DetId&
id)
const override;
66 std::vector<DetId>
north(
const DetId&
id)
const override;
68 std::vector<DetId>
south(
const DetId&
id)
const override;
70 std::vector<DetId>
up(
const DetId&
id)
const override;
72 std::vector<DetId>
down(
const DetId&
id)
const override;
105 int iphi,
int zside,
int & nDepthBins,
106 int & startingBin)
const;
119 std::vector<int> & readoutDepths,
120 const bool flag=
false)
const;
122 const std::vector<int> & readoutDepths,
128 const unsigned depth,
129 const bool flag=
false)
const;
166 std::vector<HcalDetId>& ids)
const {
DetId denseId2detId(unsigned int) const override
return a linear packed id
unsigned int getCALIBSize() const
unsigned int getHFSize() const
std::vector< int > unitPhiHF
const HcalDDDRecConstants * dddConstants() const
void getDepthSegmentation(const unsigned ring, std::vector< int > &readoutDepths, const bool flag=false) const
int topoVersion() const override
return a version which identifies the given topology
int decIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
unsigned int numberOfShapes_
unsigned int detId2denseIdPreLS1(const DetId &id) const
unsigned int getHOSize() const
std::vector< double > dPhiTableHF
void excludeSubdetector(HcalSubdetector subdet)
std::vector< HcalDDDRecConstants::HcalEtaBin > etaBinsHB_
int phiBin(HcalSubdetector subdet, int etaRing, double phi) const
int getPhiZOne(std::vector< std::pair< int, int > > &phiz) const
std::vector< int > unitPhi
bool valid(const DetId &id) const override
std::vector< DetId > up(const DetId &id) const override
unsigned int detId2denseId(const DetId &id) const override
return a linear packed id
HcalDetId mergedDepthDetId(const HcalDetId &id) const
bool validDetId(HcalSubdetector subdet, int ieta, int iphi, int depth) const
unsigned int detId2denseIdHT(const DetId &id) const
return a linear packed id from HT
unsigned int detId2denseIdHF(const DetId &id) const
return a linear packed id from HF
void exclude(const HcalDetId &id)
HcalTopologyMode::TriggerMode triggerMode_
int nPhiBins(int etaRing) const
how many phi segments in this ring
int incIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
bool decrementDepth(HcalDetId &id) const
unsigned int detId2denseIdHB(const DetId &id) const
return a linear packed id from HB
bool decIPhi(const HcalDetId &id, HcalDetId &neighbor) const
bool validHcal(const HcalDetId &id) const
bool neighbor(int endcap, int sector, int SectIndex, int id, int sub, int station)
std::vector< HcalDDDRecConstants::HcalEtaBin > etaBinsHE_
HcalTopologyMode::TriggerMode triggerMode() const
bool getMergePositionFlag() const
HcalTopologyMode::Mode mode() const
HcalDetId mergedDepthDetId(const HcalDetId &id) const
int singlePhiBins() const
bool isExcluded(const HcalDetId &id) const
void depthBinInformation(HcalSubdetector subdet, int etaRing, int iphi, int zside, int &nDepthBins, int &startingBin) const
finds the number of depth bins and which is the number to start with
std::pair< int, int > segmentBoundaries(const unsigned ring, const unsigned depth, const bool flag=false) const
bool incIPhi(const HcalDetId &id, HcalDetId &neighbor) const
bool validRaw(const HcalDetId &id) const
std::vector< DetId > south(const DetId &id) const override
int decAIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
unsigned int getNumberOfShapes() const
HcalDetId idFront(const HcalDetId &id) const
int maxDepth(HcalSubdetector subdet) const
HcalTopologyMode::Mode mode_
HcalTopology(const HcalDDDRecConstants *hcons, const bool mergePosition=false)
int etaRing(HcalSubdetector subdet, double eta) const
eta and phi index from eta, phi values
int firstHETripleDepthRing() const
static std::string producerTag()
unsigned int getHTSize() const
int doublePhiBins() const
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const
std::vector< double > etaTableHF
int firstHEDoublePhiRing() const
SegmentationMap depthSegmentation_
SegmentationMap depthSegmentationOne_
std::vector< double > etaTable
HcalDetId idBack(const HcalDetId &id) const
bool validDetIdPreLS1(const HcalDetId &id) const
bool incrementDepth(HcalDetId &id) const
std::vector< double > phioff
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const
int firstHFQuadPhiRing() const
unsigned int getHESize() const
std::vector< double > dPhiTable
std::vector< DetId > west(const DetId &id) const override
std::vector< DetId > north(const DetId &id) const override
std::pair< double, double > etaRange(HcalSubdetector subdet, int ieta) const
HcalDetId idBack(const HcalDetId &id) const
std::vector< DetId > down(const DetId &id) const override
int firstHETripleDepthRing_
unsigned int detId2denseIdHO(const DetId &id) const
return a linear packed id from HO
std::vector< HcalDetId > exclusionList_
unsigned int ncells() const override
return a count of valid cells (for dense indexing use)
unsigned int detId2denseIdHE(const DetId &id) const
return a linear packed id from HE
HcalDetId idFront(const HcalDetId &id) const
int firstHEQuadPhiRing() const
void setDepthSegmentation(const unsigned ring, const std::vector< int > &readoutDepths, const bool flag)
bool withSpecialRBXHBHE() const
bool withSpecialRBXHBHE() const
unsigned int getHBSize() const
int incAIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
unsigned int detId2denseIdCALIB(const DetId &id) const
return a linear packed id from CALIB
std::vector< DetId > east(const DetId &id) const override
double etaMax(HcalSubdetector subdet) const
int firstHEDoublePhiRing_
const HcalDDDRecConstants * hcons_
std::map< unsigned, std::vector< int > > SegmentationMap
int getPhiZOne(std::vector< std::pair< int, int > > &phiz) const
bool validHT(const HcalTrigTowerDetId &id) const