#include <CaloTopology.h>
Public Types | |
typedef std::map< int, const CaloSubdetectorTopology * > | TopMap |
Public Member Functions | |
CaloTopology () | |
std::vector< DetId > | down (const DetId &id) const |
Get the neighbors of the given cell in down direction (inward) | |
std::vector< DetId > | east (const DetId &id) const |
Get the neighbors of the given cell in east direction. | |
std::vector< DetId > | getAllNeighbours (const DetId &id) const |
Get all the neighbors of the given cell. | |
std::vector< DetId > | getNeighbours (const DetId &id, const CaloDirection &dir) const |
Get the neighbors of the given cell given direction. | |
const CaloSubdetectorTopology * | getSubdetectorTopology (const DetId &id) const |
access the subdetector Topology for the given subdetector directly | |
const CaloSubdetectorTopology * | getSubdetectorTopology (DetId::Detector det, int subdet) const |
access the subdetector Topology for the given subdetector directly | |
std::vector< DetId > | getWindow (const DetId &id, const int &northSouthSize, const int &eastWestSize) const |
Get the neighbors of the given cell in a window of given size. | |
std::vector< DetId > | north (const DetId &id) const |
Get the neighbors of the given cell in north direction. | |
void | setSubdetTopology (DetId::Detector det, int subdet, const CaloSubdetectorTopology *geom) |
Register a subdetector Topology. | |
std::vector< DetId > | south (const DetId &id) const |
Get the neighbors of the given cell in south direction. | |
std::vector< DetId > | up (const DetId &id) const |
Get the neighbors of the given cell in up direction (outward) | |
bool | valid (const DetId &id) const |
Is this a valid cell id? | |
std::vector< DetId > | west (const DetId &id) const |
Get the neighbors of the given cell in west direction. | |
~CaloTopology () | |
Private Member Functions | |
int | makeIndex (DetId::Detector det, int subdet) const |
Private Attributes | |
TopMap | theTopologies_ |
typedef std::map<int, const CaloSubdetectorTopology*> CaloTopology::TopMap |
Definition at line 22 of file CaloTopology.h.
CaloTopology::CaloTopology | ( | ) |
Definition at line 5 of file CaloTopology.cc.
{ }
CaloTopology::~CaloTopology | ( | ) |
Definition at line 8 of file CaloTopology.cc.
References i, and theTopologies_.
{ for( TopMap::iterator i ( theTopologies_.begin() ) ; i != theTopologies_.end() ; ++i ) { delete i->second ; } }
Get the neighbors of the given cell in down direction (inward)
Definition at line 63 of file CaloTopology.cc.
References CaloSubdetectorTopology::down(), emptyDetIdVector, and getSubdetectorTopology().
{ const CaloSubdetectorTopology* topology=getSubdetectorTopology(id); return (topology==0) ? (emptyDetIdVector):(topology->down(id)); }
Get the neighbors of the given cell in east direction.
Definition at line 38 of file CaloTopology.cc.
References CaloSubdetectorTopology::east(), emptyDetIdVector, and getSubdetectorTopology().
Referenced by FastL1Region::FillEMCrystals().
{ const CaloSubdetectorTopology* topology=getSubdetectorTopology(id); return (topology==0) ? (emptyDetIdVector):(topology->east(id)); }
Get all the neighbors of the given cell.
Definition at line 78 of file CaloTopology.cc.
References emptyDetIdVector, CaloSubdetectorTopology::getAllNeighbours(), and getSubdetectorTopology().
{ const CaloSubdetectorTopology* topology=getSubdetectorTopology(id); return (topology==0) ? (emptyDetIdVector):(topology->getAllNeighbours(id)); }
std::vector< DetId > CaloTopology::getNeighbours | ( | const DetId & | id, |
const CaloDirection & | dir | ||
) | const |
Get the neighbors of the given cell given direction.
Definition at line 68 of file CaloTopology.cc.
References emptyDetIdVector, CaloSubdetectorTopology::getNeighbours(), and getSubdetectorTopology().
{ const CaloSubdetectorTopology* topology=getSubdetectorTopology(id); return (topology==0) ? (emptyDetIdVector):(topology->getNeighbours(id,dir)); }
const CaloSubdetectorTopology * CaloTopology::getSubdetectorTopology | ( | const DetId & | id | ) | const |
access the subdetector Topology for the given subdetector directly
Definition at line 26 of file CaloTopology.cc.
References i, makeIndex(), and theTopologies_.
Referenced by EcalClusterTools::covariances(), down(), east(), getAllNeighbours(), BetaCalculatorECAL::getDetailedTrackLengthInXtals(), getNeighbours(), getWindow(), EcalClusterTools::localCovariances(), EcalClusterTools::matrixDetId(), spr::matrixECALIds(), EcalClusterTools::matrixEnergy(), north(), pat::PATElectronProducer::produce(), InterestingTrackEcalDetIdProducer::produce(), HighPtTrackEcalDetIdProducer::produce(), InterestingEcalDetIdProducer::produce(), InterestingDetIdCollectionProducer::produce(), EcalClusterTools::scLocalCovariances(), Calorimeter::setupTopology(), south(), up(), valid(), and west().
{ std::map<int, const CaloSubdetectorTopology*>::const_iterator i=theTopologies_.find(makeIndex(id.det(),id.subdetId())); return (i==theTopologies_.end())?(0):(i->second); }
const CaloSubdetectorTopology * CaloTopology::getSubdetectorTopology | ( | DetId::Detector | det, |
int | subdet | ||
) | const |
access the subdetector Topology for the given subdetector directly
Definition at line 31 of file CaloTopology.cc.
References i, makeIndex(), and theTopologies_.
{ std::map<int, const CaloSubdetectorTopology*>::const_iterator i=theTopologies_.find(makeIndex(det,subdet)); return (i==theTopologies_.end())?(0):(i->second); }
std::vector< DetId > CaloTopology::getWindow | ( | const DetId & | id, |
const int & | northSouthSize, | ||
const int & | eastWestSize | ||
) | const |
Get the neighbors of the given cell in a window of given size.
Definition at line 73 of file CaloTopology.cc.
References emptyDetIdVector, getSubdetectorTopology(), and CaloSubdetectorTopology::getWindow().
Referenced by EcalClusterSeverityLevelAlgo::closestProblematic(), EcalClusterSeverityLevelAlgo::fractionAroundClosestProblematic(), and ecaldqm::EnergyTask::runOnRecHits().
{ const CaloSubdetectorTopology* topology=getSubdetectorTopology(id); return (topology==0) ? (emptyDetIdVector):(topology->getWindow(id,northSouthSize, eastWestSize)); }
int CaloTopology::makeIndex | ( | DetId::Detector | det, |
int | subdet | ||
) | const [private] |
Definition at line 17 of file CaloTopology.cc.
Referenced by getSubdetectorTopology(), and setSubdetTopology().
{ return (int(det)<<4) | (subdet&0xF); }
Get the neighbors of the given cell in north direction.
Definition at line 48 of file CaloTopology.cc.
References emptyDetIdVector, getSubdetectorTopology(), and CaloSubdetectorTopology::north().
Referenced by FastL1Region::FillEMCrystals().
{ const CaloSubdetectorTopology* topology=getSubdetectorTopology(id); return (topology==0) ? (emptyDetIdVector):(topology->north(id)); }
void CaloTopology::setSubdetTopology | ( | DetId::Detector | det, |
int | subdet, | ||
const CaloSubdetectorTopology * | geom | ||
) |
Register a subdetector Topology.
Definition at line 21 of file CaloTopology.cc.
References relativeConstraints::geom, getHLTprescales::index, makeIndex(), and theTopologies_.
{ int index=makeIndex(det,subdet); theTopologies_[index]=geom; }
Get the neighbors of the given cell in south direction.
Definition at line 53 of file CaloTopology.cc.
References emptyDetIdVector, getSubdetectorTopology(), and CaloSubdetectorTopology::south().
Referenced by FastL1Region::FillEMCrystals().
{ const CaloSubdetectorTopology* topology=getSubdetectorTopology(id); return (topology==0) ? (emptyDetIdVector):(topology->south(id)); }
Get the neighbors of the given cell in up direction (outward)
Definition at line 58 of file CaloTopology.cc.
References emptyDetIdVector, getSubdetectorTopology(), and CaloSubdetectorTopology::up().
{ const CaloSubdetectorTopology* topology=getSubdetectorTopology(id); return (topology==0) ? (emptyDetIdVector):(topology->up(id)); }
bool CaloTopology::valid | ( | const DetId & | id | ) | const |
Is this a valid cell id?
Definition at line 83 of file CaloTopology.cc.
References relativeConstraints::geom, getSubdetectorTopology(), and CaloSubdetectorTopology::valid().
{ const CaloSubdetectorTopology* geom=getSubdetectorTopology(id); return (geom==0)?(false):(geom->valid(id)); }
Get the neighbors of the given cell in west direction.
Definition at line 43 of file CaloTopology.cc.
References emptyDetIdVector, getSubdetectorTopology(), and CaloSubdetectorTopology::west().
Referenced by FastL1Region::FillEMCrystals().
{ const CaloSubdetectorTopology* topology=getSubdetectorTopology(id); return (topology==0) ? (emptyDetIdVector):(topology->west(id)); }
TopMap CaloTopology::theTopologies_ [private] |
Definition at line 56 of file CaloTopology.h.
Referenced by getSubdetectorTopology(), setSubdetTopology(), and ~CaloTopology().