CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
CaloTopology Class Reference

#include <CaloTopology.h>

Public Types

typedef std::map< int, const CaloSubdetectorTopology * > TopMap
 

Public Member Functions

 CaloTopology ()
 
std::vector< DetIddown (const DetId &id) const
 Get the neighbors of the given cell in down direction (inward) More...
 
std::vector< DetIdeast (const DetId &id) const
 Get the neighbors of the given cell in east direction. More...
 
std::vector< DetIdgetAllNeighbours (const DetId &id) const
 Get all the neighbors of the given cell. More...
 
std::vector< DetIdgetNeighbours (const DetId &id, const CaloDirection &dir) const
 Get the neighbors of the given cell given direction. More...
 
const CaloSubdetectorTopologygetSubdetectorTopology (const DetId &id) const
 access the subdetector Topology for the given subdetector directly More...
 
const CaloSubdetectorTopologygetSubdetectorTopology (DetId::Detector det, int subdet) const
 access the subdetector Topology for the given subdetector directly More...
 
std::vector< DetIdgetWindow (const DetId &id, const int &northSouthSize, const int &eastWestSize) const
 Get the neighbors of the given cell in a window of given size. More...
 
std::vector< DetIdnorth (const DetId &id) const
 Get the neighbors of the given cell in north direction. More...
 
void setSubdetTopology (DetId::Detector det, int subdet, const CaloSubdetectorTopology *geom)
 Register a subdetector Topology. More...
 
std::vector< DetIdsouth (const DetId &id) const
 Get the neighbors of the given cell in south direction. More...
 
std::vector< DetIdup (const DetId &id) const
 Get the neighbors of the given cell in up direction (outward) More...
 
bool valid (const DetId &id) const
 Is this a valid cell id? More...
 
std::vector< DetIdwest (const DetId &id) const
 Get the neighbors of the given cell in west direction. More...
 
 ~CaloTopology ()
 

Private Member Functions

int makeIndex (DetId::Detector det, int subdet) const
 

Private Attributes

TopMap theTopologies_
 

Detailed Description

Revision
1.4
Author
J. Mans and P. Meridiani

Definition at line 18 of file CaloTopology.h.

Member Typedef Documentation

typedef std::map<int, const CaloSubdetectorTopology*> CaloTopology::TopMap

Definition at line 21 of file CaloTopology.h.

Constructor & Destructor Documentation

CaloTopology::CaloTopology ( )

Definition at line 5 of file CaloTopology.cc.

5  {
6 }
CaloTopology::~CaloTopology ( )

Definition at line 8 of file CaloTopology.cc.

References theTopologies_.

9 {
10  for(auto & theTopologie : theTopologies_)
11  {
12  delete theTopologie.second ;
13  }
14 }
TopMap theTopologies_
Definition: CaloTopology.h:55

Member Function Documentation

std::vector< DetId > CaloTopology::down ( const DetId id) const

Get the neighbors of the given cell in down direction (inward)

Definition at line 62 of file CaloTopology.cc.

References CaloSubdetectorTopology::down(), emptyDetIdVector, getSubdetectorTopology(), and ecaldqm::topology().

62  {
64  return (topology==nullptr) ? (emptyDetIdVector):(topology->down(id));
65 }
CaloTopology const * topology(0)
virtual std::vector< DetId > down(const DetId &id) const =0
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
static const std::vector< DetId > emptyDetIdVector
Definition: CaloTopology.cc:35
std::vector< DetId > CaloTopology::east ( const DetId id) const

Get the neighbors of the given cell in east direction.

Definition at line 37 of file CaloTopology.cc.

References CaloSubdetectorTopology::east(), emptyDetIdVector, getSubdetectorTopology(), and ecaldqm::topology().

37  {
39  return (topology==nullptr) ? (emptyDetIdVector):(topology->east(id));
40 }
CaloTopology const * topology(0)
virtual std::vector< DetId > east(const DetId &id) const =0
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
static const std::vector< DetId > emptyDetIdVector
Definition: CaloTopology.cc:35
std::vector< DetId > CaloTopology::getAllNeighbours ( const DetId id) const

Get all the neighbors of the given cell.

Definition at line 77 of file CaloTopology.cc.

References emptyDetIdVector, CaloSubdetectorTopology::getAllNeighbours(), getSubdetectorTopology(), and ecaldqm::topology().

