CMS 3D CMS Logo

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

#include <EnergyScaleAnalyzer.h>

Inheritance diagram for EnergyScaleAnalyzer:
edm::EDAnalyzer edm::EDConsumerBase

Classes

struct  tree_structure_
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void endJob () override
 
 EnergyScaleAnalyzer (const edm::ParameterSet &)
 
 ~EnergyScaleAnalyzer () override
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () override
 
- 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 &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
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::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void fillTree (const reco::SuperClusterCollection *scColl, const reco::SuperClusterCollection *corrSCColl, HepMC::GenParticle *mc, tree_structure_ &tree_, float xV, float yV, float zV, int scType)
 

Private Attributes

edm::EDGetTokenT< reco::SuperClusterCollectioncorrectedDynamicHybridSuperClusters_token
 
edm::EDGetTokenT< reco::SuperClusterCollectioncorrectedFixedMatrixSuperClustersWithPreshower_token
 
edm::EDGetTokenT< reco::SuperClusterCollectioncorrectedHybridSuperClusters_token
 
edm::EDGetTokenT< reco::SuperClusterCollectiondynamicHybridSuperClusters_token
 
float energyMax_
 
float etaMax_
 
float etaMaxVtx_
 
float eTMax_
 
float eTMaxVtx_
 
int evtN
 
edm::EDGetTokenT< reco::SuperClusterCollectionfixedMatrixSuperClustersWithPreshower_token
 
edm::EDGetTokenT< edm::HepMCProducthepMCLabel_
 
edm::EDGetTokenT< reco::SuperClusterCollectionhybridSuperClusters_token
 
TTree * mytree_
 
std::string outputFile_
 
float phiMax_
 
float phiMaxVtx_
 
float rClust_vtx_
 
TFile * rootFile_
 
float thetaMax_
 
float thetaMaxVtx_
 
tree_structure_ tree_
 
float xClust_vtx_
 
float xClust_zero_
 
float xVtx_
 
float yClust_vtx_
 
float yClust_zero_
 
float yVtx_
 
float zClust_vtx_
 
float zClust_zero_
 
float zVtx_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsInputProcessBlocks ()
 
static bool wantsProcessBlocks ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Validation/EcalClusters/src/EnergyScaleAnalyzer.cc

Description: <one line="" class="" summary>="">

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

Definition at line 48 of file EnergyScaleAnalyzer.h.

Constructor & Destructor Documentation

◆ EnergyScaleAnalyzer()

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

Definition at line 71 of file EnergyScaleAnalyzer.cc.

73 {
74  hepMCLabel_ = consumes<edm::HepMCProduct>(ps.getParameter<std::string>("hepMCLabel"));
75  hybridSuperClusters_token = consumes<reco::SuperClusterCollection>(
76  ps.getUntrackedParameter<edm::InputTag>("hybridSuperClusters", edm::InputTag("hybridSuperClusters")));
77  dynamicHybridSuperClusters_token = consumes<reco::SuperClusterCollection>(ps.getUntrackedParameter<edm::InputTag>(
78  "dynamicHybridSuperClusters", edm::InputTag("dynamicHybridSuperClusters")));
79  correctedHybridSuperClusters_token = consumes<reco::SuperClusterCollection>(ps.getUntrackedParameter<edm::InputTag>(
80  "correctedHybridSuperClusters", edm::InputTag("correctedHybridSuperClusters")));
82  consumes<reco::SuperClusterCollection>(ps.getUntrackedParameter<edm::InputTag>(
83  "correctedDynamicHybridSuperClusters", edm::InputTag("correctedDynamicHybridSuperClusters")));
84  correctedFixedMatrixSuperClustersWithPreshower_token = consumes<reco::SuperClusterCollection>(
85  ps.getUntrackedParameter<edm::InputTag>("correctedFixedMatrixSuperClustersWithPreshower",
86  edm::InputTag("correctedFixedMatrixSuperClustersWithPreshower")));
88  consumes<reco::SuperClusterCollection>(ps.getUntrackedParameter<edm::InputTag>(
89  "fixedMatrixSuperClustersWithPreshower", edm::InputTag("fixedMatrixSuperClustersWithPreshower")));
90 
91  outputFile_ = ps.getParameter<std::string>("outputFile");
92  rootFile_ = TFile::Open(outputFile_.c_str(),
93  "RECREATE"); // open output file to store histograms
94 
95  evtN = 0;
96 }

References correctedDynamicHybridSuperClusters_token, correctedFixedMatrixSuperClustersWithPreshower_token, correctedHybridSuperClusters_token, dynamicHybridSuperClusters_token, evtN, fixedMatrixSuperClustersWithPreshower_token, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), hepMCLabel_, hybridSuperClusters_token, outputFile_, rootFile_, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ ~EnergyScaleAnalyzer()

EnergyScaleAnalyzer::~EnergyScaleAnalyzer ( )
override

Definition at line 99 of file EnergyScaleAnalyzer.cc.

101 {
102  delete rootFile_;
103 }

References rootFile_.

Member Function Documentation

◆ analyze()

void EnergyScaleAnalyzer::analyze ( const edm::Event evt,
const edm::EventSetup es 
)
overridevirtual

Implements edm::EDAnalyzer.

Definition at line 132 of file EnergyScaleAnalyzer.cc.

