CMS 3D CMS Logo

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

#include <CalibratedElectronProducer.h>

Inheritance diagram for CalibratedElectronProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 CalibratedElectronProducer (const edm::ParameterSet &)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
virtual ~CalibratedElectronProducer ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

bool applyLinearityCorrection
 
const CaloGeometrycaloGeometry_
 
std::string combinationRegressionInputPath
 
int combinationType
 
int correctionsType
 
std::string dataset
 
const CaloTopologyecalTopology_
 
edm::EDGetTokenT< edm::ValueMap< double > > energyErrorRegToken_
 
edm::EDGetTokenT< edm::ValueMap< double > > energyRegToken_
 
bool geomInitialized_
 
edm::EDGetTokenT< reco::GsfElectronCollectioninputElectronsToken_
 
bool isAOD
 
bool isMC
 
std::string linCorrectionsInputPath
 
double lumiRatio
 
ElectronEPcombinatormyCombinator
 
EpCombinationToolmyEpCombinationTool
 
std::string nameNewEnergyErrorReg_
 
std::string nameNewEnergyReg_
 
std::string newElectronName_
 
edm::EDGetTokenT< EcalRecHitCollectionrecHitCollectionEBToken_
 
edm::EDGetTokenT< EcalRecHitCollectionrecHitCollectionEEToken_
 
std::string scaleCorrectionsInputPath
 
bool synchronization
 
ElectronEnergyCalibratortheEnCorrector
 
bool updateEnergyError
 
bool verbose
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Description: EDProducer of GsfElectron objects

Implementation: <Notes on="" implementation>="">

Definition at line 27 of file CalibratedElectronProducer.h.

Constructor & Destructor Documentation

CalibratedElectronProducer::CalibratedElectronProducer ( const edm::ParameterSet cfg)
explicit

Definition at line 34 of file CalibratedElectronProducer.cc.

References applyLinearityCorrection, combinationRegressionInputPath, combinationType, correctionsType, gather_cfg::cout, dataset, energyErrorRegToken_, energyRegToken_, Exception, geomInitialized_, edm::ParameterSet::getParameter(), EpCombinationTool::init(), inputElectronsToken_, isMC, linCorrectionsInputPath, lumiRatio, myCombinator, myEpCombinationTool, nameNewEnergyErrorReg_, nameNewEnergyReg_, newElectronName_, recHitCollectionEBToken_, recHitCollectionEEToken_, scaleCorrectionsInputPath, AlCaHLTBitMon_QueryRunRegistry::string, synchronization, theEnCorrector, updateEnergyError, and verbose.

35 {
36  inputElectronsToken_ = consumes<reco::GsfElectronCollection>(cfg.getParameter<edm::InputTag>("inputElectronsTag"));
37 
38  energyRegToken_ = consumes<edm::ValueMap<double> >(cfg.getParameter<edm::InputTag>("nameEnergyReg"));
39  energyErrorRegToken_ = consumes<edm::ValueMap<double> >(cfg.getParameter<edm::InputTag>("nameEnergyErrorReg"));
40 
41  recHitCollectionEBToken_ = consumes<EcalRecHitCollection>(cfg.getParameter<edm::InputTag>("recHitCollectionEB"));
42  recHitCollectionEEToken_ = consumes<EcalRecHitCollection>(cfg.getParameter<edm::InputTag>("recHitCollectionEE"));
43 
44 
45  nameNewEnergyReg_ = cfg.getParameter<std::string>("nameNewEnergyReg");
46  nameNewEnergyErrorReg_ = cfg.getParameter<std::string>("nameNewEnergyErrorReg");
47  newElectronName_ = cfg.getParameter<std::string>("outputGsfElectronCollectionLabel");
48 
49 
50  dataset = cfg.getParameter<std::string>("inputDataset");
51  isMC = cfg.getParameter<bool>("isMC");
52  updateEnergyError = cfg.getParameter<bool>("updateEnergyError");
53  lumiRatio = cfg.getParameter<double>("lumiRatio");
54  correctionsType = cfg.getParameter<int>("correctionsType");
55  applyLinearityCorrection = cfg.getParameter<bool>("applyLinearityCorrection");
56  combinationType = cfg.getParameter<int>("combinationType");
57  verbose = cfg.getParameter<bool>("verbose");
58  synchronization = cfg.getParameter<bool>("synchronization");
59  combinationRegressionInputPath = cfg.getParameter<std::string>("combinationRegressionInputPath");
60  scaleCorrectionsInputPath = cfg.getParameter<std::string>("scaleCorrectionsInputPath");
61  linCorrectionsInputPath = cfg.getParameter<std::string>("linearityCorrectionsInputPath");
62 
63  //basic checks
64  if ( isMC && ( dataset != "Summer11" && dataset != "Fall11"
65  && dataset!= "Summer12" && dataset != "Summer12_DR53X_HCP2012"
66  && dataset != "Summer12_LegacyPaper" ) )
67  {
68  throw cms::Exception("CalibratedgsfElectronProducer|ConfigError") << "Unknown MC dataset";
69  }
70  if ( !isMC && ( dataset != "Prompt" && dataset != "ReReco"
71  && dataset != "Jan16ReReco" && dataset != "ICHEP2012"
72  && dataset != "Moriond2013" && dataset != "22Jan2013ReReco" ) )
73  {
74  throw cms::Exception("CalibratedgsfElectronProducer|ConfigError") << "Unknown Data dataset";
75  }
76 
77  // Linearity correction only applied on combined momentum obtain with regression combination
79  {
80  std::cout << "[CalibratedElectronProducer] "
81  << "Warning: you chose combinationType!=3 and applyLinearityCorrection=True. Linearity corrections are only applied on top of combination 3." << std::endl;
82  }
83 
84  std::cout << "[CalibratedGsfElectronProducer] Correcting scale for dataset " << dataset << std::endl;
85 
86  //initializations
87  std::string pathToDataCorr;
88  switch (correctionsType)
89  {
90  case 0:
91  break;
92  case 1:
93  if ( verbose )
94  {
95  std::cout << "You choose regression 1 scale corrections" << std::endl;
96  }
97  break;
98  case 2:
99  if ( verbose )
100  {
101  std::cout << "You choose regression 2 scale corrections." << std::endl;
102  }
103  break;
104  case 3:
105  throw cms::Exception("CalibratedgsfElectronProducer|ConfigError")
106  << "You choose standard non-regression ecal energy scale corrections. They are not implemented yet.";
107  break;
108  default:
109  throw cms::Exception("CalibratedgsfElectronProducer|ConfigError")
110  << "Unknown correctionsType !!!" ;
111  }
112 
114  (
115  edm::FileInPath(scaleCorrectionsInputPath.c_str()).fullPath().c_str(),
116  edm::FileInPath(linCorrectionsInputPath.c_str()).fullPath().c_str(),
117  dataset,
120  lumiRatio,
121  isMC,
123  verbose,
125  );
126 
127  if ( verbose )
128  {
129  std::cout<<"[CalibratedGsfElectronProducer] "
130  << "ElectronEnergyCalibrator object is created" << std::endl;
131  }
132 
135  (
136  edm::FileInPath(combinationRegressionInputPath.c_str()).fullPath().c_str(),
137  "CombinationWeight"
138  );
139 
141 
142  if ( verbose )
143  {
144  std::cout << "[CalibratedGsfElectronProducer] "
145  << "Combination tools are created and initialized" << std::endl;
146  }
147 
148  produces<edm::ValueMap<double> >(nameNewEnergyReg_);
149  produces<edm::ValueMap<double> >(nameNewEnergyErrorReg_);
150  produces<reco::GsfElectronCollection> (newElectronName_);
151  geomInitialized_ = false;
152 }
T getParameter(std::string const &) const
bool init(const GBRForest *forest)
edm::EDGetTokenT< EcalRecHitCollection > recHitCollectionEEToken_
edm::EDGetTokenT< edm::ValueMap< double > > energyRegToken_
edm::EDGetTokenT< EcalRecHitCollection > recHitCollectionEBToken_
edm::EDGetTokenT< edm::ValueMap< double > > energyErrorRegToken_
edm::EDGetTokenT< reco::GsfElectronCollection > inputElectronsToken_
ElectronEnergyCalibrator * theEnCorrector
CalibratedElectronProducer::~CalibratedElectronProducer ( )
virtual

Definition at line 154 of file CalibratedElectronProducer.cc.

155 {}

Member Function Documentation

void CalibratedElectronProducer::produce ( edm::Event event,
const edm::EventSetup setup 
)
virtual

Definition at line 157 of file CalibratedElectronProducer.cc.

References reco::GsfElectron::BADTRACK, reco::GsfElectron::BIGBREM, ElectronEnergyCalibrator::calibrate(), caloGeometry_, reco::GsfElectron::candidateP4Kind(), reco::GsfElectron::classification(), combinationType, ElectronEPcombinator::combine(), EpCombinationTool::combine(), reco::GsfElectron::core(), reco::GsfElectron::correctedEcalEnergy(), reco::GsfElectron::correctedEcalEnergyError(), correctionsType, ElectronEnergyCalibrator::correctLinearity(), reco::GsfElectron::correctMomentum(), gather_cfg::cout, DEFINE_FWK_MODULE, reco::GsfElectron::ecalDriven(), reco::GsfElectron::ecalDrivenSeed(), ecalTopology_, genericTrackCleaner_cfi::electrons, energyErrorRegToken_, energyRegToken_, relativeConstraints::error, Exception, edm::helper::Filler< Map >::fill(), reco::GsfElectron::GAP, geomInitialized_, edm::EventSetup::get(), reco::GsfElectron::GOLDEN, inputElectronsToken_, edm::helper::Filler< Map >::insert(), reco::GsfElectron::isEB(), reco::GsfElectron::isEE(), isMC, eostools::move(), myCombinator, myEpCombinationTool, nameNewEnergyErrorReg_, nameNewEnergyReg_, newElectronName_, reco::LeafCandidate::p(), reco::GsfElectron::p4(), reco::GsfElectron::p4Error(), funct::pow(), edm::Handle< T >::product(), SuperClusterHelper::r9(), recHitCollectionEBToken_, recHitCollectionEEToken_, findQualityFiles::run, ElectronEPcombinator::setCombinationMode(), reco::GsfElectron::SHOWERING, mathSSE::sqrt(), edm::Event::streamID(), reco::GsfElectron::superCluster(), theEnCorrector, reco::GsfElectron::trackerDrivenSeed(), reco::btau::trackMomentum, reco::GsfElectron::trackMomentumAtVtx(), and reco::GsfElectron::trackMomentumError().

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

158 {
159  if (!geomInitialized_)
160  {
161  edm::ESHandle<CaloTopology> theCaloTopology;
162  setup.get<CaloTopologyRecord>().get(theCaloTopology);
163  ecalTopology_ = & (*theCaloTopology);
164 
165  edm::ESHandle<CaloGeometry> theCaloGeometry;
166  setup.get<CaloGeometryRecord>().get(theCaloGeometry);
167  caloGeometry_ = & (*theCaloGeometry);
168  geomInitialized_ = true;
169  }
170 
171  // Read GsfElectrons
173  event.getByToken(inputElectronsToken_,oldElectronsH) ;
174 
175  // Read RecHits
178  event.getByToken( recHitCollectionEBToken_, pEBRecHits );
179  event.getByToken( recHitCollectionEEToken_, pEERecHits );
180 
181  // ReadValueMaps
182  edm::Handle<edm::ValueMap<double> > valMapEnergyH;
183  event.getByToken(energyRegToken_,valMapEnergyH);
184  edm::Handle<edm::ValueMap<double> > valMapEnergyErrorH;
185  event.getByToken(energyErrorRegToken_,valMapEnergyErrorH);
186 
187  // Prepare output collections
188  std::unique_ptr<reco::GsfElectronCollection> electrons( new reco::GsfElectronCollection ) ;
189  // Fillers for ValueMaps:
190  std::unique_ptr<edm::ValueMap<double> > regrNewEnergyMap(new edm::ValueMap<double>() );
191  edm::ValueMap<double>::Filler energyFiller(*regrNewEnergyMap);
192 
193  std::unique_ptr<edm::ValueMap<double> > regrNewEnergyErrorMap(new edm::ValueMap<double>() );
194  edm::ValueMap<double>::Filler energyErrorFiller(*regrNewEnergyErrorMap);
195 
196  // first clone the initial collection
197  unsigned nElectrons = oldElectronsH->size();
198  for( unsigned iele = 0; iele < nElectrons; ++iele )
199  {
200  electrons->push_back((*oldElectronsH)[iele]);
201  }
202 
203  std::vector<double> regressionValues;
204  std::vector<double> regressionErrorValues;
205  regressionValues.reserve(nElectrons);
206  regressionErrorValues.reserve(nElectrons);
207 
208  if ( correctionsType != 0 )
209  {
210  for ( unsigned iele = 0; iele < nElectrons ; ++iele)
211  {
212  reco::GsfElectron & ele ( (*electrons)[iele]);
213  reco::GsfElectronRef elecRef(oldElectronsH,iele);
214  double regressionEnergy = (*valMapEnergyH)[elecRef];
215  double regressionEnergyError = (*valMapEnergyErrorH)[elecRef];
216 
217  regressionValues.push_back(regressionEnergy);
218  regressionErrorValues.push_back(regressionEnergyError);
219 
220  // r9
221  const EcalRecHitCollection * recHits=0;
222  if( ele.isEB() )
223  {
224  recHits = pEBRecHits.product();
225  } else recHits = pEERecHits.product();
226 
227  SuperClusterHelper mySCHelper( &(ele), recHits, ecalTopology_, caloGeometry_ );
228 
229  int elClass = -1;
230  int run = event.run();
231 
232  float r9 = mySCHelper.r9();
233  double correctedEcalEnergy = ele.correctedEcalEnergy();
234  double correctedEcalEnergyError = ele.correctedEcalEnergyError();
235  double trackMomentum = ele.trackMomentumAtVtx().R();
236  double trackMomentumError = ele.trackMomentumError();
237  double combinedMomentum = ele.p();
238  double combinedMomentumError = ele.p4Error(ele.candidateP4Kind());
239  // FIXME : p4Error not filled for pure tracker electrons
240  // Recompute it using the parametrization implemented in
241  // RecoEgamma/EgammaElectronAlgos/src/ElectronEnergyCorrector.cc::simpleParameterizationUncertainty()
242  if( !ele.ecalDrivenSeed() )
243  {
244  double error = 999. ;
245  double momentum = (combinedMomentum<15. ? 15. : combinedMomentum);
246  if ( ele.isEB() )
247  {
248  float parEB[3] = { 5.24e-02, 2.01e-01, 1.00e-02};
249  error = momentum * sqrt( pow(parEB[0]/sqrt(momentum),2) + pow(parEB[1]/momentum,2) + pow(parEB[2],2) );
250  }
251  else if ( ele.isEE() )
252  {
253  float parEE[3] = { 1.46e-01, 9.21e-01, 1.94e-03} ;
254  error = momentum * sqrt( pow(parEE[0]/sqrt(momentum),2) + pow(parEE[1]/momentum,2) + pow(parEE[2],2) );
255  }
256  combinedMomentumError = error;
257  }
258 
259  if (ele.classification() == reco::GsfElectron::GOLDEN) {elClass = 0;}
260  if (ele.classification() == reco::GsfElectron::BIGBREM) {elClass = 1;}
261  if (ele.classification() == reco::GsfElectron::BADTRACK) {elClass = 2;}
262  if (ele.classification() == reco::GsfElectron::SHOWERING) {elClass = 3;}
263  if (ele.classification() == reco::GsfElectron::GAP) {elClass = 4;}
264 
265  SimpleElectron mySimpleElectron
266  (
267  run,
268  elClass,
269  r9,
270  correctedEcalEnergy,
271  correctedEcalEnergyError,
272  trackMomentum,
273  trackMomentumError,
274  regressionEnergy,
275  regressionEnergyError,
276  combinedMomentum,
277  combinedMomentumError,
278  ele.superCluster()->eta(),
279  ele.isEB(),
280  isMC,
281  ele.ecalDriven(),
282  ele.trackerDrivenSeed()
283  );
284 
285  // energy calibration for ecalDriven electrons
286  if ( ele.core()->ecalDrivenSeed() || correctionsType==2 || combinationType==3 )
287  {
288  theEnCorrector->calibrate(mySimpleElectron, event.streamID());
289 
290  // E-p combination
291 
292  switch ( combinationType )
293  {
294  case 0:
295  if ( verbose )
296  {
297  std::cout << "[CalibratedGsfElectronProducer] "
298  << "You choose not to combine." << std::endl;
299  }
300  break;
301  case 1:
302  if ( verbose )
303  {
304  std::cout << "[CalibratedGsfElectronProducer] "
305  << "You choose corrected regression energy for standard combination" << std::endl;
306  }
308  myCombinator->combine(mySimpleElectron);
309  break;
310  case 2:
311  if ( verbose )
312  {
313  std::cout << "[CalibratedGsfElectronProducer] "
314  << "You choose uncorrected regression energy for standard combination" << std::endl;
315  }
317  myCombinator->combine(mySimpleElectron);
318  break;
319  case 3:
320  if ( verbose )
321  {
322  std::cout << "[CalibratedGsfElectronProducer] "
323  << "You choose regression combination." << std::endl;
324  }
325  myEpCombinationTool->combine(mySimpleElectron);
326  theEnCorrector->correctLinearity(mySimpleElectron);
327  break;
328  default:
329  throw cms::Exception("CalibratedgsfElectronProducer|ConfigError")
330  << "Unknown combination Type !!!" ;
331  }
332 
333  math::XYZTLorentzVector oldMomentum = ele.p4() ;
334  math::XYZTLorentzVector newMomentum_ ;
335  newMomentum_ = math::XYZTLorentzVector
336  ( oldMomentum.x()*mySimpleElectron.getCombinedMomentum()/oldMomentum.t(),
337  oldMomentum.y()*mySimpleElectron.getCombinedMomentum()/oldMomentum.t(),
338  oldMomentum.z()*mySimpleElectron.getCombinedMomentum()/oldMomentum.t(),
339  mySimpleElectron.getCombinedMomentum() ) ;
340 
341  ele.correctMomentum
342  (
343  newMomentum_,
344  mySimpleElectron.getTrackerMomentumError(),
345  mySimpleElectron.getCombinedMomentumError()
346  );
347 
348  if ( verbose )
349  {
350  std::cout << "[CalibratedGsfElectronProducer] Combined momentum after saving "
351  << ele.p4().t() << std::endl;
352  }
353  }// end of if (ele.core()->ecalDrivenSeed())
354  }// end of loop on electrons
355  } else
356  {
357  if ( verbose )
358  {
359  std::cout << "[CalibratedGsfElectronProducer] "
360  << "You choose not to correct. Uncorrected Regression Energy is taken." << std::endl;
361  }
362  }
363 
364  // Save the electrons
365  const edm::OrphanHandle<reco::GsfElectronCollection> gsfNewElectronHandle = event.put(std::move(electrons), newElectronName_) ;
366  energyFiller.insert(gsfNewElectronHandle,regressionValues.begin(),regressionValues.end());
367  energyFiller.fill();
368  energyErrorFiller.insert(gsfNewElectronHandle,regressionErrorValues.begin(),regressionErrorValues.end());
369  energyErrorFiller.fill();
370 
371  event.put(std::move(regrNewEnergyMap),nameNewEnergyReg_);
372  event.put(std::move(regrNewEnergyErrorMap),nameNewEnergyErrorReg_);
373 }
void combine(SimpleElectron &mySimpleElectron) const
void calibrate(SimpleElectron &electron, edm::StreamID const &)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
edm::EDGetTokenT< EcalRecHitCollection > recHitCollectionEEToken_
edm::EDGetTokenT< edm::ValueMap< double > > energyRegToken_
edm::EDGetTokenT< EcalRecHitCollection > recHitCollectionEBToken_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
T sqrt(T t)
Definition: SSEVec.h:18
void correctLinearity(SimpleElectron &electron)
edm::EDGetTokenT< edm::ValueMap< double > > energyErrorRegToken_
void setCombinationMode(int mode)
T const * product() const
Definition: Handle.h:81
const T & get() const
Definition: EventSetup.h:56
edm::EDGetTokenT< reco::GsfElectronCollection > inputElectronsToken_
ElectronEnergyCalibrator * theEnCorrector
StreamID streamID() const
Definition: Event.h:81
void combine(SimpleElectron &electron)
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
def move(src, dest)
Definition: eostools.py:510

Member Data Documentation

bool CalibratedElectronProducer::applyLinearityCorrection
private

Definition at line 49 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer().

const CaloGeometry* CalibratedElectronProducer::caloGeometry_
private

Definition at line 56 of file CalibratedElectronProducer.h.

Referenced by produce().

std::string CalibratedElectronProducer::combinationRegressionInputPath
private

Definition at line 59 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer().

int CalibratedElectronProducer::combinationType
private

Definition at line 50 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

int CalibratedElectronProducer::correctionsType
private

Definition at line 48 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

std::string CalibratedElectronProducer::dataset
private
const CaloTopology* CalibratedElectronProducer::ecalTopology_
private

Definition at line 55 of file CalibratedElectronProducer.h.

Referenced by produce().

edm::EDGetTokenT<edm::ValueMap<double> > CalibratedElectronProducer::energyErrorRegToken_
private

Definition at line 37 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

edm::EDGetTokenT<edm::ValueMap<double> > CalibratedElectronProducer::energyRegToken_
private

Definition at line 36 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

bool CalibratedElectronProducer::geomInitialized_
private

Definition at line 57 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

edm::EDGetTokenT<reco::GsfElectronCollection> CalibratedElectronProducer::inputElectronsToken_
private

Definition at line 35 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

bool CalibratedElectronProducer::isAOD
private

Definition at line 45 of file CalibratedElectronProducer.h.

bool CalibratedElectronProducer::isMC
private
std::string CalibratedElectronProducer::linCorrectionsInputPath
private

Definition at line 61 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer().

double CalibratedElectronProducer::lumiRatio
private

Definition at line 53 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer().

ElectronEPcombinator* CalibratedElectronProducer::myCombinator
private

Definition at line 65 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

EpCombinationTool* CalibratedElectronProducer::myEpCombinationTool
private

Definition at line 64 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

std::string CalibratedElectronProducer::nameNewEnergyErrorReg_
private

Definition at line 42 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

std::string CalibratedElectronProducer::nameNewEnergyReg_
private

Definition at line 41 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

std::string CalibratedElectronProducer::newElectronName_
private

Definition at line 58 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

edm::EDGetTokenT<EcalRecHitCollection> CalibratedElectronProducer::recHitCollectionEBToken_
private

Definition at line 38 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

edm::EDGetTokenT<EcalRecHitCollection> CalibratedElectronProducer::recHitCollectionEEToken_
private

Definition at line 39 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

std::string CalibratedElectronProducer::scaleCorrectionsInputPath
private

Definition at line 60 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer().

bool CalibratedElectronProducer::synchronization
private

Definition at line 52 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer().

ElectronEnergyCalibrator* CalibratedElectronProducer::theEnCorrector
private

Definition at line 63 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer(), and produce().

bool CalibratedElectronProducer::updateEnergyError
private

Definition at line 47 of file CalibratedElectronProducer.h.

Referenced by CalibratedElectronProducer().

bool CalibratedElectronProducer::verbose
private