CMS 3D CMS Logo

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

#include <Calibration/EcalCalibAlgos/src/ElectronCalibration.cc>

Inheritance diagram for ElectronCalibration:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
 ElectronCalibration (const edm::ParameterSet &)
 
void endJob () override
 
 ~ElectronCalibration () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const noexcept
 
bool wantsStreamRuns () const noexcept
 
 ~EDAnalyzerBase () 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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > 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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, 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::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

EBDetId findMaxHit (edm::Handle< EBRecHitCollection > &)
 
EBDetId findMaxHit2 (const std::vector< DetId > &, const EBRecHitCollection *)
 

Private Attributes

std::string calibAlgo_
 
CalibrationCluster calibCluster
 
int calibClusterSize
 
TH1F * calibinter
 
TH1F * calibinterNoCuts
 
TH1F * calibs
 
TH1F * calibsNoCuts
 
int ClusterSize_
 
double cut1_
 
double cut2_
 
double cut3_
 
double cutCalo1_
 
double cutCalo2_
 
double cutEPCalo1_
 
double cutEPCalo2_
 
double cutEPin1_
 
double cutEPin2_
 
double cutESeed_
 
TH1F * DiffCalibs
 
TH1F * DiffCalibsNoCuts
 
TH1F * e25
 
TH1F * e25NoCuts
 
TH1F * E25oP
 
TH1F * E25oPNoCuts
 
TH1F * e25OverScE
 
TH1F * e25OverScENoCuts
 
TH1F * e9
 
TH1F * e9NoCuts
 
TH1F * e9Overe25
 
TH1F * e9Overe25NoCuts
 
int elecclass_
 
edm::EDGetTokenT< reco::GsfElectronCollectionelectronToken_
 
double ElePt_
 
std::vector< float > EnergyVector
 
std::vector< float > EnergyVectorNoCuts
 
TH1F * EoP
 
TH1F * EoP_all
 
TH1F * EoPNoCuts
 
TH1F * Error1
 
TH1F * Error1NoCuts
 
TH1F * Error2
 
TH1F * Error2NoCuts
 
TH1F * Error3
 
TH1F * Error3NoCuts
 
TH1F * eSeedOverPout
 
TH1F * eSeedOverPout2
 
TH1F * eSeedOverPout2ESeed
 
TH1F * eSeedOverPout2NoCuts
 
TH1F * eSeedOverPoutNoCuts
 
int etaMax
 
int etaMin
 
int eventcrystal [171][360]
 
std::vector< std::vector< float > > EventMatrix
 
std::vector< std::vector< float > > EventMatrixNoCuts
 
TFile * f
 
TH2F * GeneralMap
 
TH1F * hadOverEm
 
TH1F * hadOverEmESeed
 
TH1F * hadOverEmNoCuts
 
int keventweight
 
int keventweight_
 
TH2F * Map
 
TH2F * Map3Dcalib
 
TH2F * Map3DcalibNoCuts
 
TH2F * MapCor1
 
TH2F * MapCor10
 
TH2F * MapCor10ESeed
 
TH2F * MapCor10NoCuts
 
TH2F * MapCor11
 
TH2F * MapCor11ESeed
 
TH2F * MapCor11NoCuts
 
TH2F * MapCor1ESeed
 
TH2F * MapCor1NoCuts
 
TH2F * MapCor2
 
TH2F * MapCor2ESeed
 
TH2F * MapCor2NoCuts
 
TH2F * MapCor3
 
TH2F * MapCor3ESeed
 
TH2F * MapCor3NoCuts
 
TH2F * MapCor4
 
TH2F * MapCor4ESeed
 
TH2F * MapCor4NoCuts
 
TH2F * MapCor5
 
TH2F * MapCor5ESeed
 
TH2F * MapCor5NoCuts
 
TH2F * MapCor6
 
TH2F * MapCor6ESeed
 
TH2F * MapCor6NoCuts
 
TH2F * MapCor7
 
TH2F * MapCor7ESeed
 
TH2F * MapCor7NoCuts
 
TH2F * MapCor8
 
TH2F * MapCor8ESeed
 
TH2F * MapCor8NoCuts
 
TH2F * MapCor9
 
TH2F * MapCor9ESeed
 
TH2F * MapCor9NoCuts
 
TH2F * MapCorCalib
 
TH2F * MapCorCalibNoCuts
 
TH2F * MapNoCuts
 
std::vector< int > MaxCCeta
 
std::vector< int > MaxCCetaNoCuts
 
std::vector< int > MaxCCphi
 
std::vector< int > MaxCCphiNoCuts
 
int maxeta_
 
int maxphi_
 
int mineta_
 
int minphi_
 
std::string miscalibfile_
 
TH1F * MisCalibs
 
HouseholderDecompositionMyHH
 
MinL3AlgorithmMyL3Algo1
 
std::vector< float > newCalibs
 
int numevent_
 
std::vector< float > oldCalibs
 
int phiMax
 
int phiMin
 
TH1F * PinMinPout
 
TH1F * PinMinPoutNoCuts
 
TH1F * PinOverPout
 
TH1F * PinOverPoutNoCuts
 
TH1F * RatioCalibs
 
TH1F * RatioCalibsNoCuts
 
int read_events
 
edm::EDGetTokenT< EBRecHitCollectionrecHitToken_
 
CalibrationCluster::CalibMap ReducedMap
 
std::string rootfile_
 
TH1F * scE
 
TH1F * scENoCuts
 
std::vector< float > solution
 
std::vector< float > solutionNoCuts
 
edm::InputTag trackLabel_
 
TH1F * trP
 
TH1F * trPNoCuts
 
std::vector< float > WeightVector
 
std::vector< float > WeightVectorNoCuts
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
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)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: Perform single electron calibration (tested on TB data only).

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

Definition at line 46 of file ElectronCalibration.h.

Constructor & Destructor Documentation

◆ ElectronCalibration()

ElectronCalibration::ElectronCalibration ( const edm::ParameterSet iConfig)
explicit

Definition at line 33 of file ElectronCalibration.cc.

References calibAlgo_, ClusterSize_, cut1_, cut2_, cut3_, cutCalo1_, cutCalo2_, cutEPCalo1_, cutEPCalo2_, cutEPin1_, cutEPin2_, cutESeed_, elecclass_, electronToken_, ElePt_, edm::ParameterSet::getParameter(), keventweight_, maxeta_, maxphi_, mineta_, minphi_, miscalibfile_, numevent_, recHitToken_, rootfile_, AlCaHLTBitMon_QueryRunRegistry::string, and trackLabel_.

33  {
34  rootfile_ = iConfig.getParameter<std::string>("rootfile");
35  recHitToken_ = consumes<EBRecHitCollection>(iConfig.getParameter<edm::InputTag>("ebRecHitsLabel"));
36  electronToken_ = consumes<reco::GsfElectronCollection>(iConfig.getParameter<edm::InputTag>("electronLabel"));
37  trackLabel_ = iConfig.getParameter<edm::InputTag>("trackLabel");
38  calibAlgo_ = iConfig.getParameter<std::string>("CALIBRATION_ALGO");
39  edm::LogVerbatim("EcalCalib") << " The used Algorithm is " << calibAlgo_;
40  keventweight_ = iConfig.getParameter<int>("keventweight");
41  ClusterSize_ = iConfig.getParameter<int>("Clustersize");
42  ElePt_ = iConfig.getParameter<double>("ElePt");
43  maxeta_ = iConfig.getParameter<int>("maxeta");
44  mineta_ = iConfig.getParameter<int>("mineta");
45  maxphi_ = iConfig.getParameter<int>("maxphi");
46  minphi_ = iConfig.getParameter<int>("minphi");
47  cut1_ = iConfig.getParameter<double>("cut1");
48  cut2_ = iConfig.getParameter<double>("cut2");
49  cut3_ = iConfig.getParameter<double>("cut3");
50  elecclass_ = iConfig.getParameter<int>("elecclass");
51  edm::LogVerbatim("EcalCalib") << " The electronclass is " << elecclass_;
52  numevent_ = iConfig.getParameter<int>("numevent");
53  miscalibfile_ = iConfig.getParameter<std::string>("miscalibfile");
54 
55  cutEPCalo1_ = iConfig.getParameter<double>("cutEPCaloMin");
56  cutEPCalo2_ = iConfig.getParameter<double>("cutEPCaloMax");
57  cutEPin1_ = iConfig.getParameter<double>("cutEPinMin");
58  cutEPin2_ = iConfig.getParameter<double>("cutEPinMax");
59  cutCalo1_ = iConfig.getParameter<double>("cutCaloMin");
60  cutCalo2_ = iConfig.getParameter<double>("cutCaloMax");
61 
62  cutESeed_ = iConfig.getParameter<double>("cutESeed");
63 }
Log< level::Info, true > LogVerbatim
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::EDGetTokenT< EBRecHitCollection > recHitToken_
edm::EDGetTokenT< reco::GsfElectronCollection > electronToken_

◆ ~ElectronCalibration()

ElectronCalibration::~ElectronCalibration ( )
override

Definition at line 65 of file ElectronCalibration.cc.

65 {}

Member Function Documentation

◆ analyze()

void ElectronCalibration::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 452 of file ElectronCalibration.cc.

