CMS 3D CMS Logo

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

#include <EcalRegressionData.h>

Public Types

enum  SubClusNr { SubClusNr::C1 =0, SubClusNr::C2 =1, SubClusNr::C3 =2 }
 

Public Member Functions

void clear ()
 
float e2nd () const
 
float e2ndOverSCRawEnergy () const
 
float e3x3 () const
 
float eBottom () const
 
 EcalRegressionData ()
 
float eLeft () const
 
float eMax () const
 
float eMaxOverSCRawEnergy () const
 
float eRight () const
 
float eTop () const
 
void fill (const reco::SuperCluster &superClus, const EcalRecHitCollection *ebRecHits, const EcalRecHitCollection *eeRecHits, const CaloGeometry *geom, const CaloTopology *topology, const reco::VertexCollection *vertices)
 
void fill (const reco::SuperCluster &superClus, const EcalRecHitCollection *ebRecHits, const EcalRecHitCollection *eeRecHits, const CaloGeometry *geom, const CaloTopology *topology, int nrVertices)
 
void fillVec (std::vector< float > &inputVec) const
 
bool isEB () const
 
float maxSubClusDR () const
 
float maxSubClusDRDEta () const
 
float maxSubClusDRDPhi () const
 
float maxSubClusDRRawEnergy () const
 
float maxSubClusDRRawEnergyOverSCRawEnergy () const
 
int nrVtx () const
 
float scCalibEnergy () const
 
float scEta () const
 
float scEtaWidth () const
 
int scNrAdditionalClusters () const
 
float scPhi () const
 
float scPhiWidth () const
 
float scPreShowerEnergy () const
 
float scPreShowerEnergyOverSCRawEnergy () const
 
float scRawEnergy () const
 
float scSeedR9 () const
 
float seedClusEnergy () const
 
float seedClusEnergyOverSCRawEnergy () const
 
float seedCrysEtaOrX () const
 
float seedCrysIEtaOrIX () const
 
float seedCrysIPhiOrIY () const
 
float seedCrysPhiOrY () const
 
float seedLeftRightAsym () const
 
float seedTopBottomAsym () const
 
float sigmaIEtaIEta () const
 
float sigmaIEtaIPhi () const
 
float sigmaIPhiIPhi () const
 
const std::vector< float > & subClusDEta () const
 
float subClusDEta (size_t clusNr) const
 
float subClusDEta (SubClusNr clusNr) const
 
const std::vector< float > & subClusDPhi () const
 
float subClusDPhi (size_t clusNr) const
 
float subClusDPhi (SubClusNr clusNr) const
 
const std::vector< float > & subClusRawEnergy () const
 
float subClusRawEnergy (size_t clusNr) const
 
float subClusRawEnergy (SubClusNr clusNr) const
 
float subClusRawEnergyOverSCRawEnergy (size_t clusNr) const
 
float subClusRawEnergyOverSCRawEnergy (SubClusNr clusNr) const
 

Private Member Functions

float divideBySCRawEnergy_ (float numer) const
 
void fillVecEB_ (std::vector< float > &inputVec) const
 
void fillVecEE_ (std::vector< float > &inputVec) const
 

Private Attributes

float e2nd_
 
float e3x3_
 
float eBottom_
 
float eLeft_
 
float eMax_
 
float eRight_
 
float eTop_
 
bool isEB_
 
float maxSubClusDR2_
 
float maxSubClusDRDEta_
 
float maxSubClusDRDPhi_
 
float maxSubClusDRRawEnergy_
 
int nrVtx_
 
float scCalibEnergy_
 
float scEta_
 
float scEtaWidth_
 
int scNrAdditionalClusters_
 
float scPhi_
 
float scPhiWidth_
 
float scPreShowerEnergy_
 
float scRawEnergy_
 
float seedClusEnergy_
 
float seedCrysEtaOrX_
 
int seedCrysIEtaOrIX_
 
int seedCrysIPhiOrIY_
 
float seedCrysPhiOrY_
 
float sigmaIEtaIEta_
 
float sigmaIEtaIPhi_
 
float sigmaIPhiIPhi_
 
std::vector< float > subClusDEta_
 
std::vector< float > subClusDPhi_
 
std::vector< float > subClusRawEnergy_
 

Detailed Description

Definition at line 17 of file EcalRegressionData.h.

Member Enumeration Documentation

Enumerator
C1 
C2 
C3 

Definition at line 24 of file EcalRegressionData.h.

24  {
25  C1=0,
26  C2=1,
27  C3=2
28  };

Constructor & Destructor Documentation

EcalRegressionData::EcalRegressionData ( )
inline

Definition at line 19 of file EcalRegressionData.h.

References hitfit::clear().

Member Function Documentation

void EcalRegressionData::clear ( void  )

Definition at line 121 of file EcalRegressionData.cc.

