CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Private Attributes
PreshowerClusterProducer Class Reference
Inheritance diagram for PreshowerClusterProducer:
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

 PreshowerClusterProducer (const edm::ParameterSet &ps)
 
void produce (edm::Event &evt, const edm::EventSetup &es) override
 
void set (const edm::EventSetup &es)
 
 ~PreshowerClusterProducer () 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,
CaloGeometryRecord
caloGeometryToken_
 
edm::EDGetTokenT
< reco::SuperClusterCollection
endcapSClusterToken_
 
edm::ESHandle< ESChannelStatusesChannelStatus_
 
edm::ESGetToken
< ESChannelStatus,
ESChannelStatusRcd
esChannelStatusToken_
 
edm::ESHandle
< ESEEIntercalibConstants
esEEInterCalib_
 
edm::ESGetToken
< ESEEIntercalibConstants,
ESEEIntercalibConstantsRcd
esEEInterCalibToken_
 
edm::ESHandle< ESGainesgain_
 
edm::ESGetToken< ESGain,
ESGainRcd
esGainToken_
 
edm::ESHandle< ESMIPToGeVConstantesMIPToGeV_
 
edm::ESGetToken
< ESMIPToGeVConstant,
ESMIPToGeVConstantRcd
esMIPToGeVToken_
 
edm::ESHandle
< ESMissingEnergyCalibration
esMissingECalib_
 
edm::ESGetToken
< ESMissingEnergyCalibration,
ESMissingEnergyCalibrationRcd
esMissingECalibToken_
 
double etThresh_
 
double gamma0_
 
double gamma1_
 
double gamma2_
 
double gamma3_
 
double mip_
 
int nEvt_
 
PreshowerClusterAlgopresh_algo
 
float preshClustECut
 
std::string preshClusterCollectionX_
 
std::string preshClusterCollectionY_
 
edm::EDGetTokenT
< EcalRecHitCollection
preshHitsToken_
 
int preshNclust_
 

Detailed Description

Definition at line 47 of file PreshowerClusterProducer.cc.

Member Typedef Documentation

Definition at line 49 of file PreshowerClusterProducer.cc.

Constructor & Destructor Documentation

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

Definition at line 111 of file PreshowerClusterProducer.cc.

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

111  {
112  // use configuration file to setup input/output collection names
113  preshHitsToken_ = consumes<EcalRecHitCollection>(ps.getParameter<edm::InputTag>("preshRecHitProducer"));
114 
115  // Name of a SuperClusterCollection to make associations:
117  consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("endcapSClusterProducer"));
118 
119  esGainToken_ = esConsumes<ESGain, ESGainRcd>();
120  esMIPToGeVToken_ = esConsumes<ESMIPToGeVConstant, ESMIPToGeVConstantRcd>();
121  esEEInterCalibToken_ = esConsumes<ESEEIntercalibConstants, ESEEIntercalibConstantsRcd>();
122  esMissingECalibToken_ = esConsumes<ESMissingEnergyCalibration, ESMissingEnergyCalibrationRcd>();
123  esChannelStatusToken_ = esConsumes<ESChannelStatus, ESChannelStatusRcd>();
124  caloGeometryToken_ = esConsumes<CaloGeometry, CaloGeometryRecord>();
125 
126  // Output collections:
127  preshClusterCollectionX_ = ps.getParameter<std::string>("preshClusterCollectionX");
128  preshClusterCollectionY_ = ps.getParameter<std::string>("preshClusterCollectionY");
129  preshNclust_ = ps.getParameter<int>("preshNclust");
130 
131  etThresh_ = ps.getParameter<double>("etThresh");
132 
133  assocSClusterCollection_ = ps.getParameter<std::string>("assocSClusterCollection");
134 
135  produces<reco::PreshowerClusterCollection>(preshClusterCollectionX_);
136  produces<reco::PreshowerClusterCollection>(preshClusterCollectionY_);
137  produces<reco::SuperClusterCollection>(assocSClusterCollection_);
138 
139  float preshStripECut = ps.getParameter<double>("preshStripEnergyCut");
140  int preshSeededNst = ps.getParameter<int>("preshSeededNstrip");
141  preshClustECut = ps.getParameter<double>("preshClusterEnergyCut");
142 
143  presh_algo = new PreshowerClusterAlgo(preshStripECut, preshClustECut, preshSeededNst);
144 
145  nEvt_ = 0;
146 }
edm::ESGetToken< ESEEIntercalibConstants, ESEEIntercalibConstantsRcd > esEEInterCalibToken_
edm::ESGetToken< ESMIPToGeVConstant, ESMIPToGeVConstantRcd > esMIPToGeVToken_
PreshowerClusterAlgo * presh_algo
edm::ESGetToken< ESGain, ESGainRcd > esGainToken_
edm::ESGetToken< ESChannelStatus, ESChannelStatusRcd > esChannelStatusToken_
edm::EDGetTokenT< EcalRecHitCollection > preshHitsToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
edm::ESGetToken< ESMissingEnergyCalibration, ESMissingEnergyCalibrationRcd > esMissingECalibToken_
edm::EDGetTokenT< reco::SuperClusterCollection > endcapSClusterToken_
PreshowerClusterProducer::~PreshowerClusterProducer ( )
override