References calibCluster, reco::GsfElectron::classification(), ClusterSize_, cut1_, cut2_, cut3_, cutEPin1_, cutEPin2_, cutESeed_, e25, e25NoCuts, E25oP, E25oPNoCuts, e25OverScE, e25OverScENoCuts, e9, e9NoCuts, e9Overe25, e9Overe25NoCuts, elecclass_, pdwgLeptonRecoSkim_cfi::electronCollection, electronToken_, ElePt_, hcalRecHitTable_cff::energy, reco::CaloCluster::energy(), EnergyVector, EnergyVectorNoCuts, EoP, EoP_all, EoPNoCuts, Error1, Error1NoCuts, Error2, Error2NoCuts, Error3, Error3NoCuts, reco::GsfElectron::eSeedClusterOverPout(), eSeedOverPout, eSeedOverPout2, eSeedOverPout2ESeed, eSeedOverPout2NoCuts, eSeedOverPoutNoCuts, reco::GsfElectron::eSuperClusterOverP(), reco::LeafCandidate::eta(), reco::CaloCluster::eta(), eventcrystal, EventMatrix, EventMatrixNoCuts, findMaxHit2(), newFWLiteAna::found, GeneralMap, CalibrationCluster::get5x5Id(), hadOverEm, hadOverEmESeed, hadOverEmNoCuts, reco::GsfElectron::hadronicOverEm(), hfClusterShapes_cfi::hits, reco::CaloCluster::hitsAndFractions(), EBDetId::ieta(), iEvent, EBDetId::iphi(), edm::isNotFinite(), edm::HandleBase::isValid(), Map, MapCor1, MapCor10, MapCor10ESeed, MapCor10NoCuts, MapCor11, MapCor11ESeed, MapCor11NoCuts, MapCor1ESeed, MapCor1NoCuts, MapCor2, MapCor2ESeed, MapCor2NoCuts, MapCor3, MapCor3ESeed, MapCor3NoCuts, MapCor4, MapCor4ESeed, MapCor4NoCuts, MapCor5, MapCor5ESeed, MapCor5NoCuts, MapCor6, MapCor6ESeed, MapCor6NoCuts, MapCor7, MapCor7ESeed, MapCor7NoCuts, MapCor8, MapCor8ESeed, MapCor8NoCuts, MapCor9, MapCor9ESeed, MapCor9NoCuts, MapNoCuts, MaxCCeta, MaxCCetaNoCuts, MaxCCphi, MaxCCphiNoCuts, maxeta_, maxphi_, mineta_, minphi_, DetId::null(), numevent_, reco::LeafCandidate::p(), phits, PinMinPout, PinMinPoutNoCuts, PinOverPout, PinOverPoutNoCuts, funct::pow(), edm::Handle< T >::product(), read_events, recHitToken_, scE, scENoCuts, mathSSE::sqrt(), reco::GsfElectron::superCluster(), reco::GsfElectron::trackMomentumAtCalo(), reco::GsfElectron::trackMomentumAtVtx(), reco::GsfElectron::trackMomentumError(), reco::GsfElectron::trackMomentumOut(), trP, trPNoCuts, trackerHitRTTI::vector, WeightVector, and WeightVectorNoCuts.

452  {
453  //=================================================================================
454  using namespace edm;
455 
456  // Get EBRecHits
458  if (!phits.isValid()) {
459  edm::LogError("EcalCalib") << "Error! can't get the product EBRecHitCollection: ";
460  }
461 
462  const EBRecHitCollection* hits = phits.product(); // get a ptr to the product
463 
464  // Get pixelElectrons
465  const Handle<reco::GsfElectronCollection>& pElectrons = iEvent.getHandle(electronToken_);
466  if (!pElectrons.isValid()) {
467  edm::LogError("EcalCalib") << "Error! can't get the product ElectronCollection: ";
468  }
469 
471  read_events++;
472  if (read_events % 1000 == 0)
473  edm::LogVerbatim("EcalCalib") << "read_events = " << read_events << std::endl;
474 
475  if (!hits)
476  return;
477  if (hits->empty())
478  return;
479  if (!electronCollection)
480  return;
481  if (electronCollection->empty())
482  return;
483 
485  // START HERE....
487  reco::GsfElectronCollection::const_iterator eleIt = electronCollection->begin();
488 
489  reco::GsfElectron highPtElectron;
490 
491  float highestElePt = 0.;
492  bool found = false;
493  for (eleIt = electronCollection->begin(); eleIt != electronCollection->end(); eleIt++) {
494  //Comments
495  if (fabs(eleIt->eta()) > (maxeta_ + 3) * 0.0175)
496  continue;
497  if (eleIt->eta() < (mineta_ - 3) * 0.0175)
498  continue;
499 
500  if (eleIt->pt() > highestElePt) {
501  highestElePt = eleIt->pt();
502  highPtElectron = *eleIt;
503  found = true;
504  }
505  }
506  if (highestElePt < ElePt_)
507  return;
508  if (!found)
509  return;
510  const reco::SuperCluster& sc = *(highPtElectron.superCluster());
511  if (fabs(sc.eta()) > (maxeta_ + 3) * 0.0175) {
512  edm::LogVerbatim("EcalCalib") << "++++ Problem with electron, electron eta is " << highPtElectron.eta()
513  << " while SC is " << sc.eta() << std::endl;
514  return;
515  }
516 
517  std::vector<DetId> v1;
518  //Loop to fill the vector of DetIds
519  for (std::vector<std::pair<DetId, float> >::const_iterator idsIt = sc.hitsAndFractions().begin();
520  idsIt != sc.hitsAndFractions().end();
521  ++idsIt) {
522  v1.push_back(idsIt->first);
523  }
524 
525  //Change function name
526  EBDetId maxHitId;
527 
528  maxHitId = findMaxHit2(v1, hits);
529 
530  if (maxHitId.null()) {
531  edm::LogVerbatim("EcalCalib") << " Null " << std::endl;
532  return;
533  }
534 
535  int maxCC_Eta = maxHitId.ieta();
536  int maxCC_Phi = maxHitId.iphi();
537 
538  if (maxCC_Eta > maxeta_)
539  return;
540  if (maxCC_Eta < mineta_)
541  return;
542  if (maxCC_Phi > maxphi_)
543  return;
544  if (maxCC_Phi < minphi_)
545  return;
546 
547  // number of events per crystal is set
548  if (numevent_ > 0) {
549  eventcrystal[maxCC_Eta + 85][maxCC_Phi - 1] += 1;
550  if (eventcrystal[maxCC_Eta + 85][maxCC_Phi - 1] > numevent_)
551  return;
552  }
553 
554  std::vector<EBDetId> Xtals5x5 = calibCluster.get5x5Id(maxHitId);
555 
556  if ((int)Xtals5x5.size() != ClusterSize_ * ClusterSize_)
557  return;
558 
559  // fill cluster energy
560  std::vector<float> energy;
561  float energy3x3 = 0.;
562  float energy5x5 = 0.;
563 
564  for (int icry = 0; icry < ClusterSize_ * ClusterSize_; icry++) {
566  if (Xtals5x5[icry].subdetId() != 1)
567  continue;
568  itrechit = hits->find(Xtals5x5[icry]);
569  if (itrechit == hits->end()) {
570  edm::LogVerbatim("EcalCalib") << "DetId not is e25";
571  continue;
572  }
573 
574  if (edm::isNotFinite(itrechit->energy()))
575  return;
576  energy.push_back(itrechit->energy());
577  energy5x5 += energy[icry];
578 
579  if (icry == 6 || icry == 7 || icry == 8 || icry == 11 || icry == 12 || icry == 13 || icry == 16 || icry == 17 ||
580  icry == 18) {
581  energy3x3 += energy[icry];
582  }
583  }
584  if ((int)energy.size() != ClusterSize_ * ClusterSize_)
585  return;
586  // Once we have the matrix 5x5, we have to correct for gaps/cracks/umbrella and maincontainement
587 
588  GeneralMap->Fill(maxCC_Eta, maxCC_Phi);
589 
590  EoP_all->Fill(highPtElectron.eSuperClusterOverP());
591 
592  if (highPtElectron.classification() == elecclass_ || elecclass_ == -1) {
593  float Ptrack_in =
594  sqrt(pow(highPtElectron.trackMomentumAtVtx().X(), 2) + pow(highPtElectron.trackMomentumAtVtx().Y(), 2) +
595  pow(highPtElectron.trackMomentumAtVtx().Z(), 2));
596 
597  float UncorrectedPatCalo =
598  sqrt(pow(highPtElectron.trackMomentumAtCalo().X(), 2) + pow(highPtElectron.trackMomentumAtCalo().Y(), 2) +
599  pow(highPtElectron.trackMomentumAtCalo().Z(), 2));
600 
601  float Ptrack_out =
602  sqrt(pow(highPtElectron.trackMomentumOut().X(), 2) + pow(highPtElectron.trackMomentumOut().Y(), 2) +
603  pow(highPtElectron.trackMomentumOut().Z(), 2));
604 
605  EventMatrixNoCuts.push_back(energy);
606  EnergyVectorNoCuts.push_back(UncorrectedPatCalo);
607 
608  MaxCCetaNoCuts.push_back(maxCC_Eta);
609  MaxCCphiNoCuts.push_back(maxCC_Phi);
610 
611  WeightVectorNoCuts.push_back(energy5x5 / UncorrectedPatCalo);
612 
613  //---------------------------------------------------No Cuts-------------------------------------------------------
614  e9NoCuts->Fill(energy3x3);
615  e25NoCuts->Fill(energy5x5);
616  e9Overe25NoCuts->Fill(energy3x3 / energy5x5);
617  scENoCuts->Fill(sc.energy());
618 
619  trPNoCuts->Fill(UncorrectedPatCalo);
620 
621  EoPNoCuts->Fill(highPtElectron.eSuperClusterOverP());
622  e25OverScENoCuts->Fill(energy5x5 / sc.energy());
623 
624  E25oPNoCuts->Fill(energy5x5 / UncorrectedPatCalo);
625 
626  MapNoCuts->Fill(maxCC_Eta, maxCC_Phi);
627  PinOverPoutNoCuts->Fill(
628  sqrt(pow(highPtElectron.trackMomentumAtVtx().X(), 2) + pow(highPtElectron.trackMomentumAtVtx().Y(), 2) +
629  pow(highPtElectron.trackMomentumAtVtx().Z(), 2)) /
630  sqrt(pow(highPtElectron.trackMomentumOut().X(), 2) + pow(highPtElectron.trackMomentumOut().Y(), 2) +
631  pow(highPtElectron.trackMomentumOut().Z(), 2)));
632  eSeedOverPoutNoCuts->Fill(highPtElectron.eSuperClusterOverP());
633 
634  MapCor1NoCuts->Fill(energy5x5 / UncorrectedPatCalo, energy5x5 / Ptrack_in);
635  MapCor2NoCuts->Fill(energy5x5 / UncorrectedPatCalo, highPtElectron.eSuperClusterOverP());
636  MapCor3NoCuts->Fill(energy5x5 / UncorrectedPatCalo, Ptrack_out / Ptrack_in);
637  MapCor4NoCuts->Fill(energy5x5 / UncorrectedPatCalo, energy5x5 / highPtElectron.p());
638  MapCor5NoCuts->Fill(energy5x5 / UncorrectedPatCalo, UncorrectedPatCalo / Ptrack_out);
639  MapCor6NoCuts->Fill(Ptrack_out / Ptrack_in, energy5x5 / Ptrack_in);
640  MapCor7NoCuts->Fill(Ptrack_out / Ptrack_in, UncorrectedPatCalo / Ptrack_out);
641  MapCor8NoCuts->Fill(energy5x5 / Ptrack_in, UncorrectedPatCalo / Ptrack_out);
642  MapCor9NoCuts->Fill(energy5x5 / UncorrectedPatCalo, highPtElectron.eSeedClusterOverPout());
643  MapCor10NoCuts->Fill(highPtElectron.eSeedClusterOverPout(), Ptrack_out / Ptrack_in);
644  MapCor11NoCuts->Fill(highPtElectron.eSeedClusterOverPout(), energy5x5 / Ptrack_in);
645 
646  PinMinPoutNoCuts->Fill((Ptrack_in - Ptrack_out) / Ptrack_in);
647 
648  Error1NoCuts->Fill(highPtElectron.trackMomentumError() / Ptrack_in);
649  Error2NoCuts->Fill(highPtElectron.trackMomentumError() / Ptrack_out);
650  Error3NoCuts->Fill(highPtElectron.trackMomentumError() / UncorrectedPatCalo);
651  eSeedOverPout2NoCuts->Fill(highPtElectron.eSeedClusterOverPout());
652 
653  hadOverEmNoCuts->Fill(highPtElectron.hadronicOverEm());
654 
655  //------------------------------------------------Cuts-----------------------------------------------------
656  //Cuts!
657  if ((energy3x3 / energy5x5) < cut1_)
658  return;
659 
660  if ((Ptrack_out / Ptrack_in) < cut2_ || (Ptrack_out / Ptrack_in) > cut3_)
661  return;
662  if ((energy5x5 / Ptrack_in) < cutEPin1_ || (energy5x5 / Ptrack_in) > cutEPin2_)
663  return;
664 
665  e9->Fill(energy3x3);
666  e25->Fill(energy5x5);
667  e9Overe25->Fill(energy3x3 / energy5x5);
668  scE->Fill(sc.energy());
669  trP->Fill(UncorrectedPatCalo);
670 
671  EoP->Fill(highPtElectron.eSuperClusterOverP());
672  e25OverScE->Fill(energy5x5 / sc.energy());
673 
674  E25oP->Fill(energy5x5 / UncorrectedPatCalo);
675 
676  Map->Fill(maxCC_Eta, maxCC_Phi);
677  PinOverPout->Fill(
678  sqrt(pow(highPtElectron.trackMomentumAtVtx().X(), 2) + pow(highPtElectron.trackMomentumAtVtx().Y(), 2) +
679  pow(highPtElectron.trackMomentumAtVtx().Z(), 2)) /
680  sqrt(pow(highPtElectron.trackMomentumOut().X(), 2) + pow(highPtElectron.trackMomentumOut().Y(), 2) +
681  pow(highPtElectron.trackMomentumOut().Z(), 2)));
682  eSeedOverPout->Fill(highPtElectron.eSuperClusterOverP());
683 
684  MapCor1->Fill(energy5x5 / UncorrectedPatCalo, energy5x5 / Ptrack_in);
685  MapCor2->Fill(energy5x5 / UncorrectedPatCalo, highPtElectron.eSuperClusterOverP());
686  MapCor3->Fill(energy5x5 / UncorrectedPatCalo, Ptrack_out / Ptrack_in);
687  MapCor4->Fill(energy5x5 / UncorrectedPatCalo, energy5x5 / highPtElectron.p());
688  MapCor5->Fill(energy5x5 / UncorrectedPatCalo, UncorrectedPatCalo / Ptrack_out);
689  MapCor6->Fill(Ptrack_out / Ptrack_in, energy5x5 / Ptrack_in);
690  MapCor7->Fill(Ptrack_out / Ptrack_in, UncorrectedPatCalo / Ptrack_out);
691  MapCor8->Fill(energy5x5 / Ptrack_in, UncorrectedPatCalo / Ptrack_out);
692  MapCor9->Fill(energy5x5 / UncorrectedPatCalo, highPtElectron.eSeedClusterOverPout());
693  MapCor10->Fill(highPtElectron.eSeedClusterOverPout(), Ptrack_out / Ptrack_in);
694  MapCor11->Fill(highPtElectron.eSeedClusterOverPout(), energy5x5 / Ptrack_in);
695 
696  PinMinPout->Fill((Ptrack_in - Ptrack_out) / Ptrack_in);
697 
698  Error1->Fill(highPtElectron.trackMomentumError() / Ptrack_in);
699  Error2->Fill(highPtElectron.trackMomentumError() / Ptrack_out);
700  Error3->Fill(highPtElectron.trackMomentumError() / UncorrectedPatCalo);
701 
702  eSeedOverPout2->Fill(highPtElectron.eSeedClusterOverPout());
703  hadOverEm->Fill(highPtElectron.hadronicOverEm());
704 
705  EventMatrix.push_back(energy);
706  EnergyVector.push_back(UncorrectedPatCalo);
707  MaxCCeta.push_back(maxCC_Eta);
708  MaxCCphi.push_back(maxCC_Phi);
709 
710  WeightVector.push_back(energy5x5 / UncorrectedPatCalo);
711 
712  //-------------------------------------------------------Extra Cut-----------------------------------------------------
713  if (highPtElectron.eSeedClusterOverPout() < cutESeed_)
714  return;
715 
716  MapCor1ESeed->Fill(energy5x5 / UncorrectedPatCalo, energy5x5 / Ptrack_in);
717  MapCor2ESeed->Fill(energy5x5 / UncorrectedPatCalo, highPtElectron.eSuperClusterOverP());
718  MapCor3ESeed->Fill(energy5x5 / UncorrectedPatCalo, Ptrack_out / Ptrack_in);
719  MapCor4ESeed->Fill(energy5x5 / UncorrectedPatCalo, energy5x5 / highPtElectron.p());
720  MapCor5ESeed->Fill(energy5x5 / UncorrectedPatCalo, UncorrectedPatCalo / Ptrack_out);
721  MapCor6ESeed->Fill(Ptrack_out / Ptrack_in, energy5x5 / Ptrack_in);
722  MapCor7ESeed->Fill(Ptrack_out / Ptrack_in, UncorrectedPatCalo / Ptrack_out);
723  MapCor8ESeed->Fill(energy5x5 / Ptrack_in, UncorrectedPatCalo / Ptrack_out);
724  MapCor9ESeed->Fill(energy5x5 / UncorrectedPatCalo, highPtElectron.eSeedClusterOverPout());
725  MapCor10ESeed->Fill(highPtElectron.eSeedClusterOverPout(), Ptrack_out / Ptrack_in);
726  MapCor11ESeed->Fill(highPtElectron.eSeedClusterOverPout(), energy5x5 / Ptrack_in);
727 
728  eSeedOverPout2ESeed->Fill(highPtElectron.eSeedClusterOverPout());
729 
730  hadOverEmESeed->Fill(highPtElectron.hadronicOverEm());
731 
732  } else {
733  return;
734  }
735 }
Log< level::Info, true > LogVerbatim
edm::EDGetTokenT< EBRecHitCollection > recHitToken_
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
Definition: CaloCluster.h:210
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
std::vector< float > WeightVector
int iphi() const
get the crystal iphi
Definition: EBDetId.h:51
float trackMomentumError() const
Definition: GsfElectron.h:884
T const * product() const
Definition: Handle.h:70
std::vector< EcalRecHit >::const_iterator const_iterator
edm::EDGetTokenT< reco::GsfElectronCollection > electronToken_
std::vector< int > MaxCCphiNoCuts
std::vector< int > MaxCCetaNoCuts
Log< level::Error, false > LogError
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
float eSuperClusterOverP() const
Definition: GsfElectron.h:221
Classification classification() const
Definition: GsfElectron.h:805
int ieta() const
get the crystal ieta
Definition: EBDetId.h:49
math::XYZVectorF trackMomentumAtCalo() const
Definition: GsfElectron.h:269
float eSeedClusterOverPout() const
Definition: GsfElectron.h:223
constexpr bool null() const
is this a null id ?
Definition: DetId.h:59
math::XYZVectorF trackMomentumOut() const
Definition: GsfElectron.h:270
std::vector< float > EnergyVector
int iEvent
Definition: GenABIO.cc:224
double p() const final
magnitude of momentum vector
TupleMultiplicity< TrackerTraits > const *__restrict__ TrackingRecHitSoAConstView< TrackerTraits > TrackerTraits::tindex_type *__restrict__ double *__restrict__ phits
std::vector< int > MaxCCphi
T sqrt(T t)
Definition: SSEVec.h:23
std::vector< float > WeightVectorNoCuts
std::vector< std::vector< float > > EventMatrixNoCuts
CalibrationCluster calibCluster
math::XYZVectorF trackMomentumAtVtx() const
Definition: GsfElectron.h:268
double energy() const
cluster energy
Definition: CaloCluster.h:149
std::vector< std::vector< float > > EventMatrix
bool isValid() const
Definition: HandleBase.h:70
EBDetId findMaxHit2(const std::vector< DetId > &, const EBRecHitCollection *)
HLT enums.
std::vector< float > EnergyVectorNoCuts
double eta() const
pseudorapidity of cluster centroid
Definition: CaloCluster.h:181
std::vector< EBDetId > get5x5Id(EBDetId const &)
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
float hadronicOverEm() const
Definition: GsfElectron.h:500
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:155
double eta() const final
momentum pseudorapidity
std::vector< int > MaxCCeta

◆ beginJob()

void ElectronCalibration::beginJob ( )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 68 of file ElectronCalibration.cc.

References calibAlgo_, calibCluster, calibClusterSize, calibinter, calibinterNoCuts, calibs, calibsNoCuts, ClusterSize_, DiffCalibs, DiffCalibsNoCuts, e25, e25NoCuts, E25oP, E25oPNoCuts, e25OverScE, e25OverScENoCuts, e9, e9NoCuts, e9Overe25, e9Overe25NoCuts, elecclass_, EoP, EoP_all, EoPNoCuts, Error1, Error1NoCuts, Error2, Error2NoCuts, Error3, Error3NoCuts, eSeedOverPout, eSeedOverPout2, eSeedOverPout2ESeed, eSeedOverPout2NoCuts, eSeedOverPoutNoCuts, PVValHelper::eta, etaMax, etaMin, eventcrystal, f, GeneralMap, CalibrationCluster::getMap(), hadOverEm, hadOverEmESeed, hadOverEmNoCuts, keventweight_, Map, Map3Dcalib, Map3DcalibNoCuts, MapCor1, MapCor10, MapCor10ESeed, MapCor10NoCuts, MapCor11, MapCor11ESeed, MapCor11NoCuts, MapCor1ESeed, MapCor1NoCuts, MapCor2, MapCor2ESeed, MapCor2NoCuts, MapCor3, MapCor3ESeed, MapCor3NoCuts, MapCor4, MapCor4ESeed, MapCor4NoCuts, MapCor5, MapCor5ESeed, MapCor5NoCuts, MapCor6, MapCor6ESeed, MapCor6NoCuts, MapCor7, MapCor7ESeed, MapCor7NoCuts, MapCor8, MapCor8ESeed, MapCor8NoCuts, MapCor9, MapCor9ESeed, MapCor9NoCuts, MapCorCalib, MapCorCalibNoCuts, MapNoCuts, maxeta_, maxphi_, mineta_, minphi_, MisCalibs, MyHH, MyL3Algo1, oldCalibs, phi, phiMax, phiMin, PinMinPout, PinMinPoutNoCuts, PinOverPout, PinOverPoutNoCuts, RatioCalibs, RatioCalibsNoCuts, read_events, ReducedMap, rootfile_, scE, scENoCuts, trP, and trPNoCuts.

68  {
69  //========================================================================
70  f = new TFile(rootfile_.c_str(), "RECREATE");
71 
72  // Book histograms
73  e9 = new TH1F("e9", "E9 energy", 300, 0., 150.);
74  e25 = new TH1F("e25", "E25 energy", 300, 0., 150.);
75  scE = new TH1F("scE", "SC energy", 300, 0., 150.);
76  trP = new TH1F("trP", "Trk momentum", 300, 0., 150.);
77  EoP = new TH1F("EoP", "EoP", 600, 0., 3.);
78  EoP_all = new TH1F("EoP_all", "EoP_all", 600, 0., 3.);
79 
80  if (elecclass_ == 0 || elecclass_ == -1) {
81  calibs = new TH1F("calib", "Calibration constants", 4000, 0.5, 2.);
82  } else {
83  calibs = new TH1F("calib", "Calibration constants", 800, 0.5, 2.);
84  }
85 
86  e25OverScE = new TH1F("e25OverscE", "E25 / SC energy", 400, 0., 2.);
87  E25oP = new TH1F("E25oP", "E25 / P", 1200, 0., 1.5);
88 
89  Map = new TH2F("Map", "Nb Events in Crystal", 85, 1, 85, 70, 5, 75);
90  e9Overe25 = new TH1F("e9Overe25", "E9 / E25", 400, 0., 2.);
91  Map3Dcalib = new TH2F("3Dcalib", "3Dcalib", 85, 1, 85, 70, 5, 75);
92 
93  MapCor1 = new TH2F("MapCor1", "Correlation E25/Pcalo versus E25/Pin", 100, 0., 5., 100, 0., 5.);
94  MapCor2 = new TH2F("MapCor2", "Correlation E25/Pcalo versus E/P", 100, 0., 5., 100, 0., 5.);
95  MapCor3 = new TH2F("MapCor3", "Correlation E25/Pcalo versus Pout/Pin", 100, 0., 5., 100, 0., 5.);
96  MapCor4 = new TH2F("MapCor4", "Correlation E25/Pcalo versus E25/highestP", 100, 0., 5., 100, 0., 5.);
97  MapCor5 = new TH2F("MapCor5", "Correlation E25/Pcalo versus Pcalo/Pout", 100, 0., 5., 100, 0., 5.);
98  MapCor6 = new TH2F("MapCor6", "Correlation Pout/Pin versus E25/Pin", 100, 0., 5., 100, 0., 5.);
99  MapCor7 = new TH2F("MapCor7", "Correlation Pout/Pin versus Pcalo/Pout", 100, 0., 5., 100, 0., 5.);
100  MapCor8 = new TH2F("MapCor8", "Correlation E25/Pin versus Pcalo/Pout", 100, 0., 5., 100, 0., 5.);
101  MapCor9 = new TH2F("MapCor9", "Correlation E25/Pcalo versus Eseed/Pout", 100, 0., 5., 100, 0., 5.);
102  MapCor10 = new TH2F("MapCor10", "Correlation Eseed/Pout versus Pout/Pin", 100, 0., 5., 100, 0., 5.);
103  MapCor11 = new TH2F("MapCor11", "Correlation Eseed/Pout versus E25/Pin", 100, 0., 5., 100, 0., 5.);
104  MapCorCalib =
105  new TH2F("MapCorCalib", "Correlation Miscalibration versus Calibration constants", 100, 0.5, 1.5, 100, 0.5, 1.5);
106 
107  PinMinPout = new TH1F("PinMinPout", "(Pin - Pout)/Pin", 600, -2.0, 2.0);
108 
109  if (elecclass_ == 0 || elecclass_ == -1) {
110  calibinter = new TH1F("calibinter", "internal calibration constants", 2000, 0.5, 2.);
111  PinOverPout = new TH1F("PinOverPout", "pinOverpout", 600, 0., 3.);
112  eSeedOverPout = new TH1F("eSeedOverPout", "eSeedOverpout ", 600, 0., 3.);
113  MisCalibs = new TH1F("MisCalibs", "Miscalibration constants", 4000, 0.5, 2.);
114  RatioCalibs = new TH1F("RatioCalibs", "Ratio in Calibration Constants", 4000, 0.5, 2.0);
115  DiffCalibs = new TH1F("DiffCalibs", "Difference in Calibration constants", 4000, -1.0, 1.0);
116  } else {
117  calibinter = new TH1F("calibinter", "internal calibration constants", 400, 0.5, 2.);
118  PinOverPout = new TH1F("PinOverPout", "pinOverpout", 600, 0., 3.);
119  eSeedOverPout = new TH1F("eSeedOverPout", "eSeedOverpout ", 600, 0., 3.);
120  MisCalibs = new TH1F("MisCalibs", "Miscalibration constants", 800, 0.5, 2.);
121  RatioCalibs = new TH1F("RatioCalibs", "Ratio in Calibration Constants", 800, 0.5, 2.0);
122  DiffCalibs = new TH1F("DiffCalibs", "Difference in Calibration constants", 800, -1.0, 1.0);
123  }
124  Error1 = new TH1F("Error1", "DeltaP/Pin", 800, -1.0, 1.0);
125  Error2 = new TH1F("Error2", "DeltaP/Pout", 800, -1.0, 1.0);
126  Error3 = new TH1F("Error3", "DeltaP/Pcalo", 800, -1.0, 1.0);
127  eSeedOverPout2 = new TH1F("eSeedOverPout2", "eSeedOverpout (No Supercluster)", 600, 0., 4.);
128  hadOverEm = new TH1F("hadOverEm", "Had/EM distribution", 600, -2., 2.);
129 
130  // Book histograms
131  Map3DcalibNoCuts = new TH2F("3DcalibNoCuts", "3Dcalib (Before Cuts)", 85, 1, 85, 70, 5, 75);
132  e9NoCuts = new TH1F("e9NoCuts", "E9 energy (Before Cuts)", 300, 0., 150.);
133  e25NoCuts = new TH1F("e25NoCuts", "E25 energy (Before Cuts)", 300, 0., 150.);
134  scENoCuts = new TH1F("scENoCuts", "SC energy (Before Cuts)", 300, 0., 150.);
135  trPNoCuts = new TH1F("trPNoCuts", "Trk momentum (Before Cuts)", 300, 0., 150.);
136  EoPNoCuts = new TH1F("EoPNoCuts", "EoP (Before Cuts)", 600, 0., 3.);
137  if (elecclass_ == 0 || elecclass_ == -1) {
138  calibsNoCuts = new TH1F("calibNoCuts", "Calibration constants (Before Cuts)", 4000, 0., 2.);
139  } else {
140  calibsNoCuts = new TH1F("calibNoCuts", "Calibration constants (Before Cuts)", 800, 0., 2.);
141  }
142  e25OverScENoCuts = new TH1F("e25OverscENoCuts", "E25 / SC energy (Before Cuts)", 400, 0., 2.);
143  E25oPNoCuts = new TH1F("E25oPNoCuts", "E25 / P (Before Cuts)", 1200, 0., 1.5);
144  MapNoCuts = new TH2F("MapNoCuts", "Nb Events in Crystal (Before Cuts)", 85, 1, 85, 70, 5, 75);
145  e9Overe25NoCuts = new TH1F("e9Overe25NoCuts", "E9 / E25 (Before Cuts)", 400, 0., 2.);
146  PinOverPoutNoCuts = new TH1F("PinOverPoutNoCuts", "pinOverpout (Before Cuts)", 600, 0., 3.);
147  eSeedOverPoutNoCuts = new TH1F(" eSeedOverPoutNoCuts", "eSeedOverpout (Before Cuts) ", 600, 0., 4.);
148  PinMinPoutNoCuts = new TH1F("PinMinPoutNoCuts", "(Pin - Pout)/Pin (Before Cuts)", 600, -2.0, 2.0);
149 
150  RatioCalibsNoCuts = new TH1F("RatioCalibsNoCuts", "Ratio in Calibration Constants (Before Cuts)", 4000, 0.5, 2.0);
151  DiffCalibsNoCuts = new TH1F("DiffCalibsNoCuts", "Difference in Calibration constants (Before Cuts)", 4000, -1.0, 1.0);
152  calibinterNoCuts = new TH1F("calibinterNoCuts", "internal calibration constants", 2000, 0.5, 2.);
153 
154  MapCor1NoCuts =
155  new TH2F("MapCor1NoCuts", "Correlation E25/PatCalo versus E25/Pin (Before Cuts)", 100, 0., 5., 100, 0., 5.);
156  MapCor2NoCuts =
157  new TH2F("MapCor2NoCuts", "Correlation E25/PatCalo versus E/P (Before Cuts)", 100, 0., 5., 100, 0., 5.);
158  MapCor3NoCuts =
159  new TH2F("MapCor3NoCuts", "Correlation E25/PatCalo versus Pout/Pin (Before Cuts)", 100, 0., 5., 100, 0., 5.);
160  MapCor4NoCuts =
161  new TH2F("MapCor4NoCuts", "Correlation E25/PatCalo versus E25/highestP (Before Cuts)", 100, 0., 5., 100, 0., 5.);
162  MapCor5NoCuts =
163  new TH2F("MapCor5NoCuts", "Correlation E25/Pcalo versus Pcalo/Pout (Before Cuts)", 100, 0., 5., 100, 0., 5.);
164  MapCor6NoCuts =
165  new TH2F("MapCor6NoCuts", "Correlation Pout/Pin versus E25/Pin (Before Cuts)", 100, 0., 5., 100, 0., 5.);
166  MapCor7NoCuts =
167  new TH2F("MapCor7NoCuts", "Correlation Pout/Pin versus Pcalo/Pout (Before Cuts)", 100, 0., 5., 100, 0., 5.);
168  MapCor8NoCuts =
169  new TH2F("MapCor8NoCuts", "Correlation E25/Pin versus Pcalo/Pout (Before Cuts)", 100, 0., 5., 100, 0., 5.);
170  MapCor9NoCuts =
171  new TH2F("MapCor9NoCuts", "Correlation E25/Pcalo versus Eseed/Pout (Before Cuts)", 100, 0., 5., 100, 0., 5.);
173  new TH2F("MapCor10NoCuts", "Correlation Eseed/Pout versus Pout/Pin (Before Cuts)", 100, 0., 5., 100, 0., 5.);
175  new TH2F("MapCor11NoCuts", "Correlation Eseed/Pout versus E25/Pin (Before Cuts)", 100, 0., 5., 100, 0., 5.);
176  MapCorCalibNoCuts = new TH2F("MapCorCalibNoCuts",
177  "Correlation Miscalibration versus Calibration constants (Before Cuts)",
178  100,
179  0.,
180  3.,
181  100,
182  0.,
183  3.);
184 
185  Error1NoCuts = new TH1F("Eror1NoCuts", "DeltaP/Pin (Before Cuts)", 800, -1.0, 1.0);
186  Error2NoCuts = new TH1F("Error2NoCuts", "DeltaP/Pout (Before Cuts)", 800, -1.0, 1.0);
187  Error3NoCuts = new TH1F("Error3NoCuts", "DeltaP/Pcalo (Before Cuts)", 800, -1.0, 1.0);
188  eSeedOverPout2NoCuts = new TH1F("eSeedOverPout2NoCuts", "eSeedOverpout (No Supercluster, Before Cuts)", 600, 0., 4.);
189  hadOverEmNoCuts = new TH1F("hadOverEmNoCuts", "Had/EM distribution (Before Cuts)", 600, -2., 2.);
190 
191  //Book histograms after ESeed cut
192  MapCor1ESeed =
193  new TH2F("MapCor1ESeed", "Correlation E25/Pcalo versus E25/Pin (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
194  MapCor2ESeed =
195  new TH2F("MapCor2ESeed", "Correlation E25/Pcalo versus E/P (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
196  MapCor3ESeed = new TH2F(
197  "MapCor3ESeed", "Correlation E25/Pcalo versus Pout/Pin (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
198  MapCor4ESeed = new TH2F(
199  "MapCor4ESeed", "Correlation E25/Pcalo versus E25/highestP (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
200  MapCor5ESeed = new TH2F(
201  "MapCor5ESeed", "Correlation E25/Pcalo versus Pcalo/Pout (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
202  MapCor6ESeed =
203  new TH2F("MapCor6ESeed", "Correlation Pout/Pin versus E25/Pin (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
204  MapCor7ESeed = new TH2F(
205  "MapCor7ESeed", "Correlation Pout/Pin versus Pcalo/Pout (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
206  MapCor8ESeed = new TH2F(
207  "MapCor8ESeed", "Correlation E25/Pin versus Pcalo/Pout (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
208  MapCor9ESeed = new TH2F(
209  "MapCor9ESeed", "Correlation E25/Pcalo versus Eseed/Pout (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
210  MapCor10ESeed = new TH2F(
211  "MapCor10ESeed", "Correlation Eseed/Pout versus Pout/Pin (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
212  MapCor11ESeed = new TH2F(
213  "MapCor11ESeed", "Correlation Eseed/Pout versus E25/Pin (after Eseed/Pout cut)", 100, 0., 5., 100, 0., 5.);
214 
216  new TH1F("eSeedOverPout2ESeed", "eSeedOverpout (No Supercluster, after Eseed/Pout cut)", 600, 0., 4.);
217 
218  hadOverEmESeed = new TH1F("hadOverEmESeed", "Had/EM distribution (after Eseed/Pout cut)", 600, -2., 2.);
219 
220  //Book histograms without any cut
221  GeneralMap = new TH2F("GeneralMap", "Map without any cuts", 85, 1, 85, 70, 5, 75);
222 
224  etaMin = mineta_;
225  etaMax = maxeta_;
226  phiMin = minphi_;
227  phiMax = maxphi_;
228  if (calibAlgo_ == "L3") {
230  } else {
231  if (calibAlgo_ == "HH" || calibAlgo_ == "HHReg") {
233  } else {
234  edm::LogError("EcalCalib") << " Name of Algorithm is not recognize " << calibAlgo_
235  << " Should be either L3, HH or HHReg. Abort! ";
236  }
237  }
238  read_events = 0;
239 
240  // get Region to be calibrated
242 
243  oldCalibs.resize(ReducedMap.size(), 0.);
244 
245  // table is set to zero
246  for (int phi = 0; phi < 360; phi++) {
247  for (int eta = 0; eta < 171; eta++) {
248  eventcrystal[eta][phi] = 0;
249  }
250  }
251 
252  edm::LogVerbatim("EcalCalib") << " Begin JOB ";
253 }
Log< level::Info, true > LogVerbatim
CalibrationCluster::CalibMap ReducedMap
HouseholderDecomposition * MyHH
CalibMap getMap(int, int, int, int)
MinL3Algorithm * MyL3Algo1
Log< level::Error, false > LogError
CalibrationCluster calibCluster
std::vector< float > oldCalibs

◆ endJob()

void ElectronCalibration::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 257 of file ElectronCalibration.cc.

References calibAlgo_, calibinter, calibinterNoCuts, calibs, calibsNoCuts, DiffCalibs, DiffCalibsNoCuts, EnergyVector, EnergyVectorNoCuts, PVValHelper::eta, EBDetId::ETAPHIMODE, EventMatrix, EventMatrixNoCuts, f, hcalRecHitTable_cff::ieta, ALPAKA_ACCELERATOR_NAMESPACE::caPixelDoublets::if(), cuy::ii, createfilelist::int, hcalRecHitTable_cff::iphi, MinL3Algorithm::iterate(), HouseholderDecomposition::iterate(), Map3Dcalib, Map3DcalibNoCuts, MapCorCalib, MapCorCalibNoCuts, MaxCCeta, MaxCCetaNoCuts, MaxCCphi, MaxCCphiNoCuts, maxeta_, maxphi_, mineta_, minphi_, miscalibfile_, MisCalibs, MyHH, MyL3Algo1, newCalibs, phi, RatioCalibs, RatioCalibsNoCuts, read_events, ReducedMap, HouseholderDecomposition::runRegional(), solution, solutionNoCuts, and calibXMLwriter::writeLine().

Referenced by o2olib.O2ORunMgr::executeJob().

257  {
258  //========================================================================
259 
260  int nIterations = 10;
261  if (calibAlgo_ == "L3") {
263  } else {
264  if (calibAlgo_ == "HH") {
266  } else {
267  if (calibAlgo_ == "HHReg") {
269  } else {
270  edm::LogError("EcalCalib") << " Calibration not run due to problem in Algo Choice...";
271  return;
272  }
273  }
274  }
275  for (int ii = 0; ii < (int)solution.size(); ii++) {
276  edm::LogVerbatim("EcalCalib") << "solution[" << ii << "] = " << solution[ii];
277  calibs->Fill(solution[ii]);
278  }
279 
280  newCalibs.resize(ReducedMap.size(), 0.);
281 
282  calibXMLwriter write_calibrations;
283 
284  FILE* MisCalib;
285  MisCalib = fopen(miscalibfile_.c_str(), "r");
286  int fileStatus = 1;
287  int eta = -1;
288  int phi = -1;
289  float coeff = -1;
290 
291  std::map<EBDetId, float> OldCoeff;
292 
293  while (fileStatus != EOF) {
294  fileStatus = fscanf(MisCalib, "%d %d %f\n", &eta, &phi, &coeff);
295  if (eta != -1 && phi != -1 && coeff != -1) {
296  OldCoeff.insert(std::make_pair(EBDetId(eta, phi, EBDetId::ETAPHIMODE), coeff));
297  }
298  }
299 
300  fclose(MisCalib);
301 
302  int icry = 0;
303  CalibrationCluster::CalibMap::iterator itmap;
304  for (itmap = ReducedMap.begin(); itmap != ReducedMap.end(); itmap++) {
305  newCalibs[icry] = solution[icry];
306 
307  write_calibrations.writeLine(itmap->first, newCalibs[icry]);
308  float Compare = 1.;
309  std::map<EBDetId, float>::iterator iter = OldCoeff.find(itmap->first);
310  if (iter != OldCoeff.end())
311  Compare = iter->second;
312 
313  if ((itmap->first).ieta() > mineta_ && (itmap->first).ieta() < maxeta_ && (itmap->first).iphi() > minphi_ &&
314  (itmap->first).iphi() < maxphi_) {
315  Map3Dcalib->Fill((itmap->first).ieta(), (itmap->first).iphi(), newCalibs[icry] * Compare);
316  MisCalibs->Fill(Compare);
317  }
318  if ((itmap->first).ieta() < mineta_ + 2) {
319  icry++;
320  continue;
321  }
322  if ((itmap->first).ieta() > maxeta_ - 2) {
323  icry++;
324  continue;
325  }
326  if ((itmap->first).iphi() < minphi_ + 2) {
327  icry++;
328  continue;
329  }
330  if ((itmap->first).iphi() > maxphi_ - 2) {
331  icry++;
332  continue;
333  }
334 
335  calibinter->Fill(newCalibs[icry]);
336  DiffCalibs->Fill(newCalibs[icry] - 1. / Compare);
337  RatioCalibs->Fill(newCalibs[icry] * Compare);
338  MapCorCalib->Fill(1. / Compare, newCalibs[icry]);
339  icry++;
340  }
341 
342  if (calibAlgo_ == "L3") {
345  } else {
346  if (calibAlgo_ == "HH") {
348  } else {
349  if (calibAlgo_ == "HHReg") {
351  } else {
352  edm::LogError("EcalCalib") << " Calibration not run due to problem in AlgoChoice...";
353  return;
354  }
355  }
356  }
357  for (int ii = 0; ii < (int)solutionNoCuts.size(); ii++) {
359  }
360  int icryp = 0;
361  CalibrationCluster::CalibMap::iterator itmapp;
362  for (itmapp = ReducedMap.begin(); itmapp != ReducedMap.end(); itmapp++) {
363  newCalibs[icryp] = solutionNoCuts[icryp];
364  float Compare2 = 1.;
365  std::map<EBDetId, float>::iterator iter2 = OldCoeff.find(itmapp->first);
366  if (iter2 != OldCoeff.end())
367  Compare2 = iter2->second;
368 
369  if ((itmapp->first).ieta() > mineta_ && (itmapp->first).ieta() < maxeta_ && (itmapp->first).iphi() > minphi_ &&
370  (itmapp->first).iphi() < maxphi_)
371  Map3DcalibNoCuts->Fill((itmapp->first).ieta(), (itmapp->first).iphi(), newCalibs[icryp] * Compare2);
372  if ((itmapp->first).ieta() < mineta_ + 2) {
373  icryp++;
374  continue;
375  }
376  if ((itmapp->first).ieta() > maxeta_ - 2) {
377  icryp++;
378  continue;
379  }
380  if ((itmapp->first).iphi() < minphi_ + 2) {
381  icryp++;
382  continue;
383  }
384  if ((itmapp->first).iphi() > maxphi_ - 2) {
385  icryp++;
386  continue;
387  }
388  calibinterNoCuts->Fill(newCalibs[icryp]);
389  DiffCalibsNoCuts->Fill(newCalibs[icryp] - 1. / (Compare2));
390  RatioCalibsNoCuts->Fill(newCalibs[icryp] * Compare2);
391  MapCorCalibNoCuts->Fill(1. / Compare2, newCalibs[icryp]);
392  icryp++;
393  }
394 
396 
397  edm::LogVerbatim("EcalCalib") << "\n************* STATISTICS **************";
398  edm::LogVerbatim("EcalCalib") << " Events Studied " << read_events;
399 
401 
402  f->Write();
403 
404  f->Close();
405 }
Log< level::Info, true > LogVerbatim
CalibrationCluster::CalibMap ReducedMap
HouseholderDecomposition * MyHH
std::vector< float > solutionNoCuts
MinL3Algorithm * MyL3Algo1
std::vector< int > MaxCCphiNoCuts
std::vector< int > MaxCCetaNoCuts
Log< level::Error, false > LogError
std::vector< float > solution
std::vector< float > newCalibs
std::vector< float > EnergyVector
std::vector< float > iterate(const std::vector< std::vector< float > > &eventMatrix, const std::vector< int > &VmaxCeta, const std::vector< int > &VmaxCphi, const std::vector< float > &energyVector, const int &nIter, const bool &normalizeFlag=false)
std::vector< int > MaxCCphi
std::vector< std::vector< float > > EventMatrixNoCuts
static const int ETAPHIMODE
Definition: EBDetId.h:158
ii
Definition: cuy.py:589
std::vector< std::vector< float > > EventMatrix
std::vector< float > runRegional(const std::vector< std::vector< float > > &eventMatrix, const std::vector< int > &VmaxCeta, const std::vector< int > &VmaxCphi, const std::vector< float > &energyVector, const int &nIter, const int &regLength=5)
void writeLine(EBDetId const &, float)
std::vector< float > EnergyVectorNoCuts
if(threadIdxLocalY==0 &&threadIdxLocalX==0)
std::vector< float > iterate(const std::vector< std::vector< float > > &eventMatrix, const std::vector< int > &VmaxCeta, const std::vector< int > &VmaxCphi, const std::vector< float > &energyVector, const int &nIter, const bool &normalizeFlag=false)
std::vector< int > MaxCCeta

◆ findMaxHit()

EBDetId ElectronCalibration::findMaxHit ( edm::Handle< EBRecHitCollection > &  phits)
private

Definition at line 408 of file ElectronCalibration.cc.

References edm::SortedCollection< T, SORT >::begin(), edm::SortedCollection< T, SORT >::end(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, AlCaHLTBitMon_ParallelJobs::p, phits, and cuy::save.

408  {
409  //=================================================================================
410 
411  EcalRecHitCollection ecrh = *phits;
413  EBDetId save;
414  float en_save = 0;
415  for (it = ecrh.begin(); it != ecrh.end(); it++) {
416  EBDetId p = EBDetId(it->id().rawId());
417  if (it->energy() > en_save) {
418  en_save = it->energy();
419  save = p;
420  }
421  }
422  return save;
423 }
TupleMultiplicity< TrackerTraits > const *__restrict__ TrackingRecHitSoAConstView< TrackerTraits > TrackerTraits::tindex_type *__restrict__ double *__restrict__ phits
const_iterator begin() const
std::vector< EcalRecHit >::iterator iterator
const_iterator end() const
save
Definition: cuy.py:1164

◆ findMaxHit2()

EBDetId ElectronCalibration::findMaxHit2 ( const std::vector< DetId > &  v1,
const EBRecHitCollection hits 
)
private

Definition at line 426 of file ElectronCalibration.cc.

References hfClusterShapes_cfi::hits, and MTVHistoProducerAlgoForTrackerBlock_cfi::maxHit.

Referenced by analyze().

426  {
427  //=================================================================================
428 
429  double currEnergy = 0.;
430  EBDetId maxHit;
431 
432  for (std::vector<DetId>::const_iterator idsIt = v1.begin(); idsIt != v1.end(); ++idsIt) {
433  if (idsIt->subdetId() != 1)
434  continue;
436  itrechit = hits->find(*idsIt);
437 
438  if (itrechit == hits->end()) {
439  edm::LogVerbatim("EcalCalib") << "ElectronCalibration::findMaxHit2: rechit not found! ";
440  continue;
441  }
442  if (itrechit->energy() > currEnergy) {
443  currEnergy = itrechit->energy();
444  maxHit = *idsIt;
445  }
446  }
447 
448  return maxHit;
449 }
Log< level::Info, true > LogVerbatim
std::vector< EcalRecHit >::const_iterator const_iterator

Member Data Documentation

◆ calibAlgo_

std::string ElectronCalibration::calibAlgo_
private

Definition at line 64 of file ElectronCalibration.h.

Referenced by beginJob(), ElectronCalibration(), and endJob().

◆ calibCluster

CalibrationCluster ElectronCalibration::calibCluster
private

Definition at line 85 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ calibClusterSize

int ElectronCalibration::calibClusterSize
private

Definition at line 90 of file ElectronCalibration.h.

Referenced by beginJob().

◆ calibinter

TH1F* ElectronCalibration::calibinter
private

Definition at line 145 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ calibinterNoCuts

TH1F* ElectronCalibration::calibinterNoCuts
private

Definition at line 146 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ calibs

TH1F* ElectronCalibration::calibs
private

Definition at line 119 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ calibsNoCuts

TH1F* ElectronCalibration::calibsNoCuts
private

Definition at line 138 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ ClusterSize_

int ElectronCalibration::ClusterSize_
private

Definition at line 83 of file ElectronCalibration.h.

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

◆ cut1_

double ElectronCalibration::cut1_
private

Definition at line 72 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ cut2_

double ElectronCalibration::cut2_
private

Definition at line 73 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ cut3_

double ElectronCalibration::cut3_
private

Definition at line 74 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ cutCalo1_

double ElectronCalibration::cutCalo1_
private

Definition at line 80 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

◆ cutCalo2_

double ElectronCalibration::cutCalo2_
private

Definition at line 81 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

◆ cutEPCalo1_

double ElectronCalibration::cutEPCalo1_
private

Definition at line 76 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

◆ cutEPCalo2_

double ElectronCalibration::cutEPCalo2_
private

Definition at line 77 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

◆ cutEPin1_

double ElectronCalibration::cutEPin1_
private

Definition at line 78 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ cutEPin2_

double ElectronCalibration::cutEPin2_
private

Definition at line 79 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ cutESeed_

double ElectronCalibration::cutESeed_
private

Definition at line 82 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ DiffCalibs

TH1F* ElectronCalibration::DiffCalibs
private

Definition at line 129 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ DiffCalibsNoCuts

TH1F* ElectronCalibration::DiffCalibsNoCuts
private

Definition at line 131 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ e25

TH1F* ElectronCalibration::e25
private

Definition at line 113 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ e25NoCuts

TH1F* ElectronCalibration::e25NoCuts
private

Definition at line 133 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ E25oP

TH1F* ElectronCalibration::E25oP
private

Definition at line 123 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ E25oPNoCuts

TH1F* ElectronCalibration::E25oPNoCuts
private

Definition at line 142 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ e25OverScE

TH1F* ElectronCalibration::e25OverScE
private

Definition at line 121 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ e25OverScENoCuts

TH1F* ElectronCalibration::e25OverScENoCuts
private

Definition at line 140 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ e9

TH1F* ElectronCalibration::e9
private

Definition at line 114 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ e9NoCuts

TH1F* ElectronCalibration::e9NoCuts
private

Definition at line 134 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ e9Overe25

TH1F* ElectronCalibration::e9Overe25
private

Definition at line 120 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ e9Overe25NoCuts

TH1F* ElectronCalibration::e9Overe25NoCuts
private

Definition at line 139 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ elecclass_

int ElectronCalibration::elecclass_
private

Definition at line 75 of file ElectronCalibration.h.

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

◆ electronToken_

edm::EDGetTokenT<reco::GsfElectronCollection> ElectronCalibration::electronToken_
private

Definition at line 62 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ ElePt_

double ElectronCalibration::ElePt_
private

Definition at line 67 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ EnergyVector

std::vector<float> ElectronCalibration::EnergyVector
private

Definition at line 92 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

◆ EnergyVectorNoCuts

std::vector<float> ElectronCalibration::EnergyVectorNoCuts
private

Definition at line 97 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

◆ EoP

TH1F* ElectronCalibration::EoP
private

Definition at line 117 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ EoP_all

TH1F* ElectronCalibration::EoP_all
private

Definition at line 118 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ EoPNoCuts

TH1F* ElectronCalibration::EoPNoCuts
private

Definition at line 137 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ Error1

TH1F* ElectronCalibration::Error1
private

Definition at line 194 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ Error1NoCuts

TH1F* ElectronCalibration::Error1NoCuts
private

Definition at line 197 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ Error2

TH1F* ElectronCalibration::Error2
private

Definition at line 195 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ Error2NoCuts

TH1F* ElectronCalibration::Error2NoCuts
private

Definition at line 198 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ Error3

TH1F* ElectronCalibration::Error3
private

Definition at line 196 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ Error3NoCuts

TH1F* ElectronCalibration::Error3NoCuts
private

Definition at line 199 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ eSeedOverPout

TH1F* ElectronCalibration::eSeedOverPout
private

Definition at line 126 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ eSeedOverPout2

TH1F* ElectronCalibration::eSeedOverPout2
private

Definition at line 201 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ eSeedOverPout2ESeed

TH1F* ElectronCalibration::eSeedOverPout2ESeed
private

Definition at line 203 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ eSeedOverPout2NoCuts

TH1F* ElectronCalibration::eSeedOverPout2NoCuts
private

Definition at line 202 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ eSeedOverPoutNoCuts

TH1F* ElectronCalibration::eSeedOverPoutNoCuts
private

Definition at line 149 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ etaMax

int ElectronCalibration::etaMax
private

Definition at line 91 of file ElectronCalibration.h.

Referenced by beginJob().

◆ etaMin

int ElectronCalibration::etaMin
private

Definition at line 91 of file ElectronCalibration.h.

Referenced by beginJob().

◆ eventcrystal

int ElectronCalibration::eventcrystal[171][360]
private

Definition at line 108 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ EventMatrix

std::vector<std::vector<float> > ElectronCalibration::EventMatrix
private

Definition at line 94 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

◆ EventMatrixNoCuts

std::vector<std::vector<float> > ElectronCalibration::EventMatrixNoCuts
private

Definition at line 99 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

◆ f

TFile* ElectronCalibration::f
private

◆ GeneralMap

TH2F* ElectronCalibration::GeneralMap
private

Definition at line 151 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ hadOverEm

TH1F* ElectronCalibration::hadOverEm
private

Definition at line 205 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ hadOverEmESeed

TH1F* ElectronCalibration::hadOverEmESeed
private

Definition at line 207 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ hadOverEmNoCuts

TH1F* ElectronCalibration::hadOverEmNoCuts
private

Definition at line 206 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ keventweight

int ElectronCalibration::keventweight
private

Definition at line 90 of file ElectronCalibration.h.

◆ keventweight_

int ElectronCalibration::keventweight_
private

Definition at line 66 of file ElectronCalibration.h.

Referenced by beginJob(), and ElectronCalibration().

◆ Map

TH2F* ElectronCalibration::Map
private

Definition at line 122 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ Map3Dcalib

TH2F* ElectronCalibration::Map3Dcalib
private

Definition at line 143 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ Map3DcalibNoCuts

TH2F* ElectronCalibration::Map3DcalibNoCuts
private

Definition at line 144 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ MapCor1

TH2F* ElectronCalibration::MapCor1
private

Definition at line 153 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor10

TH2F* ElectronCalibration::MapCor10
private

Definition at line 162 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor10ESeed

TH2F* ElectronCalibration::MapCor10ESeed
private

Definition at line 188 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor10NoCuts

TH2F* ElectronCalibration::MapCor10NoCuts
private

Definition at line 175 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor11

TH2F* ElectronCalibration::MapCor11
private

Definition at line 163 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor11ESeed

TH2F* ElectronCalibration::MapCor11ESeed
private

Definition at line 189 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor11NoCuts

TH2F* ElectronCalibration::MapCor11NoCuts
private

Definition at line 176 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor1ESeed

TH2F* ElectronCalibration::MapCor1ESeed
private

Definition at line 179 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor1NoCuts

TH2F* ElectronCalibration::MapCor1NoCuts
private

Definition at line 166 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor2

TH2F* ElectronCalibration::MapCor2
private

Definition at line 154 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor2ESeed

TH2F* ElectronCalibration::MapCor2ESeed
private

Definition at line 180 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor2NoCuts

TH2F* ElectronCalibration::MapCor2NoCuts
private

Definition at line 167 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor3

TH2F* ElectronCalibration::MapCor3
private

Definition at line 155 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor3ESeed

TH2F* ElectronCalibration::MapCor3ESeed
private

Definition at line 181 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor3NoCuts

TH2F* ElectronCalibration::MapCor3NoCuts
private

Definition at line 168 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor4

TH2F* ElectronCalibration::MapCor4
private

Definition at line 156 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor4ESeed

TH2F* ElectronCalibration::MapCor4ESeed
private

Definition at line 182 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor4NoCuts

TH2F* ElectronCalibration::MapCor4NoCuts
private

Definition at line 169 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor5

TH2F* ElectronCalibration::MapCor5
private

Definition at line 157 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor5ESeed

TH2F* ElectronCalibration::MapCor5ESeed
private

Definition at line 183 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor5NoCuts

TH2F* ElectronCalibration::MapCor5NoCuts
private

Definition at line 170 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor6

TH2F* ElectronCalibration::MapCor6
private

Definition at line 158 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor6ESeed

TH2F* ElectronCalibration::MapCor6ESeed
private

Definition at line 184 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor6NoCuts

TH2F* ElectronCalibration::MapCor6NoCuts
private

Definition at line 171 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor7

TH2F* ElectronCalibration::MapCor7
private

Definition at line 159 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor7ESeed

TH2F* ElectronCalibration::MapCor7ESeed
private

Definition at line 185 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor7NoCuts

TH2F* ElectronCalibration::MapCor7NoCuts
private

Definition at line 172 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor8

TH2F* ElectronCalibration::MapCor8
private

Definition at line 160 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor8ESeed

TH2F* ElectronCalibration::MapCor8ESeed
private

Definition at line 186 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor8NoCuts

TH2F* ElectronCalibration::MapCor8NoCuts
private

Definition at line 173 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor9

TH2F* ElectronCalibration::MapCor9
private

Definition at line 161 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor9ESeed

TH2F* ElectronCalibration::MapCor9ESeed
private

Definition at line 187 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCor9NoCuts

TH2F* ElectronCalibration::MapCor9NoCuts
private

Definition at line 174 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MapCorCalib

TH2F* ElectronCalibration::MapCorCalib
private

Definition at line 164 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ MapCorCalibNoCuts

TH2F* ElectronCalibration::MapCorCalibNoCuts
private

Definition at line 177 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ MapNoCuts

TH2F* ElectronCalibration::MapNoCuts
private

Definition at line 141 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ MaxCCeta

std::vector<int> ElectronCalibration::MaxCCeta
private

Definition at line 95 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

◆ MaxCCetaNoCuts

std::vector<int> ElectronCalibration::MaxCCetaNoCuts
private

Definition at line 100 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

◆ MaxCCphi

std::vector<int> ElectronCalibration::MaxCCphi
private

Definition at line 96 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

◆ MaxCCphiNoCuts

std::vector<int> ElectronCalibration::MaxCCphiNoCuts
private

Definition at line 101 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

◆ maxeta_

int ElectronCalibration::maxeta_
private

Definition at line 68 of file ElectronCalibration.h.

Referenced by analyze(), beginJob(), ElectronCalibration(), and endJob().

◆ maxphi_

int ElectronCalibration::maxphi_
private

Definition at line 70 of file ElectronCalibration.h.

Referenced by analyze(), beginJob(), ElectronCalibration(), and endJob().

◆ mineta_

int ElectronCalibration::mineta_
private

Definition at line 69 of file ElectronCalibration.h.

Referenced by analyze(), beginJob(), ElectronCalibration(), and endJob().

◆ minphi_

int ElectronCalibration::minphi_
private

Definition at line 71 of file ElectronCalibration.h.

Referenced by analyze(), beginJob(), ElectronCalibration(), and endJob().

◆ miscalibfile_

std::string ElectronCalibration::miscalibfile_
private

Definition at line 65 of file ElectronCalibration.h.

Referenced by ElectronCalibration(), and endJob().

◆ MisCalibs

TH1F* ElectronCalibration::MisCalibs
private

Definition at line 127 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ MyHH

HouseholderDecomposition* ElectronCalibration::MyHH
private

Definition at line 147 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ MyL3Algo1

MinL3Algorithm* ElectronCalibration::MyL3Algo1
private

Definition at line 102 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ newCalibs

std::vector<float> ElectronCalibration::newCalibs
private

Definition at line 105 of file ElectronCalibration.h.

Referenced by endJob().

◆ numevent_

int ElectronCalibration::numevent_
private

Definition at line 109 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ oldCalibs

std::vector<float> ElectronCalibration::oldCalibs
private

Definition at line 106 of file ElectronCalibration.h.

Referenced by beginJob().

◆ phiMax

int ElectronCalibration::phiMax
private

Definition at line 91 of file ElectronCalibration.h.

Referenced by beginJob().

◆ phiMin

int ElectronCalibration::phiMin
private

Definition at line 91 of file ElectronCalibration.h.

Referenced by beginJob().

◆ PinMinPout

TH1F* ElectronCalibration::PinMinPout
private

Definition at line 191 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ PinMinPoutNoCuts

TH1F* ElectronCalibration::PinMinPoutNoCuts
private

Definition at line 192 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ PinOverPout

TH1F* ElectronCalibration::PinOverPout
private

Definition at line 125 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ PinOverPoutNoCuts

TH1F* ElectronCalibration::PinOverPoutNoCuts
private

Definition at line 148 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ RatioCalibs

TH1F* ElectronCalibration::RatioCalibs
private

Definition at line 128 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ RatioCalibsNoCuts

TH1F* ElectronCalibration::RatioCalibsNoCuts
private

Definition at line 130 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ read_events

int ElectronCalibration::read_events
private

Definition at line 88 of file ElectronCalibration.h.

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

◆ recHitToken_

edm::EDGetTokenT<EBRecHitCollection> ElectronCalibration::recHitToken_
private

Definition at line 61 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

◆ ReducedMap

CalibrationCluster::CalibMap ElectronCalibration::ReducedMap
private

Definition at line 86 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

◆ rootfile_

std::string ElectronCalibration::rootfile_
private

Definition at line 60 of file ElectronCalibration.h.

Referenced by beginJob(), and ElectronCalibration().

◆ scE

TH1F* ElectronCalibration::scE
private

Definition at line 115 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ scENoCuts

TH1F* ElectronCalibration::scENoCuts
private

Definition at line 135 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ solution

std::vector<float> ElectronCalibration::solution
private

Definition at line 103 of file ElectronCalibration.h.

Referenced by endJob().

◆ solutionNoCuts

std::vector<float> ElectronCalibration::solutionNoCuts
private

Definition at line 104 of file ElectronCalibration.h.

Referenced by endJob().

◆ trackLabel_

edm::InputTag ElectronCalibration::trackLabel_
private

Definition at line 63 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

◆ trP

TH1F* ElectronCalibration::trP
private

Definition at line 116 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ trPNoCuts

TH1F* ElectronCalibration::trPNoCuts
private

Definition at line 136 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

◆ WeightVector

std::vector<float> ElectronCalibration::WeightVector
private

Definition at line 93 of file ElectronCalibration.h.

Referenced by analyze().

◆ WeightVectorNoCuts

std::vector<float> ElectronCalibration::WeightVectorNoCuts
private

Definition at line 98 of file ElectronCalibration.h.

Referenced by analyze().