CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Attributes | Private Attributes
SCEnergyCorrectorSemiParm Class Reference

#include <SCEnergyCorrectorSemiParm.h>

Public Member Functions

std::pair< double, double > getCorrections (const reco::SuperCluster &sc) const
 
void modifyObject (reco::SuperCluster &sc)
 
 SCEnergyCorrectorSemiParm ()
 
void setEvent (const edm::Event &e)
 
void setEventSetup (const edm::EventSetup &es)
 
void setTokens (const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
 
 ~SCEnergyCorrectorSemiParm ()
 

Protected Attributes

edm::ESHandle< CaloGeometrycalogeom_
 
edm::ESHandle< CaloTopologycalotopo_
 
edm::InputTag ecalHitsEBInputTag_
 
edm::InputTag ecalHitsEEInputTag_
 
const GBRForestDforesteb_
 
const GBRForestDforestee_
 
const GBRForestDforestsigmaeb_
 
const GBRForestDforestsigmaee_
 
edm::Handle< EcalRecHitCollectionrechitsEB_
 
edm::Handle< EcalRecHitCollectionrechitsEE_
 
std::string regressionKeyEB_
 
std::string regressionKeyEE_
 
edm::EDGetTokenT< EcalRecHitCollectiontokenEBRecHits_
 
edm::EDGetTokenT< EcalRecHitCollectiontokenEERecHits_
 
edm::EDGetTokenT< reco::VertexCollectiontokenVertices_
 
std::string uncertaintyKeyEB_
 
std::string uncertaintyKeyEE_
 
edm::InputTag vertexInputTag_
 
edm::Handle< reco::VertexCollectionvertices_
 

Private Attributes

float eThreshold_
 
bool isHLT_
 
int nHitsAboveThreshold_
 

Detailed Description

Definition at line 30 of file SCEnergyCorrectorSemiParm.h.

Constructor & Destructor Documentation

SCEnergyCorrectorSemiParm::SCEnergyCorrectorSemiParm ( )

Definition at line 16 of file SCEnergyCorrectorSemiParm.cc.

16  :
17 foresteb_(0),
18 forestee_(0),
21 calotopo_(0),
22 calogeom_(0)
23 {}
edm::ESHandle< CaloTopology > calotopo_
edm::ESHandle< CaloGeometry > calogeom_
SCEnergyCorrectorSemiParm::~SCEnergyCorrectorSemiParm ( )

Definition at line 26 of file SCEnergyCorrectorSemiParm.cc.

27 {}

Member Function Documentation

std::pair< double, double > SCEnergyCorrectorSemiParm::getCorrections ( const reco::SuperCluster sc) const

Definition at line 100 of file SCEnergyCorrectorSemiParm.cc.

References calotopo_, reco::SuperCluster::clusters(), reco::SuperCluster::clustersBegin(), reco::SuperCluster::clustersEnd(), constexpr, reco::deltaPhi(), reco::deltaR(), DetId::det(), EcalBarrel, photonPostprocessing_cfi::eMax, reco::CaloCluster::energy(), reco::CaloCluster::eta(), reco::SuperCluster::etaWidth(), foresteb_, forestee_, forestsigmaeb_, forestsigmaee_, DetId::Forward, GBRForestD::GetResponse(), reco::CaloCluster::hitsAndFractions(), EBDetId::ieta(), isHLT_, edm::isNotFinite(), EEDetId::ix(), hpstanc_transforms::max, interestingEgammaIsoDetIdsSequence_cff::maxDR, RecoTauDiscriminantConfiguration::mean, nHitsAboveThreshold_, AlCaHLTBitMon_ParallelJobs::p, reco::CaloCluster::phi(), reco::SuperCluster::phiWidth(), reco::SuperCluster::preshowerEnergy(), edm::ESHandle< T >::product(), reco::SuperCluster::rawEnergy(), rechitsEB_, rechitsEE_, reco::SuperCluster::seed(), reco::CaloCluster::seed(), edm::PtrVectorBase::size(), mathSSE::sqrt(), and vertices_.

Referenced by modifyObject().

100  {
101  std::pair<double, double> p;
102  p.first=-1;
103  p.second=-1;
104 
105  // protect against HGCal, don't mod the object
106  if( sc.seed()->seed().det() == DetId::Forward ) return p;
107 
108  const reco::CaloCluster &seedCluster = *(sc.seed());
109  const bool iseb = seedCluster.hitsAndFractions()[0].first.subdetId() == EcalBarrel;
110  const EcalRecHitCollection *recHits = iseb ? rechitsEB_.product() : rechitsEE_.product();
111 
112  const CaloTopology *topo = calotopo_.product();
113 
114  const double raw_energy = sc.rawEnergy();
115  const int numberOfClusters = sc.clusters().size();
116 
117  std::vector<float> localCovariances = EcalClusterTools::localCovariances(seedCluster,recHits,topo) ;
118 
119  if (not isHLT_) {
120  std::array<float, 29> eval;
121 
122  const float eLeft = EcalClusterTools::eLeft(seedCluster,recHits,topo);
123  const float eRight = EcalClusterTools::eRight(seedCluster,recHits,topo);
124  const float eTop = EcalClusterTools::eTop(seedCluster,recHits,topo);
125  const float eBottom = EcalClusterTools::eBottom(seedCluster,recHits,topo);
126 
127  float sigmaIetaIeta = sqrt(localCovariances[0]);
128  float sigmaIetaIphi = std::numeric_limits<float>::max();
129  float sigmaIphiIphi = std::numeric_limits<float>::max();
130 
131  // extra shower shapes
132  const float see_by_spp = sigmaIetaIeta*sigmaIphiIphi;
133  if( see_by_spp > 0 ) {
134  sigmaIetaIphi = localCovariances[1] / see_by_spp;
135  } else if ( localCovariances[1] > 0 ) {
136  sigmaIetaIphi = 1.f;
137  } else {
138  sigmaIetaIphi = -1.f;
139  }
140 
141  if (!edm::isNotFinite(localCovariances[2])) sigmaIphiIphi = sqrt(localCovariances[2]) ;
142 
143  // calculate sub-cluster variables
144  std::vector<float> clusterRawEnergy;
145  clusterRawEnergy.resize(std::max(3, numberOfClusters), 0);
146  std::vector<float> clusterDEtaToSeed;
147  clusterDEtaToSeed.resize(std::max(3, numberOfClusters), 0);
148  std::vector<float> clusterDPhiToSeed;
149  clusterDPhiToSeed.resize(std::max(3, numberOfClusters), 0);
150  float clusterMaxDR = 999.;
151  float clusterMaxDRDPhi = 999.;
152  float clusterMaxDRDEta = 999.;
153  float clusterMaxDRRawEnergy = 0.;
154 
155  size_t iclus = 0;
156  float maxDR = 0;
158  const edm::Ptr<reco::CaloCluster>& theseed = sc.seed();
159  // loop over all clusters that aren't the seed
160  auto clusend = sc.clustersEnd();
161  for( auto clus = sc.clustersBegin(); clus != clusend; ++clus ) {
162  pclus = *clus;
163 
164  if(theseed == pclus )
165  continue;
166  clusterRawEnergy[iclus] = pclus->energy();
167  clusterDPhiToSeed[iclus] = reco::deltaPhi(pclus->phi(),theseed->phi());
168  clusterDEtaToSeed[iclus] = pclus->eta() - theseed->eta();
169 
170  // find cluster with max dR
171  const auto the_dr = reco::deltaR(*pclus, *theseed);
172  if(the_dr > maxDR) {
173  maxDR = the_dr;
174  clusterMaxDR = maxDR;
175  clusterMaxDRDPhi = clusterDPhiToSeed[iclus];
176  clusterMaxDRDEta = clusterDEtaToSeed[iclus];
177  clusterMaxDRRawEnergy = clusterRawEnergy[iclus];
178  }
179  ++iclus;
180  }
181 
182  // SET INPUTS
183  eval[0] = vertices_->size();
184  eval[1] = raw_energy;
185  eval[2] = sc.etaWidth();
186  eval[3] = sc.phiWidth();
187  eval[4] = EcalClusterTools::e3x3(seedCluster,recHits,topo)/raw_energy;
188  eval[5] = seedCluster.energy()/raw_energy;
189  eval[6] = EcalClusterTools::eMax(seedCluster,recHits)/raw_energy;
190  eval[7] = EcalClusterTools::e2nd(seedCluster,recHits)/raw_energy;
191  eval[8] = (eLeft + eRight != 0.f ? (eLeft-eRight)/(eLeft+eRight) : 0.f);
192  eval[9] = (eTop + eBottom != 0.f ? (eTop-eBottom)/(eTop+eBottom) : 0.f);
193  eval[10] = sigmaIetaIeta;
194  eval[11] = sigmaIetaIphi;
195  eval[12] = sigmaIphiIphi;
196  eval[13] = std::max(0,numberOfClusters-1);
197  eval[14] = clusterMaxDR;
198  eval[15] = clusterMaxDRDPhi;
199  eval[16] = clusterMaxDRDEta;
200  eval[17] = clusterMaxDRRawEnergy/raw_energy;
201  eval[18] = clusterRawEnergy[0]/raw_energy;
202  eval[19] = clusterRawEnergy[1]/raw_energy;
203  eval[20] = clusterRawEnergy[2]/raw_energy;
204  eval[21] = clusterDPhiToSeed[0];
205  eval[22] = clusterDPhiToSeed[1];
206  eval[23] = clusterDPhiToSeed[2];
207  eval[24] = clusterDEtaToSeed[0];
208  eval[25] = clusterDEtaToSeed[1];
209  eval[26] = clusterDEtaToSeed[2];
210  if (iseb) {
211  EBDetId ebseedid(seedCluster.seed());
212  eval[27] = ebseedid.ieta();
213  eval[28] = ebseedid.iphi();
214  } else {
215  EEDetId eeseedid(seedCluster.seed());
216  eval[27] = eeseedid.ix();
217  eval[28] = eeseedid.iy();
218  }
219 
220  //magic numbers for MINUIT-like transformation of BDT output onto limited range
221  //(These should be stored inside the conditions object in the future as well)
222  constexpr double meanlimlow = 0.2;
223  constexpr double meanlimhigh = 2.0;
224  constexpr double meanoffset = meanlimlow + 0.5*(meanlimhigh-meanlimlow);
225  constexpr double meanscale = 0.5*(meanlimhigh-meanlimlow);
226 
227  constexpr double sigmalimlow = 0.0002;
228  constexpr double sigmalimhigh = 0.5;
229  constexpr double sigmaoffset = sigmalimlow + 0.5*(sigmalimhigh-sigmalimlow);
230  constexpr double sigmascale = 0.5*(sigmalimhigh-sigmalimlow);
231 
232  const GBRForestD *forestmean = iseb ? foresteb_ : forestee_;
233  const GBRForestD *forestsigma = iseb ? forestsigmaeb_ : forestsigmaee_;
234 
235  //these are the actual BDT responses
236  double rawmean = forestmean->GetResponse(eval.data());
237  double rawsigma = forestsigma->GetResponse(eval.data());
238 
239  //apply transformation to limited output range (matching the training)
240  double mean = meanoffset + meanscale*vdt::fast_sin(rawmean);
241  double sigma = sigmaoffset + sigmascale*vdt::fast_sin(rawsigma);
242 
243  double ecor = mean*(eval[1]);
244  const double sigmacor = sigma*ecor;
245 
246  p.first = ecor;
247  p.second = sigmacor;
248 
249  } else {
250 
251  std::array<float, 7> eval;
252  float clusterMaxDR = 999.;
253 
254  size_t iclus = 0;
255  float maxDR = 0;
257  const edm::Ptr<reco::CaloCluster>& theseed = sc.seed();
258 
259  // loop over all clusters that aren't the seed
260  auto clusend = sc.clustersEnd();
261  for( auto clus = sc.clustersBegin(); clus != clusend; ++clus ) {
262  pclus = *clus;
263 
264  if(theseed == pclus )
265  continue;
266 
267  // find cluster with max dR
268  const auto the_dr = reco::deltaR(*pclus, *theseed);
269  if(the_dr > maxDR) {
270  maxDR = the_dr;
271  clusterMaxDR = maxDR;
272  }
273  ++iclus;
274  }
275 
276  // SET INPUTS
277  eval[0] = nHitsAboveThreshold_;
278  eval[1] = sc.eta();
279  eval[2] = sc.phiWidth();
280  eval[3] = EcalClusterTools::e3x3(seedCluster,recHits,topo)/raw_energy;
281  eval[4] = std::max(0,numberOfClusters-1);
282  eval[5] = clusterMaxDR;
283  eval[6] = raw_energy;
284 
285  //magic numbers for MINUIT-like transformation of BDT output onto limited range
286  //(These should be stored inside the conditions object in the future as well)
287  constexpr double meanlimlow = 0.2;
288  constexpr double meanlimhigh = 2.0;
289  constexpr double meanoffset = meanlimlow + 0.5*(meanlimhigh-meanlimlow);
290  constexpr double meanscale = 0.5*(meanlimhigh-meanlimlow);
291 
292  const GBRForestD *forestmean = iseb ? foresteb_ : forestee_;
293 
294  double rawmean = forestmean->GetResponse(eval.data());
295  double mean = meanoffset + meanscale*vdt::fast_sin(rawmean);
296 
297  double ecor = mean*eval[6];
298  if (!iseb)
299  ecor = mean*eval[6]+sc.preshowerEnergy();
300 
301  p.first = ecor;
302  //p.second unchanged
303  }
304 
305  return p;
306 }
double GetResponse(const float *vector) const
Definition: GBRForestD.h:51
size_type size() const
Size of the RefVector.
Definition: PtrVectorBase.h:74
int ix() const
Definition: EEDetId.h:76
double phiWidth() const
obtain phi and eta width of the Super Cluster
Definition: SuperCluster.h:55
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
Definition: CaloCluster.h:195
const CaloClusterPtrVector & clusters() const
const access to the cluster list itself
Definition: SuperCluster.h:69
#define constexpr
edm::Handle< EcalRecHitCollection > rechitsEE_
double eta() const
pseudorapidity of cluster centroid
Definition: CaloCluster.h:166
bool isNotFinite(T x)
Definition: isFinite.h:10
double etaWidth() const
Definition: SuperCluster.h:56
edm::Handle< EcalRecHitCollection > rechitsEB_
edm::ESHandle< CaloTopology > calotopo_
T sqrt(T t)
Definition: SSEVec.h:18
auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
double energy() const
cluster energy
Definition: CaloCluster.h:124
int ieta() const
get the crystal ieta
Definition: EBDetId.h:51
double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
double rawEnergy() const
raw uncorrected energy (sum of energies of component BasicClusters)
Definition: SuperCluster.h:47
DetId seed() const
return DetId of seed
Definition: CaloCluster.h:205
edm::Handle< reco::VertexCollection > vertices_
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:169
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
T const * product() const
Definition: ESHandle.h:86
CaloCluster_iterator clustersEnd() const
last iterator over BasicCluster constituents
Definition: SuperCluster.h:78
void SCEnergyCorrectorSemiParm::modifyObject ( reco::SuperCluster sc)

Definition at line 309 of file SCEnergyCorrectorSemiParm.cc.

References getCorrections(), isHLT_, reco::CaloCluster::setCorrectedEnergy(), reco::CaloCluster::setCorrectedEnergyUncertainty(), and reco::CaloCluster::setEnergy().

309  {
310 
311  std::pair<double, double> cor = getCorrections(sc);
312  if(cor.first<0) return;
313  sc.setEnergy(cor.first);
314  sc.setCorrectedEnergy(cor.first);
315  if(! isHLT_ && cor.second>=0.) sc.setCorrectedEnergyUncertainty(cor.second);
316 }
void setEnergy(double energy)
Definition: CaloCluster.h:111
void setCorrectedEnergy(double cenergy)
Definition: CaloCluster.h:112
void setCorrectedEnergyUncertainty(float energyerr)
Definition: CaloCluster.h:113
std::pair< double, double > getCorrections(const reco::SuperCluster &sc) const
void SCEnergyCorrectorSemiParm::setEvent ( const edm::Event e)

Definition at line 71 of file SCEnergyCorrectorSemiParm.cc.

References edm::SortedCollection< T, SORT >::begin(), edm::SortedCollection< T, SORT >::end(), eThreshold_, edm::Event::getByToken(), isHLT_, nHitsAboveThreshold_, nullptr, EcalDeadCellBoundaryEnergyFilter_cfi::recHitsEB, rechitsEB_, EcalDeadCellBoundaryEnergyFilter_cfi::recHitsEE, rechitsEE_, tokenEBRecHits_, tokenEERecHits_, tokenVertices_, and vertices_.

71  {
72 
75 
76  if (not isHLT_)
78  else {
80  const EcalRecHitCollection *recHitsEB = ( rechitsEB_.isValid() ? rechitsEB_.product() : nullptr );
81  const EcalRecHitCollection *recHitsEE = ( rechitsEE_.isValid() ? rechitsEE_.product() : nullptr );
82 
83  if( nullptr != recHitsEB ) {
84  for (EcalRecHitCollection::const_iterator it=recHitsEB->begin(); it!=recHitsEB->end(); ++it) {
85  if (it->energy() > eThreshold_)
87  }
88  }
89 
90  if( nullptr != recHitsEE ) {
91  for (EcalRecHitCollection::const_iterator it=recHitsEE->begin(); it!=recHitsEE->end(); ++it) {
92  if (it->energy() > eThreshold_)
94  }
95  }
96  }
97 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
std::vector< EcalRecHit >::const_iterator const_iterator
#define nullptr
edm::Handle< EcalRecHitCollection > rechitsEE_
edm::EDGetTokenT< EcalRecHitCollection > tokenEERecHits_
edm::Handle< EcalRecHitCollection > rechitsEB_
const_iterator end() const
edm::EDGetTokenT< EcalRecHitCollection > tokenEBRecHits_
edm::Handle< reco::VertexCollection > vertices_
edm::EDGetTokenT< reco::VertexCollection > tokenVertices_
const_iterator begin() const
void SCEnergyCorrectorSemiParm::setEventSetup ( const edm::EventSetup es)

Definition at line 49 of file SCEnergyCorrectorSemiParm.cc.

References calogeom_, calotopo_, foresteb_, forestee_, forestsigmaeb_, forestsigmaee_, edm::EventSetup::get(), edm::ESHandle< T >::product(), regressionKeyEB_, regressionKeyEE_, uncertaintyKeyEB_, and uncertaintyKeyEE_.

49  {
50 
51  es.get<CaloTopologyRecord>().get(calotopo_);
52  es.get<CaloGeometryRecord>().get(calogeom_);
53 
55  edm::ESHandle<GBRForestD> readerebvar;
57  edm::ESHandle<GBRForestD> readereevar;
58 
59  es.get<GBRDWrapperRcd>().get(regressionKeyEB_, readereb);
60  es.get<GBRDWrapperRcd>().get(uncertaintyKeyEB_, readerebvar);
61  es.get<GBRDWrapperRcd>().get(regressionKeyEE_, readeree);
62  es.get<GBRDWrapperRcd>().get(uncertaintyKeyEE_, readereevar);
63 
64  foresteb_ = readereb.product();
65  forestsigmaeb_ = readerebvar.product();
66  forestee_ = readeree.product();
67  forestsigmaee_ = readereevar.product();
68 }
edm::ESHandle< CaloTopology > calotopo_
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:86
edm::ESHandle< CaloGeometry > calogeom_
void SCEnergyCorrectorSemiParm::setTokens ( const edm::ParameterSet iConfig,
edm::ConsumesCollector cc 
)

Definition at line 30 of file SCEnergyCorrectorSemiParm.cc.

References edm::ConsumesCollector::consumes(), eThreshold_, edm::ParameterSet::getParameter(), isHLT_, regressionKeyEB_, regressionKeyEE_, AlCaHLTBitMon_QueryRunRegistry::string, tokenEBRecHits_, tokenEERecHits_, tokenVertices_, uncertaintyKeyEB_, and uncertaintyKeyEE_.

30  {
31 
32  isHLT_ = iConfig.getParameter<bool>("isHLT");
33 
36 
37  regressionKeyEB_ = iConfig.getParameter<std::string>("regressionKeyEB");
38  uncertaintyKeyEB_ = iConfig.getParameter<std::string>("uncertaintyKeyEB");
39  regressionKeyEE_ = iConfig.getParameter<std::string>("regressionKeyEE");
40  uncertaintyKeyEE_ = iConfig.getParameter<std::string>("uncertaintyKeyEE");
41 
42  if (not isHLT_)
43  tokenVertices_ = cc.consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertexCollection"));
44  else
45  eThreshold_ = iConfig.getParameter<double>("eRecHitThreshold");
46 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
edm::EDGetTokenT< EcalRecHitCollection > tokenEERecHits_
edm::EDGetTokenT< EcalRecHitCollection > tokenEBRecHits_
edm::EDGetTokenT< reco::VertexCollection > tokenVertices_

Member Data Documentation

edm::ESHandle<CaloGeometry> SCEnergyCorrectorSemiParm::calogeom_
protected

Definition at line 50 of file SCEnergyCorrectorSemiParm.h.

Referenced by setEventSetup().

edm::ESHandle<CaloTopology> SCEnergyCorrectorSemiParm::calotopo_
protected

Definition at line 49 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), and setEventSetup().

edm::InputTag SCEnergyCorrectorSemiParm::ecalHitsEBInputTag_
protected

Definition at line 60 of file SCEnergyCorrectorSemiParm.h.

edm::InputTag SCEnergyCorrectorSemiParm::ecalHitsEEInputTag_
protected

Definition at line 61 of file SCEnergyCorrectorSemiParm.h.

float SCEnergyCorrectorSemiParm::eThreshold_
private

Definition at line 72 of file SCEnergyCorrectorSemiParm.h.

Referenced by setEvent(), and setTokens().

const GBRForestD* SCEnergyCorrectorSemiParm::foresteb_
protected

Definition at line 44 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), and setEventSetup().

const GBRForestD* SCEnergyCorrectorSemiParm::forestee_
protected

Definition at line 45 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), and setEventSetup().

