CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EcalClusterLazyTools.cc
Go to the documentation of this file.
3 
5 
8 
13 
15 {
16  getGeometry( es );
17  getTopology( es );
18  getEBRecHits( ev, redEBRecHits );
19  getEERecHits( ev, redEERecHits );
20 }
21 
22 
23 
25 {
26 }
27 
28 
29 
31 {
33  es.get<CaloGeometryRecord>().get(pGeometry);
34  geometry_ = pGeometry.product();
35 }
36 
37 
38 
40 {
42  es.get<CaloTopologyRecord>().get(pTopology);
43  topology_ = pTopology.product();
44 }
45 
46 
47 
49 {
51  ev.getByLabel( redEBRecHits, pEBRecHits );
52  ebRecHits_ = pEBRecHits.product();
53 }
54 
55 
56 
58 {
60  ev.getByLabel( redEERecHits, pEERecHits );
61  eeRecHits_ = pEERecHits.product();
62 }
63 
64 
65 
67 {
68  if ( cluster.size() == 0 ) {
69  throw cms::Exception("InvalidCluster") << "The cluster has no crystals!";
70  }
71  DetId id = (cluster.hitsAndFractions()[0]).first; // size is by definition > 0 -- FIXME??
72  const EcalRecHitCollection *recHits = 0;
73  if ( id.subdetId() == EcalBarrel ) {
74  recHits = ebRecHits_;
75  } else if ( id.subdetId() == EcalEndcap ) {
76  recHits = eeRecHits_;
77  } else {
78  throw cms::Exception("InvalidSubdetector") << "The subdetId() " << id.subdetId() << " does not correspond to EcalBarrel neither EcalEndcap";
79  }
80  return recHits;
81 }
82 
83 
84 
86 {
87  return EcalClusterTools::e1x3( cluster, getEcalRecHitCollection(cluster), topology_ );
88 }
89 
90 
92 {
93  return EcalClusterTools::e3x1( cluster, getEcalRecHitCollection(cluster), topology_ );
94 }
95 
96 
98 {
99  return EcalClusterTools::e1x5( cluster, getEcalRecHitCollection(cluster), topology_ );
100 }
101 
102 
103 //float EcalClusterLazyTools::e5x1( const reco::BasicCluster &cluster )
104 //{
105  //return EcalClusterTools::e5x1( cluster, getEcalRecHitCollection(cluster), topology_ );
106  //}
107 
108 
110 {
111  return EcalClusterTools::e2x2( cluster, getEcalRecHitCollection(cluster), topology_ );
112 }
113 
114 
116 {
117  return EcalClusterTools::e3x2( cluster, getEcalRecHitCollection(cluster), topology_ );
118 }
119 
120 
122 {
123  return EcalClusterTools::e3x3( cluster, getEcalRecHitCollection(cluster), topology_ );
124 }
125 
126 
128 {
129  return EcalClusterTools::e4x4( cluster, getEcalRecHitCollection(cluster), topology_ );
130 }
131 
132 
134 {
135  return EcalClusterTools::e5x5( cluster, getEcalRecHitCollection(cluster), topology_ );
136 }
137 
138 
140 {
142 }
143 
144 
146 {
147  return EcalClusterTools::e2x5Left( cluster, getEcalRecHitCollection(cluster), topology_ );
148 }
149 
150 
152 {
153  return EcalClusterTools::e2x5Top( cluster, getEcalRecHitCollection(cluster), topology_ );
154 }
155 
156 
158 {
160 }
161 
162 // Energy in 2x5 strip containing the max crystal.
164 {
165  return EcalClusterTools::e2x5Max( cluster, getEcalRecHitCollection(cluster), topology_ );
166 }
167 
168 
170 {
171  return EcalClusterTools::eLeft( cluster, getEcalRecHitCollection(cluster), topology_ );
172 }
173 
174 
176 {
177  return EcalClusterTools::eRight( cluster, getEcalRecHitCollection(cluster), topology_ );
178 }
179 
180 
182 {
183  return EcalClusterTools::eTop( cluster, getEcalRecHitCollection(cluster), topology_ );
184 }
185 
186 
188 {
189  return EcalClusterTools::eBottom( cluster, getEcalRecHitCollection(cluster), topology_ );
190 }
191 
192 
194 {
195  return EcalClusterTools::eMax( cluster, getEcalRecHitCollection(cluster) );
196 }
197 
198 
200 {
201  return EcalClusterTools::e2nd( cluster, getEcalRecHitCollection(cluster) );
202 }
203 
204 
205 std::pair<DetId, float> EcalClusterLazyTools::getMaximum( const reco::BasicCluster &cluster )
206 {
207  return EcalClusterTools::getMaximum( cluster, getEcalRecHitCollection(cluster) );
208 }
209 
210 
212 {
214 }
215 
216 
218 {
220 }
221 
222 
223 std::vector<float> EcalClusterLazyTools::lat( const reco::BasicCluster &cluster, bool logW, float w0 )
224 {
225  return EcalClusterTools::lat( cluster, getEcalRecHitCollection(cluster), geometry_, logW, w0 );
226 }
227 
228 
229 std::vector<float> EcalClusterLazyTools::covariances(const reco::BasicCluster &cluster, float w0 )
230 {
232 }
233 
234 std::vector<float> EcalClusterLazyTools::localCovariances(const reco::BasicCluster &cluster, float w0 )
235 {
237 }
238 
239 std::vector<float> EcalClusterLazyTools::scLocalCovariances(const reco::SuperCluster &cluster, float w0 )
240 {
242 }
243 
244 double EcalClusterLazyTools::zernike20( const reco::BasicCluster &cluster, double R0, bool logW, float w0 )
245 {
246  return EcalClusterTools::zernike20( cluster, getEcalRecHitCollection(cluster), geometry_, R0, logW, w0 );
247 }
248 
249 
250 double EcalClusterLazyTools::zernike42( const reco::BasicCluster &cluster, double R0, bool logW, float w0 )
251 {
252  return EcalClusterTools::zernike42( cluster, getEcalRecHitCollection(cluster), geometry_, R0, logW, w0 );
253 }
254 
255 std::vector<DetId> EcalClusterLazyTools::matrixDetId( DetId id, int ixMin, int ixMax, int iyMin, int iyMax )
256 {
257  return EcalClusterTools::matrixDetId( topology_, id, ixMin, ixMax, iyMin, iyMax );
258 }
259 
260 float EcalClusterLazyTools::matrixEnergy( const reco::BasicCluster &cluster, DetId id, int ixMin, int ixMax, int iyMin, int iyMax )
261 {
262  return EcalClusterTools::matrixEnergy( cluster, getEcalRecHitCollection(cluster), topology_, id, ixMin, ixMax, iyMin, iyMax );
263 }
std::vector< float > localCovariances(const reco::BasicCluster &cluster, float w0=4.7)
static float eBottom(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
void getEBRecHits(const edm::Event &ev, edm::InputTag redEBRecHits)
static double zernike42(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloGeometry *geometry, double R0=6.6, bool logW=true, float w0=4.7)
float e2x2(const reco::BasicCluster &cluster)
float e4x4(const reco::BasicCluster &cluster)
std::vector< float > energyBasketFractionPhi(const reco::BasicCluster &cluster)
float eBottom(const reco::BasicCluster &cluster)
EcalClusterLazyTools(const edm::Event &ev, const edm::EventSetup &es, edm::InputTag redEBRecHits, edm::InputTag redEERecHits)
float e2nd(const reco::BasicCluster &cluster)
static std::vector< float > energyBasketFractionEta(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits)
static float e3x1(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
static float matrixEnergy(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology, DetId id, int ixMin, int ixMax, int iyMin, int iyMax)
float eRight(const reco::BasicCluster &cluster)
float e1x5(const reco::BasicCluster &cluster)
static std::vector< DetId > matrixDetId(const CaloTopology *topology, DetId id, int ixMin, int ixMax, int iyMin, int iyMax)
float e3x3(const reco::BasicCluster &cluster)
float eMax(const reco::BasicCluster &cluster)
const CaloGeometry * geometry_
void getEERecHits(const edm::Event &ev, edm::InputTag redEERecHits)
static float e2nd(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits)
static float e3x2(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
static std::vector< float > covariances(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology, const CaloGeometry *geometry, float w0=4.7)
const EcalRecHitCollection * ebRecHits_
float matrixEnergy(const reco::BasicCluster &cluster, DetId id, int ixMin, int ixMax, int iyMin, int iyMax)
static float e2x5Left(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
static std::vector< float > localCovariances(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology, float w0=4.7)
static double zernike20(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloGeometry *geometry, double R0=6.6, bool logW=true, float w0=4.7)
static std::vector< float > energyBasketFractionPhi(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits)
float e2x5Max(const reco::BasicCluster &cluster)
float e2x5Right(const reco::BasicCluster &cluster)
static float e3x3(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
double zernike20(const reco::BasicCluster &cluster, double R0=6.6, bool logW=true, float w0=4.7)
double zernike42(const reco::BasicCluster &cluster, double R0=6.6, bool logW=true, float w0=4.7)
const EcalRecHitCollection * eeRecHits_
static float e4x4(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
bool first
Definition: L1TdeRCT.cc:79
std::vector< float > scLocalCovariances(const reco::SuperCluster &cluster, float w0=4.7)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
float e3x2(const reco::BasicCluster &cluster)
std::vector< float > covariances(const reco::BasicCluster &cluster, float w0=4.7)
float eTop(const reco::BasicCluster &cluster)
float e2x5Bottom(const reco::BasicCluster &cluster)
std::vector< float > lat(const reco::BasicCluster &cluster, bool logW=true, float w0=4.7)
Definition: DetId.h:20
float e2x5Left(const reco::BasicCluster &cluster)
float e5x5(const reco::BasicCluster &cluster)
static float eRight(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
static float eTop(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
float eLeft(const reco::BasicCluster &cluster)
static float eMax(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits)
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
static std::vector< float > lat(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloGeometry *geometry, bool logW=true, float w0=4.7)
std::pair< DetId, float > getMaximum(const reco::BasicCluster &cluster)
T const * product() const
Definition: Handle.h:74
static float e2x5Bottom(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
static std::vector< float > scLocalCovariances(const reco::SuperCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology, float w0=4.7)
static std::pair< DetId, float > getMaximum(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits)
static float e2x5Max(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
float e2x5Top(const reco::BasicCluster &cluster)
static float e1x3(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
static float e5x5(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
static float e1x5(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
void getGeometry(const edm::EventSetup &es)
float e3x1(const reco::BasicCluster &cluster)
std::vector< DetId > matrixDetId(DetId id, int ixMin, int ixMax, int iyMin, int iyMax)
const CaloTopology * topology_
static float eLeft(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
const EcalRecHitCollection * getEcalRecHitCollection(const reco::BasicCluster &cluster)
static float e2x5Right(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
void getTopology(const edm::EventSetup &es)
std::vector< float > energyBasketFractionEta(const reco::BasicCluster &cluster)
static float e2x2(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
float e1x3(const reco::BasicCluster &cluster)
static float e2x5Top(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)