1 #ifndef ECALELECTRONICSMAPPING_H 2 #define ECALELECTRONICSMAPPING_H 1 11 #include <boost/multi_index_container.hpp> 12 #include <boost/multi_index/member.hpp> 13 #include <boost/multi_index/ordered_index.hpp> 14 #include <boost/tuple/tuple.hpp> 15 #include <boost/multi_index/mem_fun.hpp> 16 #include <boost/multi_index/composite_key.hpp> 100 std::vector<EcalScDetId>
getEcalScDetId(
int DCCid,
int DCC_Channel,
bool ignoreSingleCrystal =
true)
const;
224 typedef boost::multi_index::multi_index_container<
226 boost::multi_index::indexed_by<
230 boost::multi_index::ordered_unique<boost::multi_index::member<MapItem, DetId, &MapItem::cell> >,
231 boost::multi_index::ordered_unique<boost::multi_index::member<MapItem, EcalElectronicsId, &MapItem::elid> >,
232 boost::multi_index::ordered_unique<
233 boost::multi_index::member<MapItem, EcalTriggerElectronicsId, &MapItem::trelid> >,
234 boost::multi_index::ordered_non_unique<boost::multi_index::const_mem_fun<MapItem, int, &MapItem::dccId> >,
235 boost::multi_index::ordered_non_unique<
236 boost::multi_index::composite_key<MapItem,
237 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::dccId>,
238 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::towerId> > >,
239 boost::multi_index::ordered_non_unique<
240 boost::multi_index::composite_key<MapItem,
241 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::dccId>,
242 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::towerId>,
243 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::stripId> > >,
244 boost::multi_index::ordered_non_unique<boost::multi_index::const_mem_fun<MapItem, int, &MapItem::tccId> >,
245 boost::multi_index::ordered_non_unique<
246 boost::multi_index::composite_key<MapItem,
247 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::tccId>,
248 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::ttId> > >,
249 boost::multi_index::ordered_non_unique<boost::multi_index::composite_key<
251 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::tccId>,
252 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::ttId>,
253 boost::multi_index::const_mem_fun<MapItem, int, &MapItem::pseudoStripId> > > > >
static const int MIN_DCCID_EBP
static const int MAX_DCCID_EBM
static const int MAX_TCCID_EEP
static const int TCCID_PHI0_EEM_IN
static const int DCCID_PHI0_EBP
int pseudoStripId() const
get the tower id
std::pair< int, int > getDCCandSC(EcalScDetId id) const
std::vector< DetId > pseudoStripConstituents(int tccId, int tt, int pseudostrip) const
Get the constituent detids for this dccId.
std::map< int, int > LaserMonitoringMap_EB
int pseudoStripId() const
int GetFED(double eta, double phi) const
static const int MIN_LM_EBM
static const int MIN_TCCID
static const int MIN_LM_EEM
std::vector< int > GetListofFEDs(const RectangularEtaPhiRegion ®ion) const
MapItem(const DetId &acell, const EcalElectronicsId &aelid, const EcalTriggerElectronicsId &atrelid)
Ecal readout channel identification [32:20] Unused (so far) [19:13] DCC id [12:6] tower [5:3] strip [...
static const int MIN_TCCID_EEP
static const int MIN_TCCID_EBP
static const int TCCID_PHI0_EEP_IN
int DCCid(const EBDetId &id) const
returns the DCC of an EBDetId
static const int MAX_TCCID
int dccId() const
get the DCC (Ecal Local DCC value not global one) id
int TCCid(const EBDetId &id) const
returns the TCCid of an EBDetId
static const int MIN_TCCID
static const int MIN_DCCID
static const int MIN_TCCID_EEM
static const int MAX_TCCID
static const int TCCID_PHI0_EEM_OUT
static const int kTowersInPhi
static const int kEBTowersInPhi
static const int kEETowersInEtaPerOuterTCC
static const int MIN_DCCID_EEM
EcalTriggerElectronicsId getTriggerElectronicsId(const DetId &id) const
Get the trigger electronics id for this det id.
static constexpr int kEETowersInEta
int zside(int dcctcc, int mode) const
static const int MAX_DCCID
EcalSubdetector subdet(int dccid, int mode) const
std::vector< DetId > dccConstituents(int dccId) const
Get the constituent detids for this dccId.
std::vector< DetId > tccConstituents(int tccId) const
Get the constituent detids for this dccId.
static const int MAX_TCCID_EEM
static const int MAX_TCCID_EEM
void assign(const DetId &cell, const EcalElectronicsId &, const EcalTriggerElectronicsId &tower)
set the association between a DetId and a tower
EcalElectronicsMap::nth_index< 3 >::type EcalElectronicsMap_by_DccId
static const int TCCID_PHI0_EEM_IN
static const int kEETowersInPhiPerQuadrant
static const int TCCID_PHI0_EEM_OUT
boost::multi_index::multi_index_container< MapItem, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< MapItem, DetId, &MapItem::cell > >, boost::multi_index::ordered_unique< boost::multi_index::member< MapItem, EcalElectronicsId, &MapItem::elid > >, boost::multi_index::ordered_unique< boost::multi_index::member< MapItem, EcalTriggerElectronicsId, &MapItem::trelid > >, boost::multi_index::ordered_non_unique< boost::multi_index::const_mem_fun< MapItem, int, &MapItem::dccId > >, boost::multi_index::ordered_non_unique< boost::multi_index::composite_key< MapItem, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::dccId >, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::towerId > > >, boost::multi_index::ordered_non_unique< boost::multi_index::composite_key< MapItem, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::dccId >, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::towerId >, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::stripId > > >, boost::multi_index::ordered_non_unique< boost::multi_index::const_mem_fun< MapItem, int, &MapItem::tccId > >, boost::multi_index::ordered_non_unique< boost::multi_index::composite_key< MapItem, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::tccId >, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::ttId > > >, boost::multi_index::ordered_non_unique< boost::multi_index::composite_key< MapItem, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::tccId >, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::ttId >, boost::multi_index::const_mem_fun< MapItem, int, &MapItem::pseudoStripId > > > > > EcalElectronicsMap
static const int kEETowersInEtaPerInnerTCC
std::map< int, int > LaserMonitoringMap_EE
EcalElectronicsMap::nth_index< 7 >::type EcalElectronicsMap_by_TccId_and_TtId
static const int kCrystalsInPhi
static const int kTowersInPhi
EcalElectronicsMap::nth_index< 4 >::type EcalElectronicsMap_by_DccId_and_TowerId
int DCCBoundary(int FED) const
static const int kEETowersInEta
EcalElectronicsMap m_items
static const int TCCID_PHI0_EBP
static const int kEBTowersInEta
static const int MAX_DCCID_EBP
int towerId() const
get the tower id
static const int MAX_DCCID
static const int kEETowersInPhiPerQuadrant
static const int MAX_DCCID_EBP
static const int MIN_DCCID_EBM
static const int kEBTowersPerSM
static const int iEEEtaMinInner
static const int kEBTowersInEta
static const int MIN_DCCID_EEP
unsigned dccId(DetId const &, EcalElectronicsMapping const *)
static const int MAX_DCCID_EBM
static const int TCCID_PHI0_EBM
int tccId() const
get the DCC (Ecal Local DCC value not global one) id
static const int kEBTowersInPhi
EcalTrigTowerDetId getTrigTowerDetId(int TCCid, int iTT) const
Builds a EcalTrigTowerDetID from the TCCid & TriggerTower index in TCC.
static const int DCCID_PHI0_EBM
static const int MAX_DCCID_EEM
static const int MIN_LM_EBP
static const int MAX_TCCID_EBM
std::vector< DetId > dccTowerConstituents(int dccId, int tower) const
Get the constituent detids for this dccId.
static const int MAX_DCCID_EEM
static const int MIN_TCCID_EEP
static const int kEETowersInPhiPerTCC
static const int MAX_TCCID_EBP
EcalElectronicsMap::nth_index< 0 >::type EcalElectronicsMap_by_DetId
static const int TCCID_PHI0_EEP_OUT
static const int TCCID_PHI0_EBM
EcalElectronicsMap::nth_index< 5 >::type EcalElectronicsMap_by_DccId_TowerId_and_StripId
int getLMNumber(const DetId &id) const
static const int MIN_TCCID_EBM
EcalElectronicsMap::nth_index< 6 >::type EcalElectronicsMap_by_TccId
int stripId() const
get the tower id
unsigned tccId(DetId const &, EcalElectronicsMapping const *)
static const int kTCCinPhi
static const int TCCID_PHI0_EEP_OUT
static const int iEEEtaMinOuter
static const int MAX_TCCID_EEP
int iTT(const EcalTrigTowerDetId &id) const
returns the index of a Trigger Tower within its TCC.
static const int MIN_DCCID_EBP
static const int MIN_TCCID_EEM
static const int MAX_DCCID_EEP
std::vector< EcalScDetId > getEcalScDetId(int DCCid, int DCC_Channel, bool ignoreSingleCrystal=true) const
EcalElectronicsMap::nth_index< 1 >::type EcalElectronicsMap_by_ElectronicsId
EcalElectronicsId getElectronicsId(const DetId &id) const
Get the electronics id for this det id.
static const int MIN_LM_EEP
bool rightTower(int tower) const
static const int DCCID_PHI0_EBP
EcalElectronicsMap::nth_index< 8 >::type EcalElectronicsMap_by_TccId_TtId_and_PseudostripId
static const int MIN_DCCID_EBM
static const int kCrystalsInPhi
int ttId() const
get the tower id
EcalElectronicsMap::nth_index< 2 >::type EcalElectronicsMap_by_TriggerElectronicsId
static const int MAX_TCCID_EBM
Wrap a generic EcalTrigTowerDetId to the equivalent one in z+ Quadrant 1 (from 0 < phi < pi/2) ...
static const int kEBTowersPerSM
static const int MAX_TCCID_EBP
static const int MIN_DCCID_EEM
Ecal trigger electronics identification [32:20] Unused (so far) [19:13] TCC id [12:6] TT id [5:3] pse...
std::vector< DetId > stripConstituents(int dccId, int tower, int strip) const
Get the constituent detids for this dccId.
std::vector< DetId > ttConstituents(int tccId, int tt) const
Get the constituent detids for this dccId.
static const int MIN_DCCID_EEP
static const int MIN_DCCID
static const int MAX_DCCID_EEP
DetId getDetId(const EcalElectronicsId &id) const
Get the detid given an electronicsId.
static const int DCCID_PHI0_EBM
static const int MIN_TCCID_EBM
EcalTriggerElectronicsId trelid
static const int TCCID_PHI0_EBP
static const int TCCID_PHI0_EEP_IN
static const int MIN_TCCID_EBP