References e2nd_, e3x3_, eBottom_, eLeft_, eMax_, eRight_, eTop_, isEB_, maxSubClusDR2_, maxSubClusDRDEta_, maxSubClusDRDPhi_, maxSubClusDRRawEnergy_, nrVtx_, scCalibEnergy_, scEta_, scEtaWidth_, scNrAdditionalClusters_, scPhi_, scPhiWidth_, scPreShowerEnergy_, scRawEnergy_, seedClusEnergy_, seedCrysEtaOrX_, seedCrysIEtaOrIX_, seedCrysIPhiOrIY_, seedCrysPhiOrY_, sigmaIEtaIEta_, sigmaIEtaIPhi_, sigmaIPhiIPhi_, subClusDEta_, subClusDPhi_, and subClusRawEnergy_.

Referenced by fill().

122 {
123  isEB_=false;
124  scRawEnergy_=0.;
125  scCalibEnergy_=0.;
127  scEta_=0.;
128  scPhi_=0.;
129  scEtaWidth_=0.;
130  scPhiWidth_=0.;
132 
133  seedClusEnergy_=0.;
134  eMax_=0.;
135  e2nd_=0.;
136  e3x3_=0.;
137  eTop_=0.;
138  eBottom_=0.;
139  eLeft_=0.;
140  eRight_=0.;
141  sigmaIEtaIEta_=0.;
142  sigmaIEtaIPhi_=0.;
143  sigmaIPhiIPhi_=0.;
144 
145  seedCrysPhiOrY_=0.;
146  seedCrysEtaOrX_=0.;
149 
150  maxSubClusDR2_=998001.;
151  maxSubClusDRDPhi_=999.;
152  maxSubClusDRDEta_=999;
154 
155  subClusRawEnergy_.clear();
156  subClusDPhi_.clear();
157  subClusDEta_.clear();
158 
159  nrVtx_=0;
160 
161 }
std::vector< float > subClusDPhi_
std::vector< float > subClusRawEnergy_
std::vector< float > subClusDEta_
float EcalRegressionData::divideBySCRawEnergy_ ( float  numer) const
inlineprivate

Definition at line 102 of file EcalRegressionData.h.

102 {return scRawEnergy()!=0 ? numer/scRawEnergy() : 0.;}
float scRawEnergy() const
float EcalRegressionData::e2nd ( ) const
inline

Definition at line 42 of file EcalRegressionData.h.

Referenced by pat::PATPhotonProducer::produce().

42 {return e2nd_;}
float EcalRegressionData::e2ndOverSCRawEnergy ( ) const
inline

Definition at line 70 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

70 {return divideBySCRawEnergy_(e2nd());}
float divideBySCRawEnergy_(float numer) const
float EcalRegressionData::e3x3 ( ) const
inline

Definition at line 43 of file EcalRegressionData.h.

Referenced by pat::PATPhotonProducer::produce().

43 {return e3x3_;}
float EcalRegressionData::eBottom ( ) const
inline

Definition at line 45 of file EcalRegressionData.h.

Referenced by pat::PATPhotonProducer::produce(), and seedTopBottomAsym().

45 {return eBottom_;}
float EcalRegressionData::eLeft ( ) const
inline

Definition at line 46 of file EcalRegressionData.h.

Referenced by pat::PATPhotonProducer::produce(), and seedLeftRightAsym().

46 {return eLeft_;}
float EcalRegressionData::eMax ( ) const
inline

Definition at line 41 of file EcalRegressionData.h.

Referenced by pat::PATPhotonProducer::produce().

41 {return eMax_;}
float EcalRegressionData::eMaxOverSCRawEnergy ( ) const
inline

Definition at line 69 of file EcalRegressionData.h.

References photonPostprocessing_cfi::eMax.

Referenced by fillVecEB_(), and fillVecEE_().

69 {return divideBySCRawEnergy_(eMax());}
float divideBySCRawEnergy_(float numer) const
float EcalRegressionData::eRight ( ) const
inline

Definition at line 47 of file EcalRegressionData.h.

Referenced by pat::PATPhotonProducer::produce(), and seedLeftRightAsym().

47 {return eRight_;}
float EcalRegressionData::eTop ( ) const
inline

Definition at line 44 of file EcalRegressionData.h.

Referenced by pat::PATPhotonProducer::produce(), and seedTopBottomAsym().

44 {return eTop_;}
void EcalRegressionData::fill ( const reco::SuperCluster superClus,
const EcalRecHitCollection ebRecHits,
const EcalRecHitCollection eeRecHits,
const CaloGeometry geom,
const CaloTopology topology,
const reco::VertexCollection vertices 
)
inline

Definition at line 85 of file EcalRegressionData.h.

References hitfit::clear(), lumiContext::fill, relativeConstraints::geom, and ecaldqm::topology().

Referenced by RegressionHelper::getEcalRegression(), pat::PATPhotonProducer::produce(), and BaselinePFSCRegression::set().

88  {
89  fill(superClus,ebRecHits,eeRecHits,geom,topology,vertices->size());
90  }
void fill(const reco::SuperCluster &superClus, const EcalRecHitCollection *ebRecHits, const EcalRecHitCollection *eeRecHits, const CaloGeometry *geom, const CaloTopology *topology, const reco::VertexCollection *vertices)
void EcalRegressionData::fill ( const reco::SuperCluster superClus,
const EcalRecHitCollection ebRecHits,
const EcalRecHitCollection eeRecHits,
const CaloGeometry geom,
const CaloTopology topology,
int  nrVertices 
)