132  {
133  using namespace edm; // needed for all fwk related classes
134  using namespace std;
135 
136  // std::cout << "Proceccing event # " << ++evtN << std::endl;
137 
138  // Get containers for MC truth, SC etc.
139  // ===================================================
140  // =======================================================================================
141  // =======================================================================================
144 
145  Labels l;
147 
148  const HepMC::GenEvent *genEvent = hepMC->GetEvent();
149  if (!(hepMC.isValid())) {
150  LogInfo("EnergyScaleAnalyzer") << "Could not get MC Product!";
151  return;
152  }
153 
154  //=======================For Vertex correction
155  std::vector<Handle<HepMCProduct>> evtHandles;
156  evt.getManyByType(evtHandles);
157 
158  for (unsigned int i = 0; i < evtHandles.size(); ++i) {
159  if (evtHandles[i].isValid()) {
160  const HepMC::GenEvent *evt = evtHandles[i]->GetEvent();
161 
162  // take only 1st vertex for now - it's been tested only of PGuns...
163  //
164  HepMC::GenEvent::vertex_const_iterator vtx = evt->vertices_begin();
165  if (evtHandles[i].provenance()->moduleLabel() == std::string(l.module)) {
166  // Corrdinates of Vertex w.r.o. the point (0,0,0)
167  xVtx_ = 0.1 * (*vtx)->position().x();
168  yVtx_ = 0.1 * (*vtx)->position().y();
169  zVtx_ = 0.1 * (*vtx)->position().z();
170  }
171  }
172  }
173  //==============================================================================
174  // Get handle to SC collections
175 
177  try {
179  } catch (cms::Exception &ex) {
180  edm::LogError("EnergyScaleAnalyzer") << "Can't get collection with producer hybridSuperClusters.";
181  }
182 
184  try {
186  } catch (cms::Exception &ex) {
187  edm::LogError("EnergyScaleAnalyzer") << "Can't get collection with producer dynamicHybridSuperClusters.";
188  }
189 
190  Handle<reco::SuperClusterCollection> fixedMatrixSuperClustersWithPS;
191  try {
192  evt.getByToken(fixedMatrixSuperClustersWithPreshower_token, fixedMatrixSuperClustersWithPS);
193  } catch (cms::Exception &ex) {
194  edm::LogError("EnergyScaleAnalyzer") << "Can't get collection with producer "
195  "fixedMatrixSuperClustersWithPreshower.";
196  }
197 
198  // Corrected collections
199  Handle<reco::SuperClusterCollection> correctedHybridSC;
200  try {
201  evt.getByToken(correctedHybridSuperClusters_token, correctedHybridSC);
202  } catch (cms::Exception &ex) {
203  edm::LogError("EnergyScaleAnalyzer") << "Can't get collection with producer correctedHybridSuperClusters.";
204  }
205 
206  Handle<reco::SuperClusterCollection> correctedDynamicHybridSC;
207  try {
208  evt.getByToken(correctedDynamicHybridSuperClusters_token, correctedDynamicHybridSC);
209  } catch (cms::Exception &ex) {
210  edm::LogError("EnergyScaleAnalyzer") << "Can't get collection with producer "
211  "correctedDynamicHybridSuperClusters.";
212  }
213 
214  Handle<reco::SuperClusterCollection> correctedFixedMatrixSCWithPS;
215  try {
216  evt.getByToken(correctedFixedMatrixSuperClustersWithPreshower_token, correctedFixedMatrixSCWithPS);
217  } catch (cms::Exception &ex) {
218  edm::LogError("EnergyScaleAnalyzer") << "Can't get collection with producer "
219  "correctedFixedMatrixSuperClustersWithPreshower.";
220  }
221 
223  const reco::SuperClusterCollection *hSC = hybridSuperClusters.product();
224  const reco::SuperClusterCollection *fmSC = fixedMatrixSuperClustersWithPS.product();
225  const reco::SuperClusterCollection *chSC = correctedHybridSC.product();
226  const reco::SuperClusterCollection *cdSC = correctedDynamicHybridSC.product();
227  const reco::SuperClusterCollection *cfmSC = correctedFixedMatrixSCWithPS.product();
228 
229  // ----------------------- Print outs for debugging
230  /*
231  std::cout << "MC truth" << std::endl;
232  int counterI = 0;
233  for( HepMC::GenEvent::particle_const_iterator p =
234  genEvent->particles_begin(); p != genEvent->particles_end(); ++p ) { if (
235  fabs((*p)->momentum().eta()) < 1.5 ) { std::cout << ++counterI << " " <<
236  (*p)->momentum().e() << " "
237  << (*p)->momentum().phi() << " " << (*p)->momentum().eta() <<
238  std::endl;
239  }
240  }
241 
242  std::cout << "Standard clusters" << std::endl;
243  counterI = 0;
244  for(reco::SuperClusterCollection::const_iterator em = hSC->begin();
245  em != hSC->end(); ++em )
246  std::cout << ++counterI << " " << em->energy() << " " <<
247  em->position().phi() << " " << em->position().eta() << std::endl;
248 
249  std::cout << "Dynamic clusters" << std::endl;
250  counterI = 0;
251  for(reco::SuperClusterCollection::const_iterator em = dSC->begin();
252  em != dSC->end(); ++em )
253  std::cout << ++counterI << " " << em->energy() << " " <<
254  em->position().phi() << " " << em->position().eta() << std::endl;
255 
256  std::cout << "FixedMatrix clusters with PS" << std::endl;
257  counterI = 0;
258  for(reco::SuperClusterCollection::const_iterator em = fmSC->begin();
259  em != fmSC->end(); ++em )
260  std::cout << ++counterI << " " << em->energy() << " " <<
261  em->position().phi() << " " << em->position().eta() << std::endl;
262  */
263  // -----------------------------
264  //=====================================================================
265  // All containers are loaded, perform the analysis
266  //====================================================================
267 
268  // --------------------------- Store MC particles
269  HepMC::GenEvent::particle_const_iterator p = genEvent->particles_begin();
270 
271  // Search for MC electrons or photons that satisfy the criteria
272  float min_eT = 5;
273  float max_eta = 2.5;
274 
275  std::vector<HepMC::GenParticle *> mcParticles;
276  // int counter = 0;
277  for (HepMC::GenEvent::particle_const_iterator p = genEvent->particles_begin(); p != genEvent->particles_end(); ++p) {
278  // LogInfo("EnergyScaleAnalyzer") << "Particle " << ++counter
279  //<< " PDG ID = " << (*p)->pdg_id() << " pT = " << (*p)->momentum().perp();
280  // require photon or electron
281  if ((*p)->pdg_id() != 22 && abs((*p)->pdg_id()) != 11)
282  continue;
283 
284  // require selection criteria
285  bool satisfySelectionCriteria = (*p)->momentum().perp() > min_eT && fabs((*p)->momentum().eta()) < max_eta;
286 
287  if (!satisfySelectionCriteria)
288  continue;
289 
290  // EM MC particle is found, save it in the vector
291  mcParticles.push_back(*p);
292  }
293  // separation in dR between 2 first MC particles
294  // should not be used for MC samples with > 2 em objects generated!
295  if (mcParticles.size() == 2) {
296  HepMC::GenParticle *mc1 = mcParticles[0];
297  HepMC::GenParticle *mc2 = mcParticles[1];
298  tree_.mc_sep =
299  kinem::delta_R(mc1->momentum().eta(), mc1->momentum().phi(), mc2->momentum().eta(), mc2->momentum().phi());
300  } else
301  tree_.mc_sep = -100;
302 
303  // now loop over MC particles, find the match with SC and do everything we
304  // need then save info in the tree for every MC particle
305  for (std::vector<HepMC::GenParticle *>::const_iterator p = mcParticles.begin(); p != mcParticles.end(); ++p) {
306  HepMC::GenParticle *mc = *p;
307 
308  // Fill MC information
309  tree_.mc_npar = mcParticles.size();
310  tree_.parID = mc->pdg_id();
311  tree_.mc_e = mc->momentum().e();
312  tree_.mc_et = mc->momentum().e() * sin(mc->momentum().theta());
313  tree_.mc_phi = mc->momentum().phi();
314  tree_.mc_eta = mc->momentum().eta();
315  tree_.mc_theta = mc->momentum().theta();
316 
317  // Call function to fill tree
318  // scType coprreponds:
319  // HybridSuperCluster -- 1
320  // DynamicHybridSuperCluster -- 2
321  // FixedMatrixSuperClustersWithPreshower -- 3
322 
323  fillTree(hSC, chSC, mc, tree_, xVtx_, yVtx_, zVtx_, 1);
324  // std::cout << " TYPE " << 1 << " : " << tree_.em_e << " : " <<
325  // tree_.em_phi << " : " << tree_.em_eta << std::endl;
326 
327  fillTree(dSC, cdSC, mc, tree_, xVtx_, yVtx_, zVtx_, 2);
328  // std::cout << " TYPE " << 2 << " : " << tree_.em_e << " : " <<
329  // tree_.em_phi << " : " << tree_.em_eta << std::endl;
330 
331  fillTree(fmSC, cfmSC, mc, tree_, xVtx_, yVtx_, zVtx_, 3);
332  // std::cout << " TYPE " << 3 << " : " << tree_.em_e << " : " <<
333  // tree_.em_phi << " : " << tree_.em_eta << std::endl;
334 
335  // mytree_->Fill();
336  } // loop over particles
337 }

