CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
PreshowerPhiClusterProducer Class Reference
Inheritance diagram for PreshowerPhiClusterProducer:
edm::stream::EDProducer<>

Public Types

typedef math::XYZPoint Point
 
- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Public Member Functions

 PreshowerPhiClusterProducer (const edm::ParameterSet &ps)
 
void produce (edm::Event &evt, const edm::EventSetup &es) override
 
void set (const edm::EventSetup &es)
 
 ~PreshowerPhiClusterProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

double aEta_ [4]
 
double alpha0_
 
double alpha1_
 
double alpha2_
 
double alpha3_
 
std::string assocSClusterCollection_
 
double bEta_ [4]
 
edm::ESGetToken< CaloGeometry, CaloGeometryRecordcaloGeometryToken_
 
edm::EDGetTokenT< reco::SuperClusterCollectionendcapSClusterToken_
 
edm::ESHandle< ESChannelStatusesChannelStatus_
 
edm::ESGetToken< ESChannelStatus, ESChannelStatusRcdesChannelStatusToken_
 
edm::ESHandle< ESEEIntercalibConstantsesEEInterCalib_
 
edm::ESGetToken< ESEEIntercalibConstants, ESEEIntercalibConstantsRcdesEEInterCalibToken_
 
edm::ESHandle< ESGainesgain_
 
edm::ESGetToken< ESGain, ESGainRcdesGainToken_
 
edm::ESHandle< ESMIPToGeVConstantesMIPToGeV_
 
edm::ESGetToken< ESMIPToGeVConstant, ESMIPToGeVConstantRcdesMIPToGeVToken_
 
edm::ESHandle< ESMissingEnergyCalibrationesMissingECalib_
 
edm::ESGetToken< ESMissingEnergyCalibration, ESMissingEnergyCalibrationRcdesMissingECalibToken_
 
float esPhiClusterDeltaEta_
 
float esPhiClusterDeltaPhi_
 
double etThresh_
 
double gamma0_
 
double gamma1_
 
double gamma2_
 
double gamma3_
 
double mip_
 
int nEvt_
 
PreshowerPhiClusterAlgopresh_algo
 
std::string preshClusterCollectionX_
 
std::string preshClusterCollectionY_
 
edm::EDGetTokenT< EcalRecHitCollectionpreshHitToken_
 

Detailed Description

Definition at line 45 of file PreshowerPhiClusterProducer.cc.

Member Typedef Documentation

◆ Point

Definition at line 47 of file PreshowerPhiClusterProducer.cc.

Constructor & Destructor Documentation

◆ PreshowerPhiClusterProducer()

PreshowerPhiClusterProducer::PreshowerPhiClusterProducer ( const edm::ParameterSet ps)
explicit

Definition at line 110 of file PreshowerPhiClusterProducer.cc.

References edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

110  {
111  // use configuration file to setup input/output collection names
112  preshHitToken_ = consumes<EcalRecHitCollection>(ps.getParameter<edm::InputTag>("preshRecHitProducer"));
113 
114  // Name of a SuperClusterCollection to make associations:
116  consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("endcapSClusterProducer"));
117 
118  esGainToken_ = esConsumes<ESGain, ESGainRcd>();
119  esMIPToGeVToken_ = esConsumes<ESMIPToGeVConstant, ESMIPToGeVConstantRcd>();
120  esEEInterCalibToken_ = esConsumes<ESEEIntercalibConstants, ESEEIntercalibConstantsRcd>();
121  esMissingECalibToken_ = esConsumes<ESMissingEnergyCalibration, ESMissingEnergyCalibrationRcd>();
122  esChannelStatusToken_ = esConsumes<ESChannelStatus, ESChannelStatusRcd>();
123  caloGeometryToken_ = esConsumes<CaloGeometry, CaloGeometryRecord>();
124 
125  // Output collections:
126  preshClusterCollectionX_ = ps.getParameter<std::string>("preshClusterCollectionX");
127  preshClusterCollectionY_ = ps.getParameter<std::string>("preshClusterCollectionY");
128 
129  assocSClusterCollection_ = ps.getParameter<std::string>("assocSClusterCollection");
130 
131  produces<reco::PreshowerClusterCollection>(preshClusterCollectionX_);
132  produces<reco::PreshowerClusterCollection>(preshClusterCollectionY_);
133  produces<reco::SuperClusterCollection>(assocSClusterCollection_);
134 
135  float esStripECut = ps.getParameter<double>("esStripEnergyCut");
136  esPhiClusterDeltaEta_ = ps.getParameter<double>("esPhiClusterDeltaEta");
137  esPhiClusterDeltaPhi_ = ps.getParameter<double>("esPhiClusterDeltaPhi");
138 
139  etThresh_ = ps.getParameter<double>("etThresh");
140 
141  presh_algo = new PreshowerPhiClusterAlgo(esStripECut);
142 }
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::ESGetToken< ESChannelStatus, ESChannelStatusRcd > esChannelStatusToken_
PreshowerPhiClusterAlgo * presh_algo
edm::ESGetToken< ESGain, ESGainRcd > esGainToken_
edm::ESGetToken< ESMissingEnergyCalibration, ESMissingEnergyCalibrationRcd > esMissingECalibToken_
edm::ESGetToken< ESEEIntercalibConstants, ESEEIntercalibConstantsRcd > esEEInterCalibToken_
edm::EDGetTokenT< reco::SuperClusterCollection > endcapSClusterToken_
edm::EDGetTokenT< EcalRecHitCollection > preshHitToken_
edm::ESGetToken< ESMIPToGeVConstant, ESMIPToGeVConstantRcd > esMIPToGeVToken_