77  {
79  return (topology==nullptr) ? (emptyDetIdVector):(topology->getAllNeighbours(id));
80 }
virtual std::vector< DetId > getAllNeighbours(const DetId &id) const
CaloTopology const * topology(0)
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
static const std::vector< DetId > emptyDetIdVector
Definition: CaloTopology.cc:35
std::vector< DetId > CaloTopology::getNeighbours ( const DetId id,
const CaloDirection dir 
) const

Get the neighbors of the given cell given direction.

Definition at line 67 of file CaloTopology.cc.

References emptyDetIdVector, CaloSubdetectorTopology::getNeighbours(), getSubdetectorTopology(), and ecaldqm::topology().

67  {
69  return (topology==nullptr) ? (emptyDetIdVector):(topology->getNeighbours(id,dir));
70 }
virtual std::vector< DetId > getNeighbours(const DetId &id, const CaloDirection &dir) const
CaloTopology const * topology(0)
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
static const std::vector< DetId > emptyDetIdVector
Definition: CaloTopology.cc:35
dbl *** dir
Definition: mlp_gen.cc:35
const CaloSubdetectorTopology * CaloTopology::getSubdetectorTopology ( const DetId id) const

access the subdetector Topology for the given subdetector directly

Definition at line 25 of file CaloTopology.cc.

References mps_fire::i, makeIndex(), and theTopologies_.

Referenced by DQMSourcePi0::analyze(), ElectronCalibrationUniv::analyze(), EcalClusterToolsT< noZS >::covariances(), down(), east(), HLTEcalResonanceFilter::filter(), HLTRegionalEcalResonanceFilter::filter(), getAllNeighbours(), BetaCalculatorECAL::getDetailedTrackLengthInXtals(), getNeighbours(), getWindow(), EcalBoundaryInfoCalculator< EBDetId >::initializeEcalNavigator(), ReducedEGProducer::linkCaloClusters(), EcalClusterToolsT< noZS >::localCovariances(), PiZeroAnalyzer::makePizero(), EcalClusterToolsT< noZS >::matrixDetId(), spr::matrixECALIds(), EcalClusterToolsT< noZS >::matrixEnergy(), EcalClusterToolsT< noZS >::matrixSize(), north(), EcalClusterToolsT< noZS >::nrSaturatedCrysIn5x5(), InterestingEcalDetIdProducer::produce(), InterestingDetIdCollectionProducer::produce(), InterestingDetIdFromSuperClusterProducer::produce(), InterestingTrackEcalDetIdProducer::produce(), pat::PATPhotonProducer::produce(), pat::PATElectronProducer::produce(), HighPtTrackEcalDetIdProducer::produce(), EEBadScFilter::scan5x5(), EcalClusterToolsT< noZS >::scLocalCovariances(), SingleEleCalibSelector::select(), EcalMipGraphs::selectHits(), EcalDisplaysByEvent::selectHits(), EcalDeadChannelRecoveryNN< EEDetId >::setCaloTopology(), EcalDeadChannelRecoveryNN< EBDetId >::setCaloTopology(), Calorimeter::setupTopology(), south(), up(), valid(), and west().

25  {
26  std::map<int, const CaloSubdetectorTopology*>::const_iterator i=theTopologies_.find(makeIndex(id.det(),id.subdetId()));
27  return (i==theTopologies_.end())?(nullptr):(i->second);
28 }
TopMap theTopologies_
Definition: CaloTopology.h:55
int makeIndex(DetId::Detector det, int subdet) const
Definition: CaloTopology.cc:16
const CaloSubdetectorTopology * CaloTopology::getSubdetectorTopology ( DetId::Detector  det,
int  subdet 
) const

access the subdetector Topology for the given subdetector directly

Definition at line 30 of file CaloTopology.cc.

References mps_fire::i, makeIndex(), and theTopologies_.

30  {
31  std::map<int, const CaloSubdetectorTopology*>::const_iterator i=theTopologies_.find(makeIndex(det,subdet));
32  return (i==theTopologies_.end())?(nullptr):(i->second);
33 }
TopMap theTopologies_
Definition: CaloTopology.h:55
int makeIndex(DetId::Detector det, int subdet) const
Definition: CaloTopology.cc:16
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 72 of file CaloTopology.cc.

References emptyDetIdVector, getSubdetectorTopology(), CaloSubdetectorTopology::getWindow(), and ecaldqm::topology().