References funct::abs(), correctedDynamicHybridSuperClusters_token, correctedFixedMatrixSuperClustersWithPreshower_token, correctedHybridSuperClusters_token, kinem::delta_R(), dynamicHybridSuperClusters_cfi::dynamicHybridSuperClusters, dynamicHybridSuperClusters_token, fillTree(), fixedMatrixSuperClustersWithPreshower_token, genWeightsTable_cfi::genEvent, GenParticle::GenParticle, edm::Event::getByToken(), edm::Event::getManyByType(), MuonClassifier_cff::hepMC, hepMCLabel_, unifiedSCCollection_cfi::hybridSuperClusters, hybridSuperClusters_token, mps_fire::i, sistrip::SpyUtilities::isValid(), cmsLHEtoEOSManager::l, edm::EDConsumerBase::labelsForToken(), HLT_FULL_cff::max_eta, CaloTowersParam_cfi::mc, EnergyScaleAnalyzer::tree_structure_::mc_e, EnergyScaleAnalyzer::tree_structure_::mc_et, EnergyScaleAnalyzer::tree_structure_::mc_eta, EnergyScaleAnalyzer::tree_structure_::mc_npar, EnergyScaleAnalyzer::tree_structure_::mc_phi, EnergyScaleAnalyzer::tree_structure_::mc_sep, EnergyScaleAnalyzer::tree_structure_::mc_theta, HerwigMaxPtPartonFilter_cfi::moduleLabel, AlCaHLTBitMon_ParallelJobs::p, EnergyScaleAnalyzer::tree_structure_::parID, edm::Handle< T >::product(), funct::sin(), AlCaHLTBitMon_QueryRunRegistry::string, tree_, extraflags_cff::vtx, xVtx_, yVtx_, and zVtx_.