Definition at line 48 of file EcalRegressionData.cc.

References clear(), reco::SuperCluster::clustersBegin(), reco::SuperCluster::clustersEnd(), reco::SuperCluster::clustersSize(), reco::CaloCluster::correctedEnergy(), reco::deltaPhi(), DetId::det(), particleFlow_cfi::dEta, particleFlow_cfi::dPhi, e2nd_, e3x3_, eBottom_, EcalBarrel, eLeft_, photonPostprocessing_cfi::eMax, eMax_, eRight_, reco::CaloCluster::eta(), reco::SuperCluster::etaWidth(), eTop_, relativeConstraints::geom, isEB(), isEB_, EcalTools::isHGCalDet(), edm::isNotFinite(), EcalClusterLocal::localCoordsEB(), EcalClusterLocal::localCoordsEE(), maxSubClusDR2_, maxSubClusDRDEta_, maxSubClusDRDPhi_, maxSubClusDRRawEnergy_, nrVtx_, reco::CaloCluster::phi(), reco::SuperCluster::phiWidth(), reco::SuperCluster::preshowerEnergy(), reco::SuperCluster::rawEnergy(), scCalibEnergy_, scEta_, scEtaWidth_, scNrAdditionalClusters_, scPhi_, scPhiWidth_, scPreShowerEnergy_, scRawEnergy_, reco::SuperCluster::seed(), seedClusEnergy_, seedCrysEtaOrX_, seedCrysIEtaOrIX_, seedCrysIPhiOrIY_, seedCrysPhiOrY_, sigmaIEtaIEta_, sigmaIEtaIPhi_, sigmaIPhiIPhi_, mathSSE::sqrt(), subClusDEta_, subClusDPhi_, subClusRawEnergy_, DetId::subdetId(), and ecaldqm::topology().