Definition at line 148 of file PreshowerClusterProducer.cc.

148 { delete presh_algo; }
PreshowerClusterAlgo * presh_algo

Member Function Documentation

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

Definition at line 150 of file PreshowerClusterProducer.cc.

References edm::SortedCollection< T, SORT >::begin(), GetRecoTauVFromDQM_MC_cff::cl2, alignCSCRings::e, DetId::Ecal, EcalPreshower, edm::SortedCollection< T, SORT >::end(), reco::CaloCluster::energy(), ESCondObjectContainer< T >::find(), edm::Event::getByToken(), edm::EventSetup::getHandle(), ESCondObjectContainer< T >::getMap(), mps_fire::i, LogTrace, eostools::move(), point, edm::Handle< T >::product(), edm::PtrVector< T >::push_back(), edm::Event::put(), HI_PhotonSkim_cff::rechits, reco::PreshowerCluster::setBCRef(), reco::SuperCluster::setPreshowerPlanesStatus(), funct::sin(), edm::SortedCollection< T, SORT >::size(), X, BeamSpotPI::Y, and BeamSpotPI::Z.

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

Definition at line 330 of file PreshowerClusterProducer.cc.

References 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(), ESGain::getESGain(), ESMIPToGeVConstant::getESValueHigh(), ESMIPToGeVConstant::getESValueLow(), ESEEIntercalibConstants::getGammaHigh0(), ESEEIntercalibConstants::getGammaHigh1(), ESEEIntercalibConstants::getGammaHigh2(), ESEEIntercalibConstants::getGammaHigh3(), ESEEIntercalibConstants::getGammaLow1(), ESEEIntercalibConstants::getGammaLow2(), and edm::EventSetup::getHandle().

330  {
332  const ESGain* gain = esgain_.product();
333 
334  double ESGain = gain->getESGain();
335 
337  const ESMIPToGeVConstant* mipToGeV = esMIPToGeV_.product();
338 
339  mip_ = (ESGain == 1) ? mipToGeV->getESValueLow() : mipToGeV->getESValueHigh();
340 
342 
344  const ESEEIntercalibConstants* esEEInterCalib = esEEInterCalib_.product();
345 
346  // both planes work
347  gamma0_ = (ESGain == 1) ? 0.02 : esEEInterCalib->getGammaHigh0();
348  alpha0_ = (ESGain == 1) ? esEEInterCalib->getAlphaLow0() : esEEInterCalib->getAlphaHigh0();
349 
350  // only first plane works
351  gamma1_ = (ESGain == 1) ? (0.02 * esEEInterCalib->getGammaLow1()) : esEEInterCalib->getGammaHigh1();
352  alpha1_ = (ESGain == 1) ? esEEInterCalib->getAlphaLow1() : esEEInterCalib->getAlphaHigh1();
353 
354  // only second plane works
355  gamma2_ = (ESGain == 1) ? (0.02 * esEEInterCalib->getGammaLow2()) : esEEInterCalib->getGammaHigh2();
356  alpha2_ = (ESGain == 1) ? esEEInterCalib->getAlphaLow2() : esEEInterCalib->getAlphaHigh2();
357 
358  // both planes do not work
359  gamma3_ = (ESGain == 1) ? 0.02 : esEEInterCalib->getGammaHigh3();
360  alpha3_ = (ESGain == 1) ? esEEInterCalib->getAlphaLow3() : esEEInterCalib->getAlphaHigh3();
361 
363  const ESMissingEnergyCalibration* esMissingECalib = esMissingECalib_.product();
364 
365  // |eta| < 1.9
366  aEta_[0] = esMissingECalib->getConstAEta0();
367  bEta_[0] = esMissingECalib->getConstBEta0();
368 
369  // 1.9 < |eta| < 2.1
370  aEta_[1] = esMissingECalib->getConstAEta1();
371  bEta_[1] = esMissingECalib->getConstBEta1();
372 
373  // 2.1 < |eta| < 2.3
374  aEta_[2] = esMissingECalib->getConstAEta2();
375  bEta_[2] = esMissingECalib->getConstBEta2();
376 
377  // 2.3 < |eta| < 2.5
378  aEta_[3] = esMissingECalib->getConstAEta3();
379  bEta_[3] = esMissingECalib->getConstBEta3();
380 }
edm::ESGetToken< ESEEIntercalibConstants, ESEEIntercalibConstantsRcd > esEEInterCalibToken_
edm::ESHandle< ESMissingEnergyCalibration > esMissingECalib_
Definition: ESGain.h:7
edm::ESHandle< ESGain > esgain_
float getESValueLow() const
edm::ESGetToken< ESMIPToGeVConstant, ESMIPToGeVConstantRcd > esMIPToGeVToken_
edm::ESHandle< ESChannelStatus > esChannelStatus_
edm::ESGetToken< ESGain, ESGainRcd > esGainToken_
edm::ESGetToken< ESChannelStatus, ESChannelStatusRcd > esChannelStatusToken_
edm::ESHandle< ESMIPToGeVConstant > esMIPToGeV_
edm::ESHandle< ESEEIntercalibConstants > esEEInterCalib_
float getESGain() const
Definition: ESGain.h:13
T const * product() const
Definition: ESHandle.h:86
edm::ESGetToken< ESMissingEnergyCalibration, ESMissingEnergyCalibrationRcd > esMissingECalibToken_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:157
float getESValueHigh() const