◆ ~PreshowerPhiClusterProducer()

PreshowerPhiClusterProducer::~PreshowerPhiClusterProducer ( )
override

Definition at line 144 of file PreshowerPhiClusterProducer.cc.

144 { delete presh_algo; }
PreshowerPhiClusterAlgo * presh_algo

Member Function Documentation

◆ produce()

void PreshowerPhiClusterProducer::produce ( edm::Event evt,
const edm::EventSetup es 
)
override

Definition at line 146 of file PreshowerPhiClusterProducer.cc.

References edm::SortedCollection< T, SORT >::begin(), GetRecoTauVFromDQM_MC_cff::cl2, EgHLTOffHistBins_cfi::deltaE, reco::deltaPhi(), MillePedeFileConverter_cfg::e, StorageManager_cfg::e1, DetId::Ecal, EcalPreshower, edm::SortedCollection< T, SORT >::end(), reco::CaloCluster::energy(), ESCondObjectContainer< T >::find(), edm::Event::getByToken(), edm::EventSetup::getHandle(), ESCondObjectContainer< T >::getMap(), CaloGeometry::getSubdetectorGeometry(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, LogTrace, CommPDSkim_cfg::maxDeltaPhi, VBFGenJetFilter_cfi::minDeltaPhi, eostools::move(), point, edm::Handle< T >::product(), edm::PtrVector< T >::push_back(), edm::Event::put(), reco::PreshowerCluster::setBCRef(), reco::SuperCluster::setPreshowerEnergyPlane1(), funct::sin(), edm::SortedCollection< T, SORT >::size(), X, beamSpotPI::Y, and beamSpotPI::Z.

146  {
149 
150  // get the ECAL geometry:
152 
153  // retrieve ES-EE intercalibration constants and channel status
154  set(es);
155  const ESChannelStatus* channelStatus = esChannelStatus_.product();
156 
157  const CaloSubdetectorGeometry* geometry_p = (geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalPreshower));
158 
159  // create unique_ptr to a PreshowerClusterCollection
160  auto clusters_p1 = std::make_unique<reco::PreshowerClusterCollection>();
161  auto clusters_p2 = std::make_unique<reco::PreshowerClusterCollection>();
162  // create new collection of corrected super clusters
163  auto superclusters_p = std::make_unique<reco::SuperClusterCollection>();
164 
165  // fetch the product (pSuperClusters)
166  evt.getByToken(endcapSClusterToken_, pSuperClusters);
167  const reco::SuperClusterCollection* SClusts = pSuperClusters.product();
168 
169  // fetch the product (RecHits)
170  evt.getByToken(preshHitToken_, pRecHits);
171  // pointer to the object in the product
172  const EcalRecHitCollection* rechits = pRecHits.product(); // EcalRecHitCollection hit_collection = *rhcHandle;
173 
174  LogTrace("EcalClusters") << "PreshowerPhiClusterProducerInfo: ### Total # of preshower RecHits: " << rechits->size();
175 
176  // make the map of rechits:
177  std::map<DetId, EcalRecHit> rechits_map;
179  for (it = rechits->begin(); it != rechits->end(); it++) {
180  // remove bad ES rechits
181  if (it->recoFlag() == 1 || it->recoFlag() == 14 || (it->recoFlag() <= 10 && it->recoFlag() >= 5))
182  continue;
183  //Make the map of DetID, EcalRecHit pairs
184  rechits_map.insert(std::make_pair(it->id(), *it));
185  }
186  // The set of used DetID's for a given event:
187  std::set<DetId> used_strips;
188  used_strips.clear();
189  LogTrace("EcalClusters") << "PreshowerPhiClusterProducerInfo: ### rechits_map of size " << rechits_map.size()
190  << " was created!";
191 
192  reco::PreshowerClusterCollection clusters1, clusters2; // output collection of corrected PCs
193  reco::SuperClusterCollection new_SC; // output collection of corrected SCs
194 
195  //make cycle over super clusters
196  reco::SuperClusterCollection::const_iterator it_super;
197  int isc = 0;
198  for (it_super = SClusts->begin(); it_super != SClusts->end(); ++it_super) {
199  float e1 = 0;
200  float e2 = 0;
201  float deltaE = 0;
202 
204  ++isc;
205  LogTrace("EcalClusters") << " superE = " << it_super->energy() << " superETA = " << it_super->eta()
206  << " superPHI = " << it_super->phi();
207 
208  //cout<<"=== new SC ==="<<endl;
209  //cout<<"superE = "<<it_super->energy()<<" superETA = "<<it_super->eta()<<" superPHI = "<<it_super->phi()<<endl;
210 
211  int nBC = 0;
212  int condP1 = 1; // 0: dead channel; 1: active channel
213  int condP2 = 1;
214  float maxDeltaPhi = 0;
215  float minDeltaPhi = 0;
216  float refPhi = 0;
217 
218  reco::CaloCluster_iterator bc_iter = it_super->clustersBegin();
219  for (; bc_iter != it_super->clustersEnd(); ++bc_iter) {
220  if (nBC == 0) {
221  refPhi = (*bc_iter)->phi();
222  } else {
223  if (reco::deltaPhi((*bc_iter)->phi(), refPhi) > 0 && reco::deltaPhi((*bc_iter)->phi(), refPhi) > maxDeltaPhi)
224  maxDeltaPhi = reco::deltaPhi((*bc_iter)->phi(), refPhi);
225  if (reco::deltaPhi((*bc_iter)->phi(), refPhi) < 0 && reco::deltaPhi((*bc_iter)->phi(), refPhi) < minDeltaPhi)
226  minDeltaPhi = reco::deltaPhi((*bc_iter)->phi(), refPhi);
227  //cout<<"delta phi : "<<reco::deltaPhi((*bc_iter)->phi(), refPhi)<<endl;
228  }
229  //cout<<"BC : "<<nBC<<" "<<(*bc_iter)->energy()<<" "<<(*bc_iter)->eta()<<" "<<(*bc_iter)->phi()<<endl;
230  nBC++;
231  }
234 
235  nBC = 0;
236  for (bc_iter = it_super->clustersBegin(); bc_iter != it_super->clustersEnd(); ++bc_iter) {
237  if (geometry_p) {
238  // Get strip position at intersection point of the line EE - Vertex:
239  double X = (*bc_iter)->x();
240  double Y = (*bc_iter)->y();
241  double Z = (*bc_iter)->z();
242  const GlobalPoint point(X, Y, Z);
243 
244  DetId tmp1 = (dynamic_cast<const EcalPreshowerGeometry*>(geometry_p))->getClosestCellInPlane(point, 1);
245  DetId tmp2 = (dynamic_cast<const EcalPreshowerGeometry*>(geometry_p))->getClosestCellInPlane(point, 2);
246  ESDetId strip1 = (tmp1 == DetId(0)) ? ESDetId(0) : ESDetId(tmp1);
247  ESDetId strip2 = (tmp2 == DetId(0)) ? ESDetId(0) : ESDetId(tmp2);
248 
249  if (nBC == 0) {
250  if (strip1 != ESDetId(0) && strip2 != ESDetId(0)) {
251  ESChannelStatusMap::const_iterator status_p1 = channelStatus->getMap().find(strip1);
252  ESChannelStatusMap::const_iterator status_p2 = channelStatus->getMap().find(strip2);
253  if (status_p1->getStatusCode() == 1)
254  condP1 = 0;
255  if (status_p2->getStatusCode() == 1)
256  condP2 = 0;
257  } else if (strip1 == ESDetId(0)) {
258  condP1 = 0;
259  } else if (strip2 == ESDetId(0)) {
260  condP2 = 0;
261  }
262 
263  //cout<<"starting cluster : "<<maxDeltaPhi<<" "<<minDeltaPhi<<" "<<esPhiClusterDeltaEta_<<endl;
264  //cout<<"do plane 1 === "<<strip1.zside()<<" "<<strip1.plane()<<" "<<strip1.six()<<" "<<strip1.siy()<<" "<<strip1.strip()<<endl;
265  // Get a vector of ES clusters (found by the PreshSeeded algorithm) associated with a given EE basic cluster.
267  strip1, &used_strips, &rechits_map, geometry_p, esPhiClusterDeltaEta_, minDeltaPhi, maxDeltaPhi);
268  cl1.setBCRef(*bc_iter);
269  clusters1.push_back(cl1);
270  e1 += cl1.energy();
271 
272  //cout<<"do plane 2 === "<<strip2.zside()<<" "<<strip2.plane()<<" "<<strip2.six()<<" "<<strip2.siy()<<" "<<strip2.strip()<<endl;
274  strip2, &used_strips, &rechits_map, geometry_p, esPhiClusterDeltaEta_, minDeltaPhi, maxDeltaPhi);
275  cl2.setBCRef(*bc_iter);
276  clusters2.push_back(cl2);
277  e2 += cl2.energy();
278  }
279  }
280 
281  new_BC.push_back(*bc_iter);
282  nBC++;
283  } // end of cycle over BCs
284 
285  LogTrace("EcalClusters") << " For SC #" << isc - 1 << ", containing " << it_super->clustersSize()
286  << " basic clusters, PreshowerPhiClusterAlgo made " << clusters1.size()
287  << " in X plane and " << clusters2.size() << " in Y plane "
288  << " preshower clusters ";
289 
290  // update energy of the SuperCluster
291  if (e1 + e2 > 1.0e-10) {
292  e1 = e1 / mip_; // GeV to #MIPs
293  e2 = e2 / mip_;
294 
295  if (condP1 == 1 && condP2 == 1) {
296  deltaE = gamma0_ * (e1 + alpha0_ * e2);
297  } else if (condP1 == 1 && condP2 == 0) {
298  deltaE = gamma1_ * (e1 + alpha1_ * e2);
299  } else if (condP1 == 0 && condP2 == 1) {
300  deltaE = gamma2_ * (e1 + alpha2_ * e2);
301  } else if (condP1 == 0 && condP2 == 0) {
302  deltaE = gamma3_ * (e1 + alpha3_ * e2);
303  }
304  }
305 
306  //corrected Energy
307  float E = it_super->energy() + deltaE;
308 
309  LogTrace("EcalClusters") << " Creating corrected SC ";
310 
311  reco::SuperCluster sc(E, it_super->position(), it_super->seed(), new_BC, deltaE);
313  sc.setPreshowerEnergyPlane2(e2 * mip_);
314  if (condP1 == 1 && condP2 == 1)
315  sc.setPreshowerPlanesStatus(0);
316  else if (condP1 == 1 && condP2 == 0)
317  sc.setPreshowerPlanesStatus(1);
318  else if (condP1 == 0 && condP2 == 1)
319  sc.setPreshowerPlanesStatus(2);
320  else if (condP1 == 0 && condP2 == 0)
321  sc.setPreshowerPlanesStatus(3);
322 
323  if (etThresh_ > 0) { // calling postion().theta can be expensive
324  if (sc.energy() * sin(sc.position().theta()) > etThresh_)
325  new_SC.push_back(sc);
326  } else {
327  new_SC.push_back(sc);
328  }
329 
330  } // end of cycle over SCs
331 
332  // copy the preshower clusters into collections and put in the Event:
333  clusters_p1->assign(clusters1.begin(), clusters1.end());
334  clusters_p2->assign(clusters2.begin(), clusters2.end());
335  // put collection of preshower clusters to the event
336  evt.put(std::move(clusters_p1), preshClusterCollectionX_);
337  evt.put(std::move(clusters_p2), preshClusterCollectionY_);
338  LogTrace("EcalClusters") << "Preshower clusters added to the event";
339 
340  // put collection of corrected super clusters to the event
341  superclusters_p->assign(new_SC.begin(), new_SC.end());
342  evt.put(std::move(superclusters_p), assocSClusterCollection_);
343  LogTrace("EcalClusters") << "Corrected SClusters added to the event";
344 }
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
PreshowerPhiClusterAlgo * presh_algo
size_type size() const
void push_back(Ptr< T > const &iPtr)
Definition: PtrVector.h:152
reco::PreshowerCluster makeOneCluster(ESDetId strip, HitsID *used_strips, RecHitsMap *rechits_map, const CaloSubdetectorGeometry *geometry_p, double deltaEta, double minDeltaPhi, double maxDeltaPhi)
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
T const * product() const
Definition: Handle.h:70
std::vector< EcalRecHit >::const_iterator const_iterator
#define X(str)
Definition: MuonsGrabber.cc:38
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:526
const_iterator find(uint32_t rawId) const
#define LogTrace(id)
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
void setBCRef(const CaloClusterPtr &r)
DetIds of component RecHits – now inherited from CaloCluster.
std::vector< PreshowerCluster > PreshowerClusterCollection
collection of PreshowerCluster objects
edm::ESHandle< ESChannelStatus > esChannelStatus_
const_iterator begin() const
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
const_iterator end() const
double energy() const
cluster energy
Definition: CaloCluster.h:149
Definition: DetId.h:17
std::vector< Item >::const_iterator const_iterator
edm::EDGetTokenT< reco::SuperClusterCollection > endcapSClusterToken_
const self & getMap() const
edm::EDGetTokenT< EcalRecHitCollection > preshHitToken_
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
void setPreshowerEnergyPlane1(double preshowerEnergy1)
Definition: SuperCluster.h:73
def move(src, dest)
Definition: eostools.py:511
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5