52 {
53  clear();
54 
55  const DetId& seedid = superClus.seed()->hitsAndFractions().at(0).first;
56  isEB_ = ( seedid.subdetId()==EcalBarrel );
57 
58  // skip HGCal
59  if( EcalTools::isHGCalDet(seedid.det()) ) return;
60 
61  const EcalRecHitCollection* recHits = isEB_ ? ebRecHits : eeRecHits;
62 
63  scRawEnergy_ = superClus.rawEnergy();
64  scCalibEnergy_ = superClus.correctedEnergy();
65  scPreShowerEnergy_ = superClus.preshowerEnergy();
66  scEta_ = superClus.eta();
67  scPhi_ = superClus.phi();
68  scEtaWidth_ = superClus.etaWidth();
69  scPhiWidth_ = superClus.phiWidth();
70  scNrAdditionalClusters_ = superClus.clustersSize()-1;
71 
72  seedClusEnergy_ = superClus.seed()->energy();
73  eMax_ = EcalClusterTools::eMax(*superClus.seed(),recHits);
74  e2nd_ = EcalClusterTools::e2nd(*superClus.seed(),recHits);
75  e3x3_ = EcalClusterTools::e3x3(*superClus.seed(),recHits,topology);
76  eTop_ = EcalClusterTools::eTop(*superClus.seed(),recHits,topology);
77  eBottom_ = EcalClusterTools::eBottom(*superClus.seed(),recHits,topology);
78  eLeft_ = EcalClusterTools::eLeft(*superClus.seed(),recHits,topology);
79  eRight_ = EcalClusterTools::eRight(*superClus.seed(),recHits,topology);
80  std::vector<float> localCovs = EcalClusterTools::localCovariances(*superClus.seed(),recHits,topology);
81  sigmaIEtaIEta_ = edm::isNotFinite(localCovs[0]) ? 0. : std::sqrt(localCovs[0]);
82  sigmaIPhiIPhi_ = edm::isNotFinite(localCovs[2]) ? 0. : std::sqrt(localCovs[2]);
83 
84  if(sigmaIEtaIEta_*sigmaIPhiIPhi_>0) sigmaIEtaIPhi_ = localCovs[1]/(sigmaIEtaIEta_*sigmaIPhiIPhi_);
85  else if(localCovs[1]>0) sigmaIEtaIPhi_ = 1.;
86  else sigmaIEtaIPhi_ = -1.;
87 
88 
89  EcalClusterLocal ecalClusterLocal; //not clear why this doesnt use static functions
90  float thetaTilt=0,phiTilt=0; //dummy variables that are not used but are required by below function
91  void (EcalClusterLocal::*localCoordFunc)(const reco::CaloCluster &, const CaloGeometry &,
92  float &, float &, int &, int &,
93  float &, float &)const;
94  localCoordFunc = &EcalClusterLocal::localCoordsEB;
95  if(!isEB()) localCoordFunc = &EcalClusterLocal::localCoordsEE;
96  (ecalClusterLocal.*localCoordFunc)(*superClus.seed(),*geom,
99  thetaTilt,phiTilt);
100 
101  for( auto clus = superClus.clustersBegin()+1;clus != superClus.clustersEnd(); ++clus ) {
102  const float dEta = (*clus)->eta() - superClus.seed()->eta();
103  const float dPhi = reco::deltaPhi((*clus)->phi(),superClus.seed()->phi());
104  const float dR2 = dEta*dEta+dPhi*dPhi;
105  if(dR2 > maxSubClusDR2_ || maxSubClusDR2_ == 998001.) {
106  maxSubClusDR2_ = dR2;
109  maxSubClusDRRawEnergy_ = (*clus)->energy();
110  }
111  subClusRawEnergy_.push_back((*clus)->energy());
112  subClusDEta_.push_back(dEta);
113  subClusDPhi_.push_back(dPhi);
114 
115  }
116 
117  nrVtx_ = nrVertices;
118 
119 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
static bool isHGCalDet(DetId::Detector thedet)
identify HGCal cells
Definition: EcalTools.h:54
double correctedEnergy() const
Definition: CaloCluster.h:127
CaloTopology const * topology(0)
double phiWidth() const
obtain phi and eta width of the Super Cluster
Definition: SuperCluster.h:55
double eta() const
pseudorapidity of cluster centroid
Definition: CaloCluster.h:168
std::vector< float > subClusDPhi_
bool isNotFinite(T x)
Definition: isFinite.h:10
double etaWidth() const
Definition: SuperCluster.h:56
T sqrt(T t)
Definition: SSEVec.h:18
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:41
std::vector< float > subClusRawEnergy_
Definition: DetId.h:18
double rawEnergy() const
raw uncorrected energy (sum of energies of component BasicClusters)
Definition: SuperCluster.h:47
std::vector< float > subClusDEta_
size_t clustersSize() const
number of BasicCluster constituents
Definition: SuperCluster.h:87
void localCoordsEB(const reco::CaloCluster &bclus, const edm::EventSetup &es, float &etacry, float &phicry, int &ieta, int &iphi, float &thetatilt, float &phitilt) const
CaloCluster_iterator clustersBegin() const
fist iterator over BasicCluster constituents
Definition: SuperCluster.h:75
const CaloClusterPtr & seed() const
seed BasicCluster
Definition: SuperCluster.h:66
double preshowerEnergy() const
energy deposited in preshower
Definition: SuperCluster.h:50
double phi() const
azimuthal angle of cluster centroid
Definition: CaloCluster.h:171
void localCoordsEE(const reco::CaloCluster &bclus, const edm::EventSetup &es, float &xcry, float &ycry, int &ix, int &iy, float &thetatilt, float &phitilt) const
CaloCluster_iterator clustersEnd() const
last iterator over BasicCluster constituents
Definition: SuperCluster.h:78
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:39
void EcalRegressionData::fillVec ( std::vector< float > &  inputVec) const

Definition at line 163 of file EcalRegressionData.cc.

References fillVecEB_(), fillVecEE_(), and isEB().

Referenced by RegressionHelper::getEcalRegression(), and BaselinePFSCRegression::set().

164 {
165  if(isEB()) fillVecEB_(inputVec);
166  else fillVecEE_(inputVec);
167 }
void fillVecEB_(std::vector< float > &inputVec) const
void fillVecEE_(std::vector< float > &inputVec) const
void EcalRegressionData::fillVecEB_ ( std::vector< float > &  inputVec) const
private

Definition at line 169 of file EcalRegressionData.cc.

References C1, C2, C3, e2ndOverSCRawEnergy(), eMaxOverSCRawEnergy(), maxSubClusDR(), maxSubClusDRDEta(), maxSubClusDRDPhi(), maxSubClusDRRawEnergyOverSCRawEnergy(), nrVtx(), scCalibEnergy(), scEta(), scEtaWidth(), scNrAdditionalClusters(), scPhi(), scPhiWidth(), scSeedR9(), seedClusEnergyOverSCRawEnergy(), seedCrysEtaOrX(), seedCrysIEtaOrIX(), seedCrysIPhiOrIY(), seedCrysPhiOrY(), seedLeftRightAsym(), seedTopBottomAsym(), sigmaIEtaIEta(), sigmaIEtaIPhi(), sigmaIPhiIPhi(), subClusDEta(), subClusDPhi(), and subClusRawEnergyOverSCRawEnergy().

Referenced by fillVec().

170 {
171  inputVec.clear();
172  inputVec.resize(33);
173  inputVec[0] = nrVtx(); //nVtx
174  inputVec[1] = scEta(); //scEta
175  inputVec[2] = scPhi(); //scPhi
176  inputVec[3] = scEtaWidth(); //scEtaWidth
177  inputVec[4] = scPhiWidth(); //scPhiWidth
178  inputVec[5] = scSeedR9(); //scSeedR9
179  inputVec[6] = seedClusEnergyOverSCRawEnergy(); //scSeedRawEnergy/scRawEnergy
180  inputVec[7] = eMaxOverSCRawEnergy(); //scSeedEmax/scRawEnergy
181  inputVec[8] = e2ndOverSCRawEnergy(); //scSeedE2nd/scRawEnergy
182  inputVec[9] = seedLeftRightAsym();//scSeedLeftRightAsym
183  inputVec[10] = seedTopBottomAsym();//scSeedTopBottomAsym
184  inputVec[11] = sigmaIEtaIEta(); //scSeedSigmaIetaIeta
185  inputVec[12] = sigmaIEtaIPhi(); //scSeedSigmaIetaIphi
186  inputVec[13] = sigmaIPhiIPhi(); //scSeedSigmaIphiIphi
187  inputVec[14] = scNrAdditionalClusters(); //N_ECALClusters
188  inputVec[15] = maxSubClusDR(); //clusterMaxDR
189  inputVec[16] = maxSubClusDRDPhi(); //clusterMaxDRDPhi
190  inputVec[17] = maxSubClusDRDEta(); //clusterMaxDRDEta
191  inputVec[18] = maxSubClusDRRawEnergyOverSCRawEnergy(); //clusMaxDRRawEnergy/scRawEnergy
192  inputVec[19] = subClusRawEnergyOverSCRawEnergy(SubClusNr::C1); //clusterRawEnergy[0]/scRawEnergy
193  inputVec[20] = subClusRawEnergyOverSCRawEnergy(SubClusNr::C2); //clusterRawEnergy[1]/scRawEnergy float scPreShowerEnergy()const{return scPreShowerEnergy_;}
194 
195  inputVec[21] = subClusRawEnergyOverSCRawEnergy(SubClusNr::C3); //clusterRawEnergy[2]/scRawEnergy
196  inputVec[22] = subClusDPhi(SubClusNr::C1); //clusterDPhiToSeed[0]
197  inputVec[23] = subClusDPhi(SubClusNr::C2); //clusterDPhiToSeed[1]
198  inputVec[24] = subClusDPhi(SubClusNr::C3); //clusterDPhiToSeed[2]
199  inputVec[25] = subClusDEta(SubClusNr::C1); //clusterDEtaToSeed[0]
200  inputVec[26] = subClusDEta(SubClusNr::C2); //clusterDEtaToSeed[1]
201  inputVec[27] = subClusDEta(SubClusNr::C3); //clusterDEtaToSeed[2]
202  inputVec[28] = seedCrysEtaOrX(); //scSeedCryEta
203  inputVec[29] = seedCrysPhiOrY(); //scSeedCryPhi
204  inputVec[30] = seedCrysIEtaOrIX(); //scSeedCryIeta
205  inputVec[31] = seedCrysIPhiOrIY(); //scSeedCryIphi
206  inputVec[32] = scCalibEnergy(); //scCalibratedEnergy
207 }
float sigmaIPhiIPhi() const
float e2ndOverSCRawEnergy() const
float maxSubClusDRDEta() const
float scEtaWidth() const
int scNrAdditionalClusters() const
float seedCrysPhiOrY() const
float sigmaIEtaIEta() const
float sigmaIEtaIPhi() const
float scSeedR9() const
float subClusRawEnergyOverSCRawEnergy(size_t clusNr) const
float seedClusEnergyOverSCRawEnergy() const
float scPhi() const
float seedCrysIPhiOrIY() const
float maxSubClusDR() const
float seedCrysIEtaOrIX() const
float maxSubClusDRDPhi() const
float scPhiWidth() const
float seedCrysEtaOrX() const
float seedLeftRightAsym() const
float eMaxOverSCRawEnergy() const
float maxSubClusDRRawEnergyOverSCRawEnergy() const
const std::vector< float > & subClusDEta() const
float scEta() const
const std::vector< float > & subClusDPhi() const
float seedTopBottomAsym() const
float scCalibEnergy() const
void EcalRegressionData::fillVecEE_ ( std::vector< float > &  inputVec) const
private

Definition at line 209 of file EcalRegressionData.cc.

References C1, C2, C3, e2ndOverSCRawEnergy(), eMaxOverSCRawEnergy(), maxSubClusDR(), maxSubClusDRDEta(), maxSubClusDRDPhi(), maxSubClusDRRawEnergyOverSCRawEnergy(), nrVtx(), scCalibEnergy(), scEta(), scEtaWidth(), scNrAdditionalClusters(), scPhi(), scPhiWidth(), scPreShowerEnergyOverSCRawEnergy(), scSeedR9(), seedClusEnergyOverSCRawEnergy(), seedLeftRightAsym(), seedTopBottomAsym(), sigmaIEtaIEta(), sigmaIEtaIPhi(), sigmaIPhiIPhi(), subClusDEta(), subClusDPhi(), and subClusRawEnergyOverSCRawEnergy().

Referenced by fillVec().

210 {
211  inputVec.clear();
212  inputVec.resize(33); //this emulates the old behaviour of RegressionHelper, even if past 29 we dont use elements
213  inputVec[0] = nrVtx(); //nVtx
214  inputVec[1] = scEta(); //scEta
215  inputVec[2] = scPhi(); //scPhi
216  inputVec[3] = scEtaWidth(); //scEtaWidth
217  inputVec[4] = scPhiWidth(); //scPhiWidth
218  inputVec[5] = scSeedR9(); //scSeedR9
219  inputVec[6] = seedClusEnergyOverSCRawEnergy(); //scSeedRawEnergy/scRawEnergy
220  inputVec[7] = eMaxOverSCRawEnergy(); //scSeedEmax/scRawEnergy
221  inputVec[8] = e2ndOverSCRawEnergy(); //scSeedE2nd/scRawEnergy
222  inputVec[9] = seedLeftRightAsym();//scSeedLeftRightAsym
223  inputVec[10] = seedTopBottomAsym();//scSeedTopBottomAsym
224  inputVec[11] = sigmaIEtaIEta(); //scSeedSigmaIetaIeta
225  inputVec[12] = sigmaIEtaIPhi(); //scSeedSigmaIetaIphi
226  inputVec[13] = sigmaIPhiIPhi(); //scSeedSigmaIphiIphi
227  inputVec[14] = scNrAdditionalClusters(); //N_ECALClusters
228  inputVec[15] = maxSubClusDR(); //clusterMaxDR
229  inputVec[16] = maxSubClusDRDPhi(); //clusterMaxDRDPhi
230  inputVec[17] = maxSubClusDRDEta(); //clusterMaxDRDEta
231  inputVec[18] = maxSubClusDRRawEnergyOverSCRawEnergy(); //clusMaxDRRawEnergy/scRawEnergy
232  inputVec[19] = subClusRawEnergyOverSCRawEnergy(SubClusNr::C1); //clusterRawEnergy[0]/scRawEnergy
233  inputVec[20] = subClusRawEnergyOverSCRawEnergy(SubClusNr::C2); //clusterRawEnergy[1]/scRawEnergy
234  inputVec[21] = subClusRawEnergyOverSCRawEnergy(SubClusNr::C3); //clusterRawEnergy[2]/scRawEnergy
235  inputVec[22] = subClusDPhi(SubClusNr::C1); //clusterDPhiToSeed[0]
236  inputVec[23] = subClusDPhi(SubClusNr::C2); //clusterDPhiToSeed[1]
237  inputVec[24] = subClusDPhi(SubClusNr::C3); //clusterDPhiToSeed[2]
238  inputVec[25] = subClusDEta(SubClusNr::C1); //clusterDEtaToSeed[0]
239  inputVec[26] = subClusDEta(SubClusNr::C2); //clusterDEtaToSeed[1]
240  inputVec[27] = subClusDEta(SubClusNr::C3); //clusterDEtaToSeed[2]
241  inputVec[28] = scPreShowerEnergyOverSCRawEnergy();
242  inputVec[29] = scCalibEnergy(); //scCalibratedEnergy
243 }
float sigmaIPhiIPhi() const
float e2ndOverSCRawEnergy() const
float maxSubClusDRDEta() const
float scEtaWidth() const
int scNrAdditionalClusters() const
float sigmaIEtaIEta() const
float sigmaIEtaIPhi() const
float scSeedR9() const
float subClusRawEnergyOverSCRawEnergy(size_t clusNr) const
float seedClusEnergyOverSCRawEnergy() const
float scPhi() const
float maxSubClusDR() const
float maxSubClusDRDPhi() const
float scPhiWidth() const
float scPreShowerEnergyOverSCRawEnergy() const
float seedLeftRightAsym() const
float eMaxOverSCRawEnergy() const
float maxSubClusDRRawEnergyOverSCRawEnergy() const
const std::vector< float > & subClusDEta() const
float scEta() const
const std::vector< float > & subClusDPhi() const
float seedTopBottomAsym() const
float scCalibEnergy() const
bool EcalRegressionData::isEB ( ) const
inline

Definition at line 31 of file EcalRegressionData.h.

Referenced by Electron.Electron::absIsoWithFSR(), fill(), and fillVec().

31 {return isEB_;}
float EcalRegressionData::maxSubClusDR ( ) const
inline

Definition at line 56 of file EcalRegressionData.h.

References mathSSE::sqrt().

Referenced by fillVecEB_(), fillVecEE_(), and pat::PATPhotonProducer::produce().

56 {return std::sqrt(maxSubClusDR2_);}
T sqrt(T t)
Definition: SSEVec.h:18
float EcalRegressionData::maxSubClusDRDEta ( ) const
inline

Definition at line 58 of file EcalRegressionData.h.

Referenced by fillVecEB_(), fillVecEE_(), and pat::PATPhotonProducer::produce().

float EcalRegressionData::maxSubClusDRDPhi ( ) const
inline

Definition at line 57 of file EcalRegressionData.h.

Referenced by fillVecEB_(), fillVecEE_(), and pat::PATPhotonProducer::produce().

float EcalRegressionData::maxSubClusDRRawEnergy ( ) const
inline

Definition at line 59 of file EcalRegressionData.h.

Referenced by pat::PATPhotonProducer::produce().

float EcalRegressionData::maxSubClusDRRawEnergyOverSCRawEnergy ( ) const
inline

Definition at line 73 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

float divideBySCRawEnergy_(float numer) const
float maxSubClusDRRawEnergy() const
int EcalRegressionData::nrVtx ( ) const
inline

Definition at line 63 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

63 {return nrVtx_;}
float EcalRegressionData::scCalibEnergy ( ) const
inline

Definition at line 33 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

33 {return scCalibEnergy_;}
float EcalRegressionData::scEta ( ) const
inline

Definition at line 35 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

35 {return scEta_;}
float EcalRegressionData::scEtaWidth ( ) const
inline

Definition at line 37 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

37 {return scEtaWidth_;}
int EcalRegressionData::scNrAdditionalClusters ( ) const
inline

Definition at line 39 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

float EcalRegressionData::scPhi ( ) const
inline

Definition at line 36 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

36 {return scPhi_;}
float EcalRegressionData::scPhiWidth ( ) const
inline

Definition at line 38 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

38 {return scPhiWidth_;}
float EcalRegressionData::scPreShowerEnergy ( ) const
inline

Definition at line 34 of file EcalRegressionData.h.

float EcalRegressionData::scPreShowerEnergyOverSCRawEnergy ( ) const
inline

Definition at line 66 of file EcalRegressionData.h.

Referenced by fillVecEE_().

float divideBySCRawEnergy_(float numer) const
float scPreShowerEnergy() const
float EcalRegressionData::scRawEnergy ( ) const
inline

Definition at line 32 of file EcalRegressionData.h.

32 {return scRawEnergy_;}
float EcalRegressionData::scSeedR9 ( ) const
inline

Definition at line 67 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

67 {return divideBySCRawEnergy_(e3x3());}
float divideBySCRawEnergy_(float numer) const
float EcalRegressionData::seedClusEnergy ( ) const
inline

Definition at line 40 of file EcalRegressionData.h.

float EcalRegressionData::seedClusEnergyOverSCRawEnergy ( ) const
inline

Definition at line 68 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

float divideBySCRawEnergy_(float numer) const
float seedClusEnergy() const
float EcalRegressionData::seedCrysEtaOrX ( ) const
inline

Definition at line 53 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and pat::PATPhotonProducer::produce().

float EcalRegressionData::seedCrysIEtaOrIX ( ) const
inline

Definition at line 54 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and pat::PATPhotonProducer::produce().

float EcalRegressionData::seedCrysIPhiOrIY ( ) const
inline

Definition at line 55 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and pat::PATPhotonProducer::produce().

float EcalRegressionData::seedCrysPhiOrY ( ) const
inline

Definition at line 52 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and pat::PATPhotonProducer::produce().

float EcalRegressionData::seedLeftRightAsym ( ) const

Definition at line 16 of file EcalRegressionData.cc.

References eLeft(), and eRight().

Referenced by fillVecEB_(), and fillVecEE_().

17 {
18  float eLeftRightSum = eLeft()+eRight();
19  float eLeftRightDiff = eLeft()-eRight();
20  return eLeftRightSum !=0 ? eLeftRightDiff/eLeftRightSum : 0.;
21 }
float eLeft() const
float eRight() const
float EcalRegressionData::seedTopBottomAsym ( ) const

Definition at line 23 of file EcalRegressionData.cc.

References eBottom(), and eTop().

Referenced by fillVecEB_(), and fillVecEE_().

24 {
25  float eTopBottomSum = eTop()+eBottom();
26  float eTopBottomDiff = eTop()-eBottom();
27  return eTopBottomSum !=0 ? eTopBottomDiff/eTopBottomSum : 0.;
28 }
float eBottom() const
float EcalRegressionData::sigmaIEtaIEta ( ) const
inline

Definition at line 48 of file EcalRegressionData.h.

Referenced by fillVecEB_(), fillVecEE_(), and pat::PATPhotonProducer::produce().

48 {return sigmaIEtaIEta_;}
float EcalRegressionData::sigmaIEtaIPhi ( ) const
inline

Definition at line 49 of file EcalRegressionData.h.

Referenced by fillVecEB_(), fillVecEE_(), and pat::PATPhotonProducer::produce().

49 {return sigmaIEtaIPhi_;}
float EcalRegressionData::sigmaIPhiIPhi ( ) const
inline

Definition at line 50 of file EcalRegressionData.h.

Referenced by fillVecEB_(), fillVecEE_(), and pat::PATPhotonProducer::produce().

50 {return sigmaIPhiIPhi_;}
const std::vector<float>& EcalRegressionData::subClusDEta ( ) const
inline

Definition at line 62 of file EcalRegressionData.h.

Referenced by fillVecEB_(), fillVecEE_(), and pat::PATPhotonProducer::produce().

62 {return subClusDEta_;}
std::vector< float > subClusDEta_
float EcalRegressionData::subClusDEta ( size_t  clusNr) const

Definition at line 36 of file EcalRegressionData.cc.

References subClusDEta_.

37 {
38  if(clusNr<subClusDEta_.size()) return subClusDEta_[clusNr];
39  else return 0.;
40 }
std::vector< float > subClusDEta_
float EcalRegressionData::subClusDEta ( SubClusNr  clusNr) const
inline

Definition at line 81 of file EcalRegressionData.h.

References subClusDEta().

Referenced by subClusDEta().

81 {return subClusDEta(static_cast<int>(clusNr));}
const std::vector< float > & subClusDEta() const
const std::vector<float>& EcalRegressionData::subClusDPhi ( ) const
inline

Definition at line 61 of file EcalRegressionData.h.

Referenced by fillVecEB_(), fillVecEE_(), and pat::PATPhotonProducer::produce().

61 {return subClusDPhi_;}
std::vector< float > subClusDPhi_
float EcalRegressionData::subClusDPhi ( size_t  clusNr) const

Definition at line 42 of file EcalRegressionData.cc.

References subClusDPhi_.

43 {
44  if(clusNr<subClusDPhi_.size()) return subClusDPhi_[clusNr];
45  else return 0.;
46 }
std::vector< float > subClusDPhi_
float EcalRegressionData::subClusDPhi ( SubClusNr  clusNr) const
inline

Definition at line 80 of file EcalRegressionData.h.

References subClusDPhi().

Referenced by subClusDPhi().

80 {return subClusDPhi(static_cast<int>(clusNr));}
const std::vector< float > & subClusDPhi() const
const std::vector<float>& EcalRegressionData::subClusRawEnergy ( ) const
inline

Definition at line 60 of file EcalRegressionData.h.

Referenced by pat::PATPhotonProducer::produce().

60 {return subClusRawEnergy_;}
std::vector< float > subClusRawEnergy_
float EcalRegressionData::subClusRawEnergy ( size_t  clusNr) const

Definition at line 30 of file EcalRegressionData.cc.

References subClusRawEnergy_.

31 {
32  if(clusNr<subClusRawEnergy_.size()) return subClusRawEnergy_[clusNr];
33  else return 0.;
34 }
std::vector< float > subClusRawEnergy_
float EcalRegressionData::subClusRawEnergy ( SubClusNr  clusNr) const
inline

Definition at line 79 of file EcalRegressionData.h.

References subClusRawEnergy().

Referenced by subClusRawEnergy().

79 {return subClusRawEnergy(static_cast<int>(clusNr));}
const std::vector< float > & subClusRawEnergy() const
float EcalRegressionData::subClusRawEnergyOverSCRawEnergy ( size_t  clusNr) const
inline

Definition at line 74 of file EcalRegressionData.h.

Referenced by fillVecEB_(), and fillVecEE_().

74 {return divideBySCRawEnergy_(subClusRawEnergy(clusNr));}
const std::vector< float > & subClusRawEnergy() const
float divideBySCRawEnergy_(float numer) const
float EcalRegressionData::subClusRawEnergyOverSCRawEnergy ( SubClusNr  clusNr) const
inline

Definition at line 78 of file EcalRegressionData.h.

References subClusRawEnergyOverSCRawEnergy().

Referenced by subClusRawEnergyOverSCRawEnergy().

78 {return subClusRawEnergyOverSCRawEnergy(static_cast<int>(clusNr));}
float subClusRawEnergyOverSCRawEnergy(size_t clusNr) const

Member Data Documentation

float EcalRegressionData::e2nd_
private

Definition at line 122 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::e3x3_
private

Definition at line 123 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::eBottom_
private

Definition at line 125 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::eLeft_
private

Definition at line 126 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::eMax_
private

Definition at line 121 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::eRight_
private

Definition at line 127 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::eTop_
private

Definition at line 124 of file EcalRegressionData.h.

Referenced by clear(), and fill().

bool EcalRegressionData::isEB_
private

Definition at line 107 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::maxSubClusDR2_
private

Definition at line 139 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::maxSubClusDRDEta_
private

Definition at line 141 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::maxSubClusDRDPhi_
private

Definition at line 140 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::maxSubClusDRRawEnergy_
private

Definition at line 142 of file EcalRegressionData.h.

Referenced by clear(), and fill().

int EcalRegressionData::nrVtx_
private

Definition at line 148 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::scCalibEnergy_
private

Definition at line 111 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::scEta_
private

Definition at line 113 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::scEtaWidth_
private

Definition at line 115 of file EcalRegressionData.h.

Referenced by clear(), and fill().

int EcalRegressionData::scNrAdditionalClusters_
private

Definition at line 117 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::scPhi_
private

Definition at line 114 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::scPhiWidth_
private

Definition at line 116 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::scPreShowerEnergy_
private

Definition at line 112 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::scRawEnergy_
private

Definition at line 110 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::seedClusEnergy_
private

Definition at line 120 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::seedCrysEtaOrX_
private

Definition at line 134 of file EcalRegressionData.h.

Referenced by clear(), and fill().

int EcalRegressionData::seedCrysIEtaOrIX_
private

Definition at line 135 of file EcalRegressionData.h.

Referenced by clear(), and fill().

int EcalRegressionData::seedCrysIPhiOrIY_
private

Definition at line 136 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::seedCrysPhiOrY_
private

Definition at line 133 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::sigmaIEtaIEta_
private

Definition at line 128 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::sigmaIEtaIPhi_
private

Definition at line 129 of file EcalRegressionData.h.

Referenced by clear(), and fill().

float EcalRegressionData::sigmaIPhiIPhi_
private

Definition at line 130 of file EcalRegressionData.h.

Referenced by clear(), and fill().

std::vector<float> EcalRegressionData::subClusDEta_
private

Definition at line 145 of file EcalRegressionData.h.

Referenced by clear(), fill(), and subClusDEta().

std::vector<float> EcalRegressionData::subClusDPhi_
private

Definition at line 144 of file EcalRegressionData.h.

Referenced by clear(), fill(), and subClusDPhi().

std::vector<float> EcalRegressionData::subClusRawEnergy_
private

Definition at line 143 of file EcalRegressionData.h.

Referenced by clear(), fill(), and subClusRawEnergy().