Referenced by AlCaECALRecHitReducer::AddMiniRecHitCollection(), EcalClusterSeverityLevelAlgo::closestProblematic(), EcalMIPRecHitFilter::filter(), and EcalClusterSeverityLevelAlgo::fractionAroundClosestProblematic().

72  {
74  return (topology==nullptr) ? (emptyDetIdVector):(topology->getWindow(id,northSouthSize, eastWestSize));
75 }
CaloTopology const * topology(0)
virtual std::vector< DetId > getWindow(const DetId &id, const int &northSouthSize, const int &eastWestSize) const
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
static const std::vector< DetId > emptyDetIdVector
Definition: CaloTopology.cc:35
int CaloTopology::makeIndex ( DetId::Detector  det,
int  subdet 
) const
private

Definition at line 16 of file CaloTopology.cc.

Referenced by getSubdetectorTopology(), and setSubdetTopology().

16  {
17  return (int(det)<<4) | (subdet&0xF);
18 }
std::vector< DetId > CaloTopology::north ( const DetId id) const

Get the neighbors of the given cell in north direction.

Definition at line 47 of file CaloTopology.cc.

References emptyDetIdVector, getSubdetectorTopology(), CaloSubdetectorTopology::north(), and ecaldqm::topology().

47  {
49  return (topology==nullptr) ? (emptyDetIdVector):(topology->north(id));
50 }
CaloTopology const * topology(0)
virtual std::vector< DetId > north(const DetId &id) const =0
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
static const std::vector< DetId > emptyDetIdVector
Definition: CaloTopology.cc:35
void CaloTopology::setSubdetTopology ( DetId::Detector  det,
int  subdet,
const CaloSubdetectorTopology geom 
)

Register a subdetector Topology.

Definition at line 20 of file CaloTopology.cc.

References relativeConstraints::geom, diffTreeTool::index, makeIndex(), and theTopologies_.

20  {
21  int index=makeIndex(det,subdet);
23 }
TopMap theTopologies_
Definition: CaloTopology.h:55
int makeIndex(DetId::Detector det, int subdet) const
Definition: CaloTopology.cc:16
std::vector< DetId > CaloTopology::south ( const DetId id) const

Get the neighbors of the given cell in south direction.

Definition at line 52 of file CaloTopology.cc.

References emptyDetIdVector, getSubdetectorTopology(), CaloSubdetectorTopology::south(), and ecaldqm::topology().

52  {
54  return (topology==nullptr) ? (emptyDetIdVector):(topology->south(id));
55 }
CaloTopology const * topology(0)
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
static const std::vector< DetId > emptyDetIdVector
Definition: CaloTopology.cc:35
virtual std::vector< DetId > south(const DetId &id) const =0
std::vector< DetId > CaloTopology::up ( const DetId id) const

Get the neighbors of the given cell in up direction (outward)

Definition at line 57 of file CaloTopology.cc.

References emptyDetIdVector, getSubdetectorTopology(), ecaldqm::topology(), and CaloSubdetectorTopology::up().

57  {
59  return (topology==nullptr) ? (emptyDetIdVector):(topology->up(id));
60 }
virtual std::vector< DetId > up(const DetId &id) const =0
CaloTopology const * topology(0)
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
static const std::vector< DetId > emptyDetIdVector
Definition: CaloTopology.cc:35
bool CaloTopology::valid ( const DetId id) const

Is this a valid cell id?

Definition at line 82 of file CaloTopology.cc.

References relativeConstraints::geom, getSubdetectorTopology(), and CaloSubdetectorTopology::valid().

82  {
84  return (geom==nullptr)?(false):(geom->valid(id));
85 }
virtual bool valid(const DetId &) const
is this detid present in the Topology?
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
std::vector< DetId > CaloTopology::west ( const DetId id) const

Get the neighbors of the given cell in west direction.

Definition at line 42 of file CaloTopology.cc.

References emptyDetIdVector, getSubdetectorTopology(), ecaldqm::topology(), and CaloSubdetectorTopology::west().

42  {
44  return (topology==nullptr) ? (emptyDetIdVector):(topology->west(id));
45 }
CaloTopology const * topology(0)
virtual std::vector< DetId > west(const DetId &id) const =0
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
Definition: CaloTopology.cc:25
static const std::vector< DetId > emptyDetIdVector
Definition: CaloTopology.cc:35

Member Data Documentation

TopMap CaloTopology::theTopologies_
private

Definition at line 55 of file CaloTopology.h.

Referenced by getSubdetectorTopology(), setSubdetTopology(), and ~CaloTopology().