Member Data Documentation

double PreshowerClusterProducer::aEta_[4]
private

Definition at line 97 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::alpha0_
private

Definition at line 93 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::alpha1_
private

Definition at line 94 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::alpha2_
private

Definition at line 95 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::alpha3_
private

Definition at line 96 of file PreshowerClusterProducer.cc.

std::string PreshowerClusterProducer::assocSClusterCollection_
private

Definition at line 74 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::bEta_[4]
private

Definition at line 98 of file PreshowerClusterProducer.cc.

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

Definition at line 86 of file PreshowerClusterProducer.cc.

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

Definition at line 63 of file PreshowerClusterProducer.cc.

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

Definition at line 80 of file PreshowerClusterProducer.cc.

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

Definition at line 85 of file PreshowerClusterProducer.cc.

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

Definition at line 78 of file PreshowerClusterProducer.cc.

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

Definition at line 83 of file PreshowerClusterProducer.cc.

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

Definition at line 76 of file PreshowerClusterProducer.cc.

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

Definition at line 81 of file PreshowerClusterProducer.cc.

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

Definition at line 77 of file PreshowerClusterProducer.cc.

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

Definition at line 82 of file PreshowerClusterProducer.cc.

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

Definition at line 79 of file PreshowerClusterProducer.cc.

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

Definition at line 84 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::etThresh_
private

Definition at line 71 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::gamma0_
private

Definition at line 89 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::gamma1_
private

Definition at line 90 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::gamma2_
private

Definition at line 91 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::gamma3_
private

Definition at line 92 of file PreshowerClusterProducer.cc.

double PreshowerClusterProducer::mip_
private

Definition at line 88 of file PreshowerClusterProducer.cc.

int PreshowerClusterProducer::nEvt_
private

Definition at line 59 of file PreshowerClusterProducer.cc.

PreshowerClusterAlgo* PreshowerClusterProducer::presh_algo
private

Definition at line 100 of file PreshowerClusterProducer.cc.

float PreshowerClusterProducer::preshClustECut
private

Definition at line 70 of file PreshowerClusterProducer.cc.

std::string PreshowerClusterProducer::preshClusterCollectionX_
private

Definition at line 66 of file PreshowerClusterProducer.cc.

std::string PreshowerClusterProducer::preshClusterCollectionY_
private

Definition at line 67 of file PreshowerClusterProducer.cc.

edm::EDGetTokenT<EcalRecHitCollection> PreshowerClusterProducer::preshHitsToken_
private

Definition at line 62 of file PreshowerClusterProducer.cc.

int PreshowerClusterProducer::preshNclust_
private

Definition at line 69 of file PreshowerClusterProducer.cc.