◆ beginJob()

void EnergyScaleAnalyzer::beginJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 106 of file EnergyScaleAnalyzer.cc.

106  {
107  //========================================================================
108 
109  mytree_ = new TTree("energyScale", "");
110  TString treeVariables =
111  "mc_npar/I:parID:mc_sep/"
112  "F:mc_e:mc_et:mc_phi:mc_eta:mc_theta:"; // MC information
113  treeVariables += "em_dR/F:"; // MC <-> EM matching information
114  treeVariables +=
115  "em_isInCrack/I:em_scType:em_e/F:em_et:em_phi:em_eta:em_theta:em_nCell/"
116  "I:em_nBC:"; // EM SC info
117  treeVariables += "em_pet/F:em_pe:em_peta:em_ptheta:"; // EM SC physics (eta corrected
118  // information)
119 
120  treeVariables += "emCorr_e/F:emCorr_et:emCorr_eta:emCorr_phi:emCorr_theta:"; // CMSSW
121  // standard
122  // corrections
123  treeVariables += "emCorr_pet/F:emCorr_peta:emCorr_ptheta:"; // CMSSW standard physics
124 
125  treeVariables += "em_pw/F:em_ew:em_br"; // EM widths pw -- phiWidth, ew --
126  // etaWidth, ratios of pw/ew
127 
128  mytree_->Branch("energyScale", &(tree_.mc_npar), treeVariables);
129 }

References EnergyScaleAnalyzer::tree_structure_::mc_npar, mytree_, and tree_.

◆ endJob()

void EnergyScaleAnalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 469 of file EnergyScaleAnalyzer.cc.

469  {
470  //========================================================================
471  // Fill ROOT tree
472  rootFile_->Write();
473 }

References rootFile_.

◆ fillTree()

void EnergyScaleAnalyzer::fillTree ( const reco::SuperClusterCollection scColl,
const reco::SuperClusterCollection corrSCColl,
HepMC::GenParticle *  mc,
tree_structure_ tree_,
float  xV,
float  yV,
float  zV,
int  scType 
)
private

fill tree with kinematic variables of corrected Super Cluster

Definition at line 339 of file EnergyScaleAnalyzer.cc.

346  {
347  // ----------------------------- SuperClusters before energy correction
348  reco::SuperClusterCollection::const_iterator em = scColl->end();
349  float energyMax = -100.0; // dummy energy of the matched SC
350  for (reco::SuperClusterCollection::const_iterator aClus = scColl->begin(); aClus != scColl->end(); ++aClus) {
351  // check the matching
352  float dR =
353  kinem::delta_R(mc->momentum().eta(), mc->momentum().phi(), aClus->position().eta(), aClus->position().phi());
354  if (dR < 0.4) { // a rather loose matching cut
355  float energy = aClus->energy();
356  if (energy < energyMax)
357  continue;
358  energyMax = energy;
359  em = aClus;
360  }
361  }
362 
363  if (em == scColl->end()) {
364  // std::cout << "No matching SC with type " << scType << " was found for
365  // MC particle! " << std::endl; std::cout << "Going to next type of SC.
366  // " << std::endl;
367  return;
368  }
369  // ------------
370 
371  tree_.em_scType = scType;
372 
373  tree_.em_isInCrack = 0;
374  double emAbsEta = fabs(em->position().eta());
375  // copied from
376  // RecoEgama/EgammaElectronAlgos/src/EgammaElectronClassification.cc
377  if (emAbsEta < 0.018 || (emAbsEta > 0.423 && emAbsEta < 0.461) || (emAbsEta > 0.770 && emAbsEta < 0.806) ||
378  (emAbsEta > 1.127 && emAbsEta < 1.163) || (emAbsEta > 1.460 && emAbsEta < 1.558))
379  tree_.em_isInCrack = 1;
380 
381  tree_.em_dR = kinem::delta_R(mc->momentum().eta(), mc->momentum().phi(), em->position().eta(), em->position().phi());
382  tree_.em_e = em->energy();
383  tree_.em_et = em->energy() * sin(em->position().theta());
384  tree_.em_phi = em->position().phi();
385  tree_.em_eta = em->position().eta();
386  tree_.em_theta = em->position().theta();
387  tree_.em_nCell = em->size();
388  tree_.em_nBC = em->clustersSize();
389 
390  // Get physics e, et etc:
391  // Coordinates of EM object with respect of the point (0,0,0)
392  xClust_zero_ = em->position().x();
393  yClust_zero_ = em->position().y();
394  zClust_zero_ = em->position().z();
395  // Coordinates of EM object w.r.o. the Vertex position
396  xClust_vtx_ = xClust_zero_ - xV;
397  yClust_vtx_ = yClust_zero_ - yV;
398  zClust_vtx_ = zClust_zero_ - zV;
399 
400  energyMax_ = em->energy();
401  thetaMax_ = em->position().theta();
402  etaMax_ = em->position().eta();
403  phiMax_ = em->position().phi();
405  if (phiMax_ < 0)
406  phiMax_ += 2 * 3.14159;
407 
410  etaMaxVtx_ = -log(tan(thetaMaxVtx_ / 2));
413  if (phiMaxVtx_ < 0)
414  phiMaxVtx_ += 2 * 3.14159;
415  //=============================
416  // parametres of EM object after vertex correction
421 
422  //------------------------------- Get SC after energy correction
423  em = corrSCColl->end();
424  energyMax = -100.0; // dummy energy of the matched SC
425  for (reco::SuperClusterCollection::const_iterator aClus = corrSCColl->begin(); aClus != corrSCColl->end(); ++aClus) {
426  // check the matching
427  float dR =
428  kinem::delta_R(mc->momentum().eta(), mc->momentum().phi(), aClus->position().eta(), aClus->position().phi());
429  if (dR < 0.4) {
430  float energy = aClus->energy();
431  if (energy < energyMax)
432  continue;
433  energyMax = energy;
434  em = aClus;
435  }
436  }
437 
438  if (em == corrSCColl->end()) {
439  // std::cout << "No matching corrected SC with type " << scType << " was
440  // found for MC particle! " << std::endl; std::cout << "Going to next
441  // type of SC. " << std::endl;
442  return;
443  }
444  // ------------
445 
447  tree_.emCorr_e = em->energy();
448  tree_.emCorr_et = em->energy() * sin(em->position().theta());
449  tree_.emCorr_phi = em->position().phi();
450  tree_.emCorr_eta = em->position().eta();
451  tree_.emCorr_theta = em->position().theta();
452 
453  // =========== Eta and Theta wrt Vertex does not change after energy
454  // corrections are applied
455  // =========== So, no need to calculate them again
456 
460 
461  tree_.em_pw = em->phiWidth();
462  tree_.em_ew = em->etaWidth();
464 
465  mytree_->Fill();
466 }