◆ set()

void PreshowerPhiClusterProducer::set ( const edm::EventSetup es)

Definition at line 346 of file PreshowerPhiClusterProducer.cc.

References PedestalClient_cfi::gain, ESEEIntercalibConstants::getAlphaHigh0(), ESEEIntercalibConstants::getAlphaHigh1(), ESEEIntercalibConstants::getAlphaHigh2(), ESEEIntercalibConstants::getAlphaHigh3(), ESEEIntercalibConstants::getAlphaLow0(), ESEEIntercalibConstants::getAlphaLow1(), ESEEIntercalibConstants::getAlphaLow2(), ESEEIntercalibConstants::getAlphaLow3(), ESMissingEnergyCalibration::getConstAEta0(), ESMissingEnergyCalibration::getConstAEta1(), ESMissingEnergyCalibration::getConstAEta2(), ESMissingEnergyCalibration::getConstAEta3(), ESMissingEnergyCalibration::getConstBEta0(), ESMissingEnergyCalibration::getConstBEta1(), ESMissingEnergyCalibration::getConstBEta2(), ESMissingEnergyCalibration::getConstBEta3(), ESMIPToGeVConstant::getESValueHigh(), ESMIPToGeVConstant::getESValueLow(), ESEEIntercalibConstants::getGammaHigh0(), ESEEIntercalibConstants::getGammaHigh1(), ESEEIntercalibConstants::getGammaHigh2(), ESEEIntercalibConstants::getGammaHigh3(), ESEEIntercalibConstants::getGammaLow1(), ESEEIntercalibConstants::getGammaLow2(), and edm::EventSetup::getHandle().