const GBRForestD* SCEnergyCorrectorSemiParm::forestsigmaeb_
protected

Definition at line 46 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), and setEventSetup().

const GBRForestD* SCEnergyCorrectorSemiParm::forestsigmaee_
protected

Definition at line 47 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), and setEventSetup().

bool SCEnergyCorrectorSemiParm::isHLT_
private

Definition at line 70 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), modifyObject(), setEvent(), and setTokens().

int SCEnergyCorrectorSemiParm::nHitsAboveThreshold_
private

Definition at line 71 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), and setEvent().

edm::Handle<EcalRecHitCollection> SCEnergyCorrectorSemiParm::rechitsEB_
protected

Definition at line 57 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), and setEvent().

edm::Handle<EcalRecHitCollection> SCEnergyCorrectorSemiParm::rechitsEE_
protected

Definition at line 58 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), and setEvent().

std::string SCEnergyCorrectorSemiParm::regressionKeyEB_
protected

Definition at line 64 of file SCEnergyCorrectorSemiParm.h.

Referenced by setEventSetup(), and setTokens().

std::string SCEnergyCorrectorSemiParm::regressionKeyEE_
protected

Definition at line 66 of file SCEnergyCorrectorSemiParm.h.

Referenced by setEventSetup(), and setTokens().

edm::EDGetTokenT<EcalRecHitCollection> SCEnergyCorrectorSemiParm::tokenEBRecHits_
protected

Definition at line 52 of file SCEnergyCorrectorSemiParm.h.

Referenced by setEvent(), and setTokens().

edm::EDGetTokenT<EcalRecHitCollection> SCEnergyCorrectorSemiParm::tokenEERecHits_
protected

Definition at line 53 of file SCEnergyCorrectorSemiParm.h.

Referenced by setEvent(), and setTokens().

edm::EDGetTokenT<reco::VertexCollection> SCEnergyCorrectorSemiParm::tokenVertices_
protected

Definition at line 54 of file SCEnergyCorrectorSemiParm.h.

Referenced by setEvent(), and setTokens().

std::string SCEnergyCorrectorSemiParm::uncertaintyKeyEB_
protected

Definition at line 65 of file SCEnergyCorrectorSemiParm.h.

Referenced by setEventSetup(), and setTokens().

std::string SCEnergyCorrectorSemiParm::uncertaintyKeyEE_
protected

Definition at line 67 of file SCEnergyCorrectorSemiParm.h.

Referenced by setEventSetup(), and setTokens().

edm::InputTag SCEnergyCorrectorSemiParm::vertexInputTag_
protected

Definition at line 62 of file SCEnergyCorrectorSemiParm.h.

edm::Handle<reco::VertexCollection> SCEnergyCorrectorSemiParm::vertices_
protected

Definition at line 56 of file SCEnergyCorrectorSemiParm.h.

Referenced by getCorrections(), and setEvent().