#include <HcalHPDRBXMap.h>
Static Public Member Functions | |
static int | indexHPD (const HcalDetId &) |
static void | indexHPDfromEtaPhi (int ieta, int iphi, std::vector< int > &hpdindices) |
static int | indexRBX (const HcalDetId &) |
static void | indexRBXfromEtaPhi (int ieta, int iphi, std::vector< int > &rbxindices) |
static int | indexRBXfromHPD (int hpdindex) |
static void | indicesHPDfromRBX (int rbxindex, boost::array< int, NUM_HPDS_PER_RBX > &hpdindices) |
static int | iphihiHPD (int index) |
static int | iphihiRBX (int index) |
static int | iphiloHPD (int index) |
static int | iphiloRBX (int index) |
static bool | isValid (int ieta, int iphi) |
static bool | isValid (const HcalDetId &) |
static bool | isValidHPD (int index) |
static bool | isValidRBX (int index) |
static int | numHPDs (void) |
static int | numHPDsPerRBX (void) |
static int | numHPDsPerSubdet (void) |
static int | numRBXs (void) |
static int | numRBXsPerSubdet (void) |
static HcalSubdetector | subdetHPD (int index) |
static HcalSubdetector | subdetRBX (int index) |
static int | zsideHPD (int index) |
static int | zsideRBX (int index) |
Static Public Attributes | |
static const int | NUM_HPDS = 288 |
static const int | NUM_HPDS_PER_RBX = 4 |
static const int | NUM_HPDS_PER_SUBDET = 72 |
static const int | NUM_RBXS = 72 |
static const int | NUM_RBXS_PER_SUBDET = 18 |
Private Member Functions | |
HcalHPDRBXMap () | |
~HcalHPDRBXMap () | |
Static Private Attributes | |
static HcalTopology | theTopology_ |
Definition at line 24 of file HcalHPDRBXMap.h.
HcalHPDRBXMap::HcalHPDRBXMap | ( | ) | [private] |
Definition at line 19 of file HcalHPDRBXMap.cc.
{}
HcalHPDRBXMap::~HcalHPDRBXMap | ( | ) | [private] |
Definition at line 20 of file HcalHPDRBXMap.cc.
{}
int HcalHPDRBXMap::indexHPD | ( | const HcalDetId & | id | ) | [static] |
Definition at line 193 of file HcalHPDRBXMap.cc.
References abs, Exception, HcalBarrel, HcalEndcap, getHLTprescales::index, isValid(), edm::errors::LogicError, and NUM_HPDS_PER_SUBDET.
Referenced by HBHEIsolatedNoiseReflagger::DumpHBHEHitMap(), reco::HcalNoiseRBXArray::findHPD(), HBHEHitMapOrganizer::getHPDNeighbors(), HBHEHitMapOrganizer::HBHEHitMapOrganizer(), indexHPDfromEtaPhi(), and indexRBX().
{ // return bad index if subdetector is invalid if(!isValid(id)) { throw edm::Exception(edm::errors::LogicError) << " HcalDetId " << id << " is invalid in HcalHPDRBXMap::indexHPD().\n"; } // specify the readout module (subdet and number) int subdet=-1; if(id.subdet()==HcalBarrel && id.zside()==1) subdet=0; if(id.subdet()==HcalBarrel && id.zside()==-1) subdet=1; if(id.subdet()==HcalEndcap && id.zside()==1) subdet=2; if(id.subdet()==HcalEndcap && id.zside()==-1) subdet=3; int iphi=id.iphi(); int absieta=abs(id.ieta()); // adjust for offset between iphi and the HPD index // index-->iphi // 0-->71, 1-->72, 2-->1, 3-->2, 4-->3, ..., 70-->69, 71-->70 int index=iphi+1; if(index>=NUM_HPDS_PER_SUBDET) index-=NUM_HPDS_PER_SUBDET; index+=subdet*NUM_HPDS_PER_SUBDET; // modify the index in the HE if((subdet==2 || subdet==3) && absieta>=21 && absieta<=29) { if(iphi%4==3 && absieta%2==1 && absieta!=29) index++; if(iphi%4==3 && absieta==29 && id.depth()==2) index++; if(iphi%4==1 && absieta%2==0 && absieta!=29) index++; if(iphi%4==1 && absieta==29 && id.depth()==1) index++; } return index; }
void HcalHPDRBXMap::indexHPDfromEtaPhi | ( | int | ieta, |
int | iphi, | ||
std::vector< int > & | hpdindices | ||
) | [static] |
Definition at line 233 of file HcalHPDRBXMap.cc.
References abs, HcalBarrel, HcalEndcap, and indexHPD().
Referenced by reco::HcalNoiseRBXArray::findHPD().
{ // clear the vector hpdindices.clear(); int absieta=abs(ieta); if(absieta<=15) { // HB only, depth doesn't matter hpdindices.push_back(indexHPD(HcalDetId(HcalBarrel, ieta, iphi, 1))); } else if(absieta==16) { // HB and HE, depth doesn't matter hpdindices.push_back(indexHPD(HcalDetId(HcalBarrel, ieta, iphi, 1))); hpdindices.push_back(indexHPD(HcalDetId(HcalEndcap, ieta, iphi, 3))); } else if(absieta<29) { // HE only, depth doesn't matter hpdindices.push_back(indexHPD(HcalDetId(HcalEndcap, ieta, iphi, 1))); } else { // HE only, but depth matters hpdindices.push_back(indexHPD(HcalDetId(HcalEndcap, ieta, iphi, 1))); hpdindices.push_back(indexHPD(HcalDetId(HcalEndcap, ieta, iphi, 2))); } return; }
int HcalHPDRBXMap::indexRBX | ( | const HcalDetId & | id | ) | [static] |
Definition at line 228 of file HcalHPDRBXMap.cc.
References indexHPD(), and indexRBXfromHPD().
Referenced by HBHEIsolatedNoiseReflagger::DumpHBHEHitMap(), reco::HcalNoiseRBXArray::findRBX(), HBHEHitMapOrganizer::HBHEHitMapOrganizer(), and indexRBXfromEtaPhi().
{ return indexRBXfromHPD(indexHPD(id)); }
void HcalHPDRBXMap::indexRBXfromEtaPhi | ( | int | ieta, |
int | iphi, | ||
std::vector< int > & | rbxindices | ||
) | [static] |
Definition at line 254 of file HcalHPDRBXMap.cc.
References abs, HcalBarrel, HcalEndcap, and indexRBX().
Referenced by reco::HcalNoiseRBXArray::findRBX().
{ // clear the vector rbxindices.clear(); int absieta=abs(ieta); if(absieta<=15) { // HB only rbxindices.push_back(indexRBX(HcalDetId(HcalBarrel, ieta, iphi, 1))); } else if(absieta==16) { // HB and HE rbxindices.push_back(indexRBX(HcalDetId(HcalBarrel, ieta, iphi, 1))); rbxindices.push_back(indexRBX(HcalDetId(HcalEndcap, ieta, iphi, 3))); } else { // HE only rbxindices.push_back(indexRBX(HcalDetId(HcalEndcap, ieta, iphi, 1))); } return; }
int HcalHPDRBXMap::indexRBXfromHPD | ( | int | hpdindex | ) | [static] |
Definition at line 182 of file HcalHPDRBXMap.cc.
References Exception, isValidHPD(), edm::errors::LogicError, and NUM_HPDS_PER_RBX.
Referenced by reco::HcalNoiseRBXArray::findHPD(), and indexRBX().
{ if(!isValidHPD(hpdindex)) throw edm::Exception(edm::errors::LogicError) << " HPD index " << hpdindex << " is invalid in HcalHPDRBXMap::indexRBX().\n"; return hpdindex/NUM_HPDS_PER_RBX; }
void HcalHPDRBXMap::indicesHPDfromRBX | ( | int | rbxindex, |
boost::array< int, NUM_HPDS_PER_RBX > & | hpdindices | ||
) | [static] |
Definition at line 169 of file HcalHPDRBXMap.cc.
References Exception, i, isValidRBX(), edm::errors::LogicError, and NUM_HPDS_PER_RBX.
Referenced by reco::HcalNoiseRBXArray::HcalNoiseRBXArray(), iphihiRBX(), and iphiloRBX().
{ if(!isValidRBX(rbxindex)) throw edm::Exception(edm::errors::LogicError) << " RBX index " << rbxindex << " is invalid in HcalHPDRBXMap::indicesHPD().\n"; for(unsigned int i=0; i<hpdindices.size(); i++) hpdindices[i]=rbxindex*NUM_HPDS_PER_RBX+i; return; }
int HcalHPDRBXMap::iphihiHPD | ( | int | index | ) | [static] |
Definition at line 132 of file HcalHPDRBXMap.cc.
References Exception, HcalBarrel, isValidHPD(), edm::errors::LogicError, NUM_HPDS_PER_SUBDET, and subdetHPD().
Referenced by iphihiRBX().
{ if(!isValidHPD(index)) throw edm::Exception(edm::errors::LogicError) << " HPD index " << index << " is invalid in HcalHPDRBXMap::iphihiHPD().\n"; // adjust for offset between iphi and the HPD index // index-->iphi // 0-->71, 1-->72, 2-->1, 3-->2, 4-->3, ..., 70-->69, 71-->70 int iphi=index%NUM_HPDS_PER_SUBDET-1; if(iphi<=0) iphi+=NUM_HPDS_PER_SUBDET; // HB if(subdetHPD(index)==HcalBarrel) return iphi; // HE if(iphi%2==0) return iphi; else return iphi+1; }
int HcalHPDRBXMap::iphihiRBX | ( | int | index | ) | [static] |
Definition at line 153 of file HcalHPDRBXMap.cc.
References Exception, indicesHPDfromRBX(), iphihiHPD(), isValidRBX(), edm::errors::LogicError, and NUM_HPDS_PER_RBX.
{ if(!isValidRBX(index)) throw edm::Exception(edm::errors::LogicError) << " RBX index " << index << " is invalid in HcalHPDRBXMap::iphihiRBX().\n"; // get the list of HPD indices in the RBX boost::array<int, NUM_HPDS_PER_RBX> arr; indicesHPDfromRBX(index, arr); // return the highest iphi of the last HPD return iphihiHPD(arr[NUM_HPDS_PER_RBX-1]); }
int HcalHPDRBXMap::iphiloHPD | ( | int | index | ) | [static] |
Definition at line 96 of file HcalHPDRBXMap.cc.
References Exception, HcalBarrel, isValidHPD(), edm::errors::LogicError, NUM_HPDS_PER_SUBDET, and subdetHPD().
Referenced by iphiloRBX().
{ if(!isValidHPD(index)) throw edm::Exception(edm::errors::LogicError) << " HPD index " << index << " is invalid in HcalHPDRBXMap::iphiloHPD().\n"; // adjust for offset between iphi and the HPD index // index-->iphi // 0-->71, 1-->72, 2-->1, 3-->2, 4-->3, ..., 70-->69, 71-->70 int iphi=index%NUM_HPDS_PER_SUBDET-1; if(iphi<=0) iphi+=NUM_HPDS_PER_SUBDET; // HB if(subdetHPD(index)==HcalBarrel) return iphi; // HE if(iphi%2==0) return iphi-1; else return iphi; }
int HcalHPDRBXMap::iphiloRBX | ( | int | index | ) | [static] |
Definition at line 117 of file HcalHPDRBXMap.cc.
References Exception, indicesHPDfromRBX(), iphiloHPD(), isValidRBX(), and edm::errors::LogicError.
{ if(!isValidRBX(index)) throw edm::Exception(edm::errors::LogicError) << " RBX index " << index << " is invalid in HcalHPDRBXMap::iphiloRBX().\n"; // get the list of HPD indices in the RBX boost::array<int, NUM_HPDS_PER_RBX> arr; indicesHPDfromRBX(index, arr); // return the lowest iphi of the first HPD return iphiloHPD(arr[0]); }
bool HcalHPDRBXMap::isValid | ( | int | ieta, |
int | iphi | ||
) | [static] |
Definition at line 41 of file HcalHPDRBXMap.cc.
References abs.
{ int absieta=abs(ieta); if(absieta<=29 && absieta>=1 && iphi>=1 && iphi<=72) { if(absieta<=20) return true; if(absieta>=21 && iphi%2==1) return true; } return false; }
bool HcalHPDRBXMap::isValid | ( | const HcalDetId & | id | ) | [static] |
Definition at line 34 of file HcalHPDRBXMap.cc.
References HcalBarrel, HcalEndcap, theTopology_, and HcalTopology::valid().
Referenced by reco::HcalNoiseRBXArray::findHPD(), reco::HcalNoiseRBXArray::findRBX(), and indexHPD().
{ if(id.subdet()!=HcalBarrel && id.subdet()!=HcalEndcap) return false; if(theTopology_.valid(id)) return true; else return false; }
bool HcalHPDRBXMap::isValidHPD | ( | int | index | ) | [static] |
Definition at line 23 of file HcalHPDRBXMap.cc.
References NUM_HPDS.
Referenced by reco::HcalNoiseRBXArray::findHPD(), indexRBXfromHPD(), iphihiHPD(), iphiloHPD(), subdetHPD(), and zsideHPD().
bool HcalHPDRBXMap::isValidRBX | ( | int | index | ) | [static] |
Definition at line 29 of file HcalHPDRBXMap.cc.
References NUM_RBXS.
Referenced by reco::HcalNoiseRBXArray::findRBX(), indicesHPDfromRBX(), iphihiRBX(), iphiloRBX(), subdetRBX(), and zsideRBX().
static int HcalHPDRBXMap::numHPDs | ( | void | ) | [inline, static] |
static int HcalHPDRBXMap::numHPDsPerRBX | ( | void | ) | [inline, static] |
Definition at line 42 of file HcalHPDRBXMap.h.
References NUM_HPDS_PER_RBX.
{ return NUM_HPDS_PER_RBX; }
static int HcalHPDRBXMap::numHPDsPerSubdet | ( | void | ) | [inline, static] |
Definition at line 41 of file HcalHPDRBXMap.h.
References NUM_HPDS_PER_SUBDET.
{ return NUM_HPDS_PER_SUBDET; }
static int HcalHPDRBXMap::numRBXs | ( | void | ) | [inline, static] |
static int HcalHPDRBXMap::numRBXsPerSubdet | ( | void | ) | [inline, static] |
Definition at line 44 of file HcalHPDRBXMap.h.
References NUM_RBXS_PER_SUBDET.
{ return NUM_RBXS_PER_SUBDET; }
HcalSubdetector HcalHPDRBXMap::subdetHPD | ( | int | index | ) | [static] |
Definition at line 52 of file HcalHPDRBXMap.cc.
References Exception, HcalBarrel, HcalEndcap, isValidHPD(), edm::errors::LogicError, and NUM_HPDS_PER_SUBDET.
Referenced by iphihiHPD(), and iphiloHPD().
{ if(!isValidHPD(index)) throw edm::Exception(edm::errors::LogicError) << " HPD index " << index << " is invalid in HcalHPDRBXMap::subdetHPD().\n"; if(index/NUM_HPDS_PER_SUBDET<=1) return HcalBarrel; else return HcalEndcap; }
HcalSubdetector HcalHPDRBXMap::subdetRBX | ( | int | index | ) | [static] |
Definition at line 63 of file HcalHPDRBXMap.cc.
References Exception, HcalBarrel, HcalEndcap, isValidRBX(), edm::errors::LogicError, and NUM_RBXS_PER_SUBDET.
{ if(!isValidRBX(index)) throw edm::Exception(edm::errors::LogicError) << " RBX index " << index << " is invalid in HcalHPDRBXMap::subdetRBX().\n"; if(index/NUM_RBXS_PER_SUBDET<=1) return HcalBarrel; else return HcalEndcap; }
int HcalHPDRBXMap::zsideHPD | ( | int | index | ) | [static] |
Definition at line 74 of file HcalHPDRBXMap.cc.
References Exception, isValidHPD(), edm::errors::LogicError, and NUM_HPDS_PER_SUBDET.
{ if(!isValidHPD(index)) throw edm::Exception(edm::errors::LogicError) << " HPD index " << index << " is invalid in HcalHPDRBXMap::zsideHPD().\n"; if(index/NUM_HPDS_PER_SUBDET==0 || index/NUM_HPDS_PER_SUBDET==2) return 1; else return -1; }
int HcalHPDRBXMap::zsideRBX | ( | int | index | ) | [static] |
Definition at line 85 of file HcalHPDRBXMap.cc.
References Exception, isValidRBX(), edm::errors::LogicError, and NUM_RBXS_PER_SUBDET.
{ if(!isValidRBX(index)) throw edm::Exception(edm::errors::LogicError) << " RBX index " << index << " is invalid in HcalHPDRBXMap::zsideRBX().\n"; if(index/NUM_RBXS_PER_SUBDET==0 || index/NUM_RBXS_PER_SUBDET==2) return 1; else return -1; }
const int HcalHPDRBXMap::NUM_HPDS = 288 [static] |
Definition at line 29 of file HcalHPDRBXMap.h.
Referenced by isValidHPD(), and numHPDs().
const int HcalHPDRBXMap::NUM_HPDS_PER_RBX = 4 [static] |
Definition at line 33 of file HcalHPDRBXMap.h.
Referenced by reco::HcalNoiseRBXArray::HcalNoiseRBXArray(), indexRBXfromHPD(), indicesHPDfromRBX(), iphihiRBX(), and numHPDsPerRBX().
const int HcalHPDRBXMap::NUM_HPDS_PER_SUBDET = 72 [static] |
Definition at line 31 of file HcalHPDRBXMap.h.
Referenced by indexHPD(), iphihiHPD(), iphiloHPD(), numHPDsPerSubdet(), subdetHPD(), and zsideHPD().
const int HcalHPDRBXMap::NUM_RBXS = 72 [static] |
Definition at line 35 of file HcalHPDRBXMap.h.
Referenced by isValidRBX(), and numRBXs().
const int HcalHPDRBXMap::NUM_RBXS_PER_SUBDET = 18 [static] |
Definition at line 37 of file HcalHPDRBXMap.h.
Referenced by numRBXsPerSubdet(), subdetRBX(), and zsideRBX().
HcalTopology HcalHPDRBXMap::theTopology_ [static, private] |
Definition at line 93 of file HcalHPDRBXMap.h.
Referenced by isValid().