346  {
348  const ESGain* gain = esgain_.product();
349 
350  double ESGain = gain->getESGain();
351 
353  const ESMIPToGeVConstant* mipToGeV = esMIPToGeV_.product();
354 
355  mip_ = (ESGain == 1) ? mipToGeV->getESValueLow() : mipToGeV->getESValueHigh();
356 
358 
360  const ESEEIntercalibConstants* esEEInterCalib = esEEInterCalib_.product();
361 
362  // both planes work
363  gamma0_ = (ESGain == 1) ? 0.02 : esEEInterCalib->getGammaHigh0();
364  alpha0_ = (ESGain == 1) ? esEEInterCalib->getAlphaLow0() : esEEInterCalib->getAlphaHigh0();
365 
366  // only first plane works
367  gamma1_ = (ESGain == 1) ? (0.02 * esEEInterCalib->getGammaLow1()) : esEEInterCalib->getGammaHigh1();
368  alpha1_ = (ESGain == 1) ? esEEInterCalib->getAlphaLow1() : esEEInterCalib->getAlphaHigh1();
369 
370  // only second plane works
371  gamma2_ = (ESGain == 1) ? (0.02 * esEEInterCalib->getGammaLow2()) : esEEInterCalib->getGammaHigh2();
372  alpha2_ = (ESGain == 1) ? esEEInterCalib->getAlphaLow2() : esEEInterCalib->getAlphaHigh2();
373 
374  // both planes do not work
375  gamma3_ = (ESGain == 1) ? 0.02 : esEEInterCalib->getGammaHigh3();
376  alpha3_ = (ESGain == 1) ? esEEInterCalib->getAlphaLow3() : esEEInterCalib->getAlphaHigh3();
377 
379  const ESMissingEnergyCalibration* esMissingECalib = esMissingECalib_.product();
380 
381  // |eta| < 1.9
382  aEta_[0] = esMissingECalib->getConstAEta0();
383  bEta_[0] = esMissingECalib->getConstBEta0();
384 
385  // 1.9 < |eta| < 2.1
386  aEta_[1] = esMissingECalib->getConstAEta1();
387  bEta_[1] = esMissingECalib->getConstBEta1();
388 
389  // 2.1 < |eta| < 2.3
390  aEta_[2] = esMissingECalib->getConstAEta2();
391  bEta_[2] = esMissingECalib->getConstBEta2();
392 
393  // 2.3 < |eta| < 2.5
394  aEta_[3] = esMissingECalib->getConstAEta3();
395  bEta_[3] = esMissingECalib->getConstBEta3();
396 }
float getESValueHigh() const
edm::ESGetToken< ESChannelStatus, ESChannelStatusRcd > esChannelStatusToken_
Definition: ESGain.h:7
edm::ESGetToken< ESGain, ESGainRcd > esGainToken_
edm::ESGetToken< ESMissingEnergyCalibration, ESMissingEnergyCalibrationRcd > esMissingECalibToken_
T const * product() const
Definition: ESHandle.h:86
edm::ESHandle< ESMIPToGeVConstant > esMIPToGeV_
edm::ESHandle< ESMissingEnergyCalibration > esMissingECalib_
edm::ESGetToken< ESEEIntercalibConstants, ESEEIntercalibConstantsRcd > esEEInterCalibToken_
edm::ESHandle< ESEEIntercalibConstants > esEEInterCalib_
float getESValueLow() const
edm::ESHandle< ESChannelStatus > esChannelStatus_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
edm::ESGetToken< ESMIPToGeVConstant, ESMIPToGeVConstantRcd > esMIPToGeVToken_

Member Data Documentation

◆ aEta_

double PreshowerPhiClusterProducer::aEta_[4]
private

Definition at line 91 of file PreshowerPhiClusterProducer.cc.

◆ alpha0_

double PreshowerPhiClusterProducer::alpha0_
private

Definition at line 87 of file PreshowerPhiClusterProducer.cc.

◆ alpha1_

double PreshowerPhiClusterProducer::alpha1_
private

Definition at line 88 of file PreshowerPhiClusterProducer.cc.

◆ alpha2_

double PreshowerPhiClusterProducer::alpha2_
private

Definition at line 89 of file PreshowerPhiClusterProducer.cc.

◆ alpha3_

double PreshowerPhiClusterProducer::alpha3_
private

Definition at line 90 of file PreshowerPhiClusterProducer.cc.

◆ assocSClusterCollection_

std::string PreshowerPhiClusterProducer::assocSClusterCollection_
private

Definition at line 69 of file PreshowerPhiClusterProducer.cc.

◆ bEta_

double PreshowerPhiClusterProducer::bEta_[4]
private

Definition at line 92 of file PreshowerPhiClusterProducer.cc.

◆ caloGeometryToken_

edm::ESGetToken<CaloGeometry, CaloGeometryRecord> PreshowerPhiClusterProducer::caloGeometryToken_
private

Definition at line 81 of file PreshowerPhiClusterProducer.cc.

◆ endcapSClusterToken_

edm::EDGetTokenT<reco::SuperClusterCollection> PreshowerPhiClusterProducer::endcapSClusterToken_
private

Definition at line 62 of file PreshowerPhiClusterProducer.cc.

◆ esChannelStatus_

edm::ESHandle<ESChannelStatus> PreshowerPhiClusterProducer::esChannelStatus_
private

Definition at line 75 of file PreshowerPhiClusterProducer.cc.

◆ esChannelStatusToken_

edm::ESGetToken<ESChannelStatus, ESChannelStatusRcd> PreshowerPhiClusterProducer::esChannelStatusToken_
private

Definition at line 80 of file PreshowerPhiClusterProducer.cc.

◆ esEEInterCalib_

edm::ESHandle<ESEEIntercalibConstants> PreshowerPhiClusterProducer::esEEInterCalib_
private

Definition at line 73 of file PreshowerPhiClusterProducer.cc.

◆ esEEInterCalibToken_

edm::ESGetToken<ESEEIntercalibConstants, ESEEIntercalibConstantsRcd> PreshowerPhiClusterProducer::esEEInterCalibToken_
private

Definition at line 78 of file PreshowerPhiClusterProducer.cc.

◆ esgain_

edm::ESHandle<ESGain> PreshowerPhiClusterProducer::esgain_
private

Definition at line 71 of file PreshowerPhiClusterProducer.cc.

◆ esGainToken_

edm::ESGetToken<ESGain, ESGainRcd> PreshowerPhiClusterProducer::esGainToken_
private

Definition at line 76 of file PreshowerPhiClusterProducer.cc.

◆ esMIPToGeV_

edm::ESHandle<ESMIPToGeVConstant> PreshowerPhiClusterProducer::esMIPToGeV_
private

Definition at line 72 of file PreshowerPhiClusterProducer.cc.

◆ esMIPToGeVToken_

edm::ESGetToken<ESMIPToGeVConstant, ESMIPToGeVConstantRcd> PreshowerPhiClusterProducer::esMIPToGeVToken_
private

Definition at line 77 of file PreshowerPhiClusterProducer.cc.

◆ esMissingECalib_

edm::ESHandle<ESMissingEnergyCalibration> PreshowerPhiClusterProducer::esMissingECalib_
private

Definition at line 74 of file PreshowerPhiClusterProducer.cc.

◆ esMissingECalibToken_

edm::ESGetToken<ESMissingEnergyCalibration, ESMissingEnergyCalibrationRcd> PreshowerPhiClusterProducer::esMissingECalibToken_
private

Definition at line 79 of file PreshowerPhiClusterProducer.cc.

◆ esPhiClusterDeltaEta_

float PreshowerPhiClusterProducer::esPhiClusterDeltaEta_
private

Definition at line 100 of file PreshowerPhiClusterProducer.cc.

◆ esPhiClusterDeltaPhi_

float PreshowerPhiClusterProducer::esPhiClusterDeltaPhi_
private

Definition at line 101 of file PreshowerPhiClusterProducer.cc.

◆ etThresh_

double PreshowerPhiClusterProducer::etThresh_
private

Definition at line 94 of file PreshowerPhiClusterProducer.cc.

◆ gamma0_

double PreshowerPhiClusterProducer::gamma0_
private

Definition at line 83 of file PreshowerPhiClusterProducer.cc.

◆ gamma1_

double PreshowerPhiClusterProducer::gamma1_
private

Definition at line 84 of file PreshowerPhiClusterProducer.cc.

◆ gamma2_

double PreshowerPhiClusterProducer::gamma2_
private

Definition at line 85 of file PreshowerPhiClusterProducer.cc.

◆ gamma3_

double PreshowerPhiClusterProducer::gamma3_
private

Definition at line 86 of file PreshowerPhiClusterProducer.cc.

◆ mip_

double PreshowerPhiClusterProducer::mip_
private

Definition at line 82 of file PreshowerPhiClusterProducer.cc.

◆ nEvt_

int PreshowerPhiClusterProducer::nEvt_
private

Definition at line 57 of file PreshowerPhiClusterProducer.cc.

◆ presh_algo

PreshowerPhiClusterAlgo* PreshowerPhiClusterProducer::presh_algo
private

Definition at line 96 of file PreshowerPhiClusterProducer.cc.

◆ preshClusterCollectionX_

std::string PreshowerPhiClusterProducer::preshClusterCollectionX_
private

Definition at line 65 of file PreshowerPhiClusterProducer.cc.

◆ preshClusterCollectionY_

std::string PreshowerPhiClusterProducer::preshClusterCollectionY_
private

Definition at line 66 of file PreshowerPhiClusterProducer.cc.

◆ preshHitToken_

edm::EDGetTokenT<EcalRecHitCollection> PreshowerPhiClusterProducer::preshHitToken_
private

Definition at line 60 of file PreshowerPhiClusterProducer.cc.