References kinem::delta_R(), HGC3DClusterGenMatchSelector_cfi::dR, EnergyScaleAnalyzer::tree_structure_::em_br, EnergyScaleAnalyzer::tree_structure_::em_dR, EnergyScaleAnalyzer::tree_structure_::em_e, EnergyScaleAnalyzer::tree_structure_::em_et, EnergyScaleAnalyzer::tree_structure_::em_eta, EnergyScaleAnalyzer::tree_structure_::em_ew, EnergyScaleAnalyzer::tree_structure_::em_isInCrack, EnergyScaleAnalyzer::tree_structure_::em_nBC, EnergyScaleAnalyzer::tree_structure_::em_nCell, EnergyScaleAnalyzer::tree_structure_::em_pe, EnergyScaleAnalyzer::tree_structure_::em_pet, EnergyScaleAnalyzer::tree_structure_::em_peta, EnergyScaleAnalyzer::tree_structure_::em_phi, EnergyScaleAnalyzer::tree_structure_::em_ptheta, EnergyScaleAnalyzer::tree_structure_::em_pw, EnergyScaleAnalyzer::tree_structure_::em_scType, EnergyScaleAnalyzer::tree_structure_::em_theta, EnergyScaleAnalyzer::tree_structure_::emCorr_e, EnergyScaleAnalyzer::tree_structure_::emCorr_et, EnergyScaleAnalyzer::tree_structure_::emCorr_eta, EnergyScaleAnalyzer::tree_structure_::emCorr_pet, EnergyScaleAnalyzer::tree_structure_::emCorr_peta, EnergyScaleAnalyzer::tree_structure_::emCorr_phi, EnergyScaleAnalyzer::tree_structure_::emCorr_ptheta, EnergyScaleAnalyzer::tree_structure_::emCorr_theta, HCALHighEnergyHPDFilter_cfi::energy, energyMax_, etaMax_, etaMaxVtx_, eTMax_, eTMaxVtx_, dqm-mbProfile::log, CaloTowersParam_cfi::mc, mytree_, phiMax_, phiMaxVtx_, rClust_vtx_, funct::sin(), mathSSE::sqrt(), funct::tan(), thetaMax_, thetaMaxVtx_, tree_, xClust_vtx_, xClust_zero_, yClust_vtx_, yClust_zero_, zClust_vtx_, and zClust_zero_.

Referenced by analyze().

Member Data Documentation

◆ correctedDynamicHybridSuperClusters_token

edm::EDGetTokenT<reco::SuperClusterCollection> EnergyScaleAnalyzer::correctedDynamicHybridSuperClusters_token
private

Definition at line 64 of file EnergyScaleAnalyzer.h.

Referenced by analyze(), and EnergyScaleAnalyzer().

◆ correctedFixedMatrixSuperClustersWithPreshower_token

edm::EDGetTokenT<reco::SuperClusterCollection> EnergyScaleAnalyzer::correctedFixedMatrixSuperClustersWithPreshower_token
private

Definition at line 65 of file EnergyScaleAnalyzer.h.

Referenced by analyze(), and EnergyScaleAnalyzer().

◆ correctedHybridSuperClusters_token

edm::EDGetTokenT<reco::SuperClusterCollection> EnergyScaleAnalyzer::correctedHybridSuperClusters_token
private

Definition at line 63 of file EnergyScaleAnalyzer.h.

Referenced by analyze(), and EnergyScaleAnalyzer().

◆ dynamicHybridSuperClusters_token

edm::EDGetTokenT<reco::SuperClusterCollection> EnergyScaleAnalyzer::dynamicHybridSuperClusters_token
private

Definition at line 62 of file EnergyScaleAnalyzer.h.

Referenced by analyze(), and EnergyScaleAnalyzer().

◆ energyMax_

float EnergyScaleAnalyzer::energyMax_
private

Definition at line 137 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ etaMax_

float EnergyScaleAnalyzer::etaMax_
private

Definition at line 140 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ etaMaxVtx_

float EnergyScaleAnalyzer::etaMaxVtx_
private

Definition at line 141 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ eTMax_

float EnergyScaleAnalyzer::eTMax_
private

Definition at line 138 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ eTMaxVtx_

float EnergyScaleAnalyzer::eTMaxVtx_
private

Definition at line 139 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ evtN

int EnergyScaleAnalyzer::evtN
private

Definition at line 148 of file EnergyScaleAnalyzer.h.

Referenced by EnergyScaleAnalyzer().

◆ fixedMatrixSuperClustersWithPreshower_token

edm::EDGetTokenT<reco::SuperClusterCollection> EnergyScaleAnalyzer::fixedMatrixSuperClustersWithPreshower_token
private

Definition at line 66 of file EnergyScaleAnalyzer.h.

Referenced by analyze(), and EnergyScaleAnalyzer().

◆ hepMCLabel_

edm::EDGetTokenT<edm::HepMCProduct> EnergyScaleAnalyzer::hepMCLabel_
private

Definition at line 60 of file EnergyScaleAnalyzer.h.

Referenced by analyze(), and EnergyScaleAnalyzer().

◆ hybridSuperClusters_token

edm::EDGetTokenT<reco::SuperClusterCollection> EnergyScaleAnalyzer::hybridSuperClusters_token
private

Definition at line 61 of file EnergyScaleAnalyzer.h.

Referenced by analyze(), and EnergyScaleAnalyzer().

◆ mytree_

TTree* EnergyScaleAnalyzer::mytree_
private

Definition at line 72 of file EnergyScaleAnalyzer.h.

Referenced by beginJob(), and fillTree().

◆ outputFile_

std::string EnergyScaleAnalyzer::outputFile_
private

Definition at line 58 of file EnergyScaleAnalyzer.h.

Referenced by EnergyScaleAnalyzer().

◆ phiMax_

float EnergyScaleAnalyzer::phiMax_
private

Definition at line 142 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ phiMaxVtx_

float EnergyScaleAnalyzer::phiMaxVtx_
private

Definition at line 143 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ rClust_vtx_

float EnergyScaleAnalyzer::rClust_vtx_
private

Definition at line 135 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ rootFile_

TFile* EnergyScaleAnalyzer::rootFile_
private

Definition at line 69 of file EnergyScaleAnalyzer.h.

Referenced by endJob(), EnergyScaleAnalyzer(), and ~EnergyScaleAnalyzer().

◆ thetaMax_

float EnergyScaleAnalyzer::thetaMax_
private

Definition at line 144 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ thetaMaxVtx_

float EnergyScaleAnalyzer::thetaMaxVtx_
private

Definition at line 145 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ tree_

tree_structure_ EnergyScaleAnalyzer::tree_
private

Definition at line 120 of file EnergyScaleAnalyzer.h.

Referenced by analyze(), beginJob(), and fillTree().

◆ xClust_vtx_

float EnergyScaleAnalyzer::xClust_vtx_
private

Definition at line 131 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ xClust_zero_

float EnergyScaleAnalyzer::xClust_zero_
private

Definition at line 127 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ xVtx_

float EnergyScaleAnalyzer::xVtx_
private

Definition at line 123 of file EnergyScaleAnalyzer.h.

Referenced by analyze().

◆ yClust_vtx_

float EnergyScaleAnalyzer::yClust_vtx_
private

Definition at line 132 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ yClust_zero_

float EnergyScaleAnalyzer::yClust_zero_
private

Definition at line 128 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ yVtx_

float EnergyScaleAnalyzer::yVtx_
private

Definition at line 124 of file EnergyScaleAnalyzer.h.

Referenced by analyze().

◆ zClust_vtx_

float EnergyScaleAnalyzer::zClust_vtx_
private

Definition at line 133 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ zClust_zero_

float EnergyScaleAnalyzer::zClust_zero_
private

Definition at line 129 of file EnergyScaleAnalyzer.h.

Referenced by fillTree().

◆ zVtx_

float EnergyScaleAnalyzer::zVtx_
private

Definition at line 125 of file EnergyScaleAnalyzer.h.

Referenced by analyze().

EnergyScaleAnalyzer::tree_structure_::em_nBC
int em_nBC
Definition: EnergyScaleAnalyzer.h:96
EnergyScaleAnalyzer::eTMax_
float eTMax_
Definition: EnergyScaleAnalyzer.h:138
HLT_FULL_cff.max_eta
max_eta
Definition: HLT_FULL_cff.py:47192
EnergyScaleAnalyzer::tree_structure_::em_eta
float em_eta
Definition: EnergyScaleAnalyzer.h:93
EnergyScaleAnalyzer::tree_structure_::parID
int parID
Definition: EnergyScaleAnalyzer.h:76
mps_fire.i
i
Definition: mps_fire.py:428
EnergyScaleAnalyzer::correctedFixedMatrixSuperClustersWithPreshower_token
edm::EDGetTokenT< reco::SuperClusterCollection > correctedFixedMatrixSuperClustersWithPreshower_token
Definition: EnergyScaleAnalyzer.h:65
EnergyScaleAnalyzer::tree_structure_::em_et
float em_et
Definition: EnergyScaleAnalyzer.h:91
EnergyScaleAnalyzer::tree_structure_::em_peta
float em_peta
Definition: EnergyScaleAnalyzer.h:101
edm::Handle::product
T const * product() const
Definition: Handle.h:70
edm::EDConsumerBase::Labels
ProductLabels Labels
Definition: EDConsumerBase.h:110
EnergyScaleAnalyzer::thetaMax_
float thetaMax_
Definition: EnergyScaleAnalyzer.h:144
CaloTowersParam_cfi.mc
mc
Definition: CaloTowersParam_cfi.py:8
EnergyScaleAnalyzer::rootFile_
TFile * rootFile_
Definition: EnergyScaleAnalyzer.h:69
edm
HLT enums.
Definition: AlignableModifier.h:19
EnergyScaleAnalyzer::tree_structure_::em_dR
float em_dR
Definition: EnergyScaleAnalyzer.h:85
EnergyScaleAnalyzer::zVtx_
float zVtx_
Definition: EnergyScaleAnalyzer.h:125
EnergyScaleAnalyzer::energyMax_
float energyMax_
Definition: EnergyScaleAnalyzer.h:137
EnergyScaleAnalyzer::outputFile_
std::string outputFile_
Definition: EnergyScaleAnalyzer.h:58
EnergyScaleAnalyzer::tree_structure_::em_theta
float em_theta
Definition: EnergyScaleAnalyzer.h:94
EnergyScaleAnalyzer::tree_structure_::emCorr_peta
float emCorr_peta
Definition: EnergyScaleAnalyzer.h:111
EnergyScaleAnalyzer::correctedDynamicHybridSuperClusters_token
edm::EDGetTokenT< reco::SuperClusterCollection > correctedDynamicHybridSuperClusters_token
Definition: EnergyScaleAnalyzer.h:64
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
EnergyScaleAnalyzer::tree_structure_::mc_npar
int mc_npar
Definition: EnergyScaleAnalyzer.h:75
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
EnergyScaleAnalyzer::thetaMaxVtx_
float thetaMaxVtx_
Definition: EnergyScaleAnalyzer.h:145
EnergyScaleAnalyzer::xClust_vtx_
float xClust_vtx_
Definition: EnergyScaleAnalyzer.h:131
edm::Event::getManyByType
void getManyByType(std::vector< Handle< PROD >> &results) const
Definition: Event.h:530
edm::Handle
Definition: AssociativeIterator.h:50
unifiedSCCollection_cfi.hybridSuperClusters
hybridSuperClusters
Definition: unifiedSCCollection_cfi.py:7
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
kinem::delta_R
double delta_R(double eta1, double phi1, double eta2, double phi2)
Definition: AnglesUtil.h:106
EnergyScaleAnalyzer::tree_structure_::emCorr_theta
float emCorr_theta
Definition: EnergyScaleAnalyzer.h:109
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
reco::SuperClusterCollection
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
Definition: SuperClusterFwd.h:9
EnergyScaleAnalyzer::tree_structure_::em_br
float em_br
Definition: EnergyScaleAnalyzer.h:118
EnergyScaleAnalyzer::tree_structure_::emCorr_ptheta
float emCorr_ptheta
Definition: EnergyScaleAnalyzer.h:112
EnergyScaleAnalyzer::tree_structure_::em_ptheta
float em_ptheta
Definition: EnergyScaleAnalyzer.h:102
EnergyScaleAnalyzer::rClust_vtx_
float rClust_vtx_
Definition: EnergyScaleAnalyzer.h:135
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
EnergyScaleAnalyzer::tree_structure_::emCorr_e
float emCorr_e
Definition: EnergyScaleAnalyzer.h:105
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
EnergyScaleAnalyzer::tree_structure_::mc_eta
float mc_eta
Definition: EnergyScaleAnalyzer.h:81
sistrip::SpyUtilities::isValid
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
Definition: SiStripSpyUtilities.cc:124
EnergyScaleAnalyzer::tree_structure_::em_scType
int em_scType
Definition: EnergyScaleAnalyzer.h:89
EnergyScaleAnalyzer::hybridSuperClusters_token
edm::EDGetTokenT< reco::SuperClusterCollection > hybridSuperClusters_token
Definition: EnergyScaleAnalyzer.h:61
EnergyScaleAnalyzer::tree_structure_::em_pw
float em_pw
Definition: EnergyScaleAnalyzer.h:115
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
EnergyScaleAnalyzer::yClust_vtx_
float yClust_vtx_
Definition: EnergyScaleAnalyzer.h:132
EnergyScaleAnalyzer::correctedHybridSuperClusters_token
edm::EDGetTokenT< reco::SuperClusterCollection > correctedHybridSuperClusters_token
Definition: EnergyScaleAnalyzer.h:63
dynamicHybridSuperClusters_cfi.dynamicHybridSuperClusters
dynamicHybridSuperClusters
Definition: dynamicHybridSuperClusters_cfi.py:5
EnergyScaleAnalyzer::tree_structure_::mc_theta
float mc_theta
Definition: EnergyScaleAnalyzer.h:82
EnergyScaleAnalyzer::xClust_zero_
float xClust_zero_
Definition: EnergyScaleAnalyzer.h:127
EnergyScaleAnalyzer::evtN
int evtN
Definition: EnergyScaleAnalyzer.h:148
EnergyScaleAnalyzer::tree_structure_::em_nCell
int em_nCell
Definition: EnergyScaleAnalyzer.h:95
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
EnergyScaleAnalyzer::tree_structure_::em_pet
float em_pet
Definition: EnergyScaleAnalyzer.h:99
EnergyScaleAnalyzer::tree_structure_::mc_sep
float mc_sep
Definition: EnergyScaleAnalyzer.h:77
EnergyScaleAnalyzer::zClust_zero_
float zClust_zero_
Definition: EnergyScaleAnalyzer.h:129
EnergyScaleAnalyzer::fillTree
void fillTree(const reco::SuperClusterCollection *scColl, const reco::SuperClusterCollection *corrSCColl, HepMC::GenParticle *mc, tree_structure_ &tree_, float xV, float yV, float zV, int scType)
Definition: EnergyScaleAnalyzer.cc:339
EnergyScaleAnalyzer::fixedMatrixSuperClustersWithPreshower_token
edm::EDGetTokenT< reco::SuperClusterCollection > fixedMatrixSuperClustersWithPreshower_token
Definition: EnergyScaleAnalyzer.h:66
EnergyScaleAnalyzer::phiMaxVtx_
float phiMaxVtx_
Definition: EnergyScaleAnalyzer.h:143
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EnergyScaleAnalyzer::dynamicHybridSuperClusters_token
edm::EDGetTokenT< reco::SuperClusterCollection > dynamicHybridSuperClusters_token
Definition: EnergyScaleAnalyzer.h:62
EnergyScaleAnalyzer::zClust_vtx_
float zClust_vtx_
Definition: EnergyScaleAnalyzer.h:133
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:204
edm::EDConsumerBase::labelsForToken
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
Definition: EDConsumerBase.cc:338
EnergyScaleAnalyzer::xVtx_
float xVtx_
Definition: EnergyScaleAnalyzer.h:123
EnergyScaleAnalyzer::yClust_zero_
float yClust_zero_
Definition: EnergyScaleAnalyzer.h:128
EnergyScaleAnalyzer::etaMax_
float etaMax_
Definition: EnergyScaleAnalyzer.h:140
EnergyScaleAnalyzer::hepMCLabel_
edm::EDGetTokenT< edm::HepMCProduct > hepMCLabel_
Definition: EnergyScaleAnalyzer.h:60
EnergyScaleAnalyzer::tree_structure_::emCorr_pet
float emCorr_pet
Definition: EnergyScaleAnalyzer.h:110
GenParticle.GenParticle
GenParticle
Definition: GenParticle.py:18
std
Definition: JetResolutionObject.h:76
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:19
genWeightsTable_cfi.genEvent
genEvent
Definition: genWeightsTable_cfi.py:4
EnergyScaleAnalyzer::yVtx_
float yVtx_
Definition: EnergyScaleAnalyzer.h:124
EnergyScaleAnalyzer::tree_structure_::mc_e
float mc_e
Definition: EnergyScaleAnalyzer.h:78
EnergyScaleAnalyzer::mytree_
TTree * mytree_
Definition: EnergyScaleAnalyzer.h:72
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
EnergyScaleAnalyzer::tree_structure_::em_isInCrack
int em_isInCrack
Definition: EnergyScaleAnalyzer.h:88
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
EnergyScaleAnalyzer::etaMaxVtx_
float etaMaxVtx_
Definition: EnergyScaleAnalyzer.h:141
EnergyScaleAnalyzer::tree_structure_::em_phi
float em_phi
Definition: EnergyScaleAnalyzer.h:92
EnergyScaleAnalyzer::phiMax_
float phiMax_
Definition: EnergyScaleAnalyzer.h:142
EnergyScaleAnalyzer::tree_structure_::emCorr_phi
float emCorr_phi
Definition: EnergyScaleAnalyzer.h:108
cms::Exception
Definition: Exception.h:70
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
EnergyScaleAnalyzer::tree_structure_::em_pe
float em_pe
Definition: EnergyScaleAnalyzer.h:100
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
EnergyScaleAnalyzer::eTMaxVtx_
float eTMaxVtx_
Definition: EnergyScaleAnalyzer.h:139
HerwigMaxPtPartonFilter_cfi.moduleLabel
moduleLabel
Definition: HerwigMaxPtPartonFilter_cfi.py:4
EnergyScaleAnalyzer::tree_structure_::emCorr_eta
float emCorr_eta
Definition: EnergyScaleAnalyzer.h:107
EnergyScaleAnalyzer::tree_structure_::mc_phi
float mc_phi
Definition: EnergyScaleAnalyzer.h:80
EnergyScaleAnalyzer::tree_structure_::mc_et
float mc_et
Definition: EnergyScaleAnalyzer.h:79
EnergyScaleAnalyzer::tree_structure_::emCorr_et
float emCorr_et
Definition: EnergyScaleAnalyzer.h:106
EnergyScaleAnalyzer::tree_structure_::em_ew
float em_ew
Definition: EnergyScaleAnalyzer.h:116
edm::InputTag
Definition: InputTag.h:15
EnergyScaleAnalyzer::tree_
tree_structure_ tree_
Definition: EnergyScaleAnalyzer.h:120
MuonClassifier_cff.hepMC
hepMC
Definition: MuonClassifier_cff.py:13
EnergyScaleAnalyzer::tree_structure_::em_e
float em_e
Definition: EnergyScaleAnalyzer.h:90