1 #ifndef GEOMETRY_CALOTOPOLOGY_HCALTOPOLOGY_H
2 #define GEOMETRY_CALOTOPOLOGY_HCALTOPOLOGY_H 1
37 int exclude(
HcalSubdetector subdet,
int ieta1,
int ieta2,
int iphi1,
int iphi2,
int depth1=1,
int depth2=4);
45 virtual unsigned int ncells()
const;
54 virtual std::vector<DetId>
east(
const DetId&
id)
const;
56 virtual std::vector<DetId>
west(
const DetId&
id)
const;
58 virtual std::vector<DetId>
north(
const DetId&
id)
const;
60 virtual std::vector<DetId>
south(
const DetId&
id)
const;
62 virtual std::vector<DetId>
up(
const DetId&
id)
const;
64 virtual std::vector<DetId>
down(
const DetId&
id)
const;
94 int & nDepthBins,
int & startingBin)
const;
unsigned int getCALIBSize() const
unsigned int getHFSize() const
int decIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
unsigned int detId2denseIdPreLS1(const DetId &id) const
virtual unsigned int detId2denseId(const DetId &id) const
return a linear packed id
unsigned int getHOSize() const
void excludeSubdetector(HcalSubdetector subdet)
virtual std::vector< DetId > down(const DetId &id) const
virtual std::vector< DetId > south(const DetId &id) 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
const int firstHETripleDepthRing_
const int firstHFQuadPhiRing_
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
HcalTopologyMode::TriggerMode triggerMode() const
HcalTopologyMode::Mode mode() const
virtual int topoVersion() const
return a version which identifies the given topology
int singlePhiBins() const
bool isExcluded(const HcalDetId &id) const
bool incIPhi(const HcalDetId &id, HcalDetId &neighbor) const
HcalTopology(HcalTopologyMode::Mode mode, int maxDepthHB, int maxDepthHE, HcalTopologyMode::TriggerMode tmode=HcalTopologyMode::tm_LHC_PreLS1)
bool validRaw(const HcalDetId &id) const
int decAIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
unsigned int getNumberOfShapes() const
HcalTopologyMode::Mode mode_
void setDepthSegmentation(unsigned ring, const std::vector< int > &readoutDepths)
int firstHETripleDepthRing() const
unsigned int getHTSize() const
virtual std::vector< DetId > west(const DetId &id) const
int doublePhiBins() const
void depthBinInformation(HcalSubdetector subdet, int etaRing, int &nDepthBins, int &startingBin) const
finds the number of depth bins and which is the number to start with
const int firstHEDoublePhiRing_
virtual DetId denseId2detId(unsigned int) const
return a linear packed id
int firstHEDoublePhiRing() const
SegmentationMap depthSegmentation_
bool validDetIdPreLS1(const HcalDetId &id) const
bool incrementDepth(HcalDetId &id) const
std::pair< int, int > segmentBoundaries(unsigned ring, unsigned depth) const
void getDepthSegmentation(unsigned ring, std::vector< int > &readoutDepths) const
virtual std::vector< DetId > north(const DetId &id) const
virtual bool valid(const DetId &id) const
int firstHFQuadPhiRing() const
unsigned int getHESize() const
const unsigned int numberOfShapes_
virtual std::vector< DetId > up(const DetId &id) const
unsigned int detId2denseIdHO(const DetId &id) const
return a linear packed id from HO
std::vector< HcalDetId > exclusionList_
unsigned int detId2denseIdHE(const DetId &id) const
return a linear packed id from HE
virtual std::vector< DetId > east(const DetId &id) 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
virtual unsigned int ncells() const
return a count of valid cells (for dense indexing use)
std::map< unsigned, std::vector< int > > SegmentationMap