CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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::EDAnalyzer edm::EDConsumerBase

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
 ElectronCalibration (const edm::ParameterSet &)
 
virtual void endJob ()
 
 ~ElectronCalibration ()
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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::InputTag electronLabel_
 
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::InputTag recHitLabel_
 
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::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 &)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

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

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

Definition at line 47 of file ElectronCalibration.h.

Constructor & Destructor Documentation

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

Definition at line 35 of file ElectronCalibration.cc.

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

36 {
37 
38  rootfile_ = iConfig.getParameter<std::string>("rootfile");
39  recHitLabel_ = iConfig.getParameter< edm::InputTag > ("ebRecHitsLabel");
40  electronLabel_ = iConfig.getParameter< edm::InputTag > ("electronLabel");
41  trackLabel_ = iConfig.getParameter< edm::InputTag > ("trackLabel");
42  calibAlgo_ = iConfig.getParameter<std::string>("CALIBRATION_ALGO");
43  std::cout << " The used Algorithm is " << calibAlgo_ << std::endl;
44  keventweight_ = iConfig.getParameter<int>("keventweight");
45  ClusterSize_ = iConfig.getParameter<int>("Clustersize");
46  ElePt_ = iConfig.getParameter<double>("ElePt");
47  maxeta_ = iConfig.getParameter<int>("maxeta");
48  mineta_ = iConfig.getParameter<int>("mineta");
49  maxphi_ = iConfig.getParameter<int>("maxphi");
50  minphi_ = iConfig.getParameter<int>("minphi");
51  cut1_ = iConfig.getParameter<double>("cut1");
52  cut2_ = iConfig.getParameter<double>("cut2");
53  cut3_ = iConfig.getParameter<double>("cut3");
54  elecclass_ = iConfig.getParameter<int>("elecclass");
55  std::cout << " The electronclass is " << elecclass_ <<std::endl;
56  numevent_ = iConfig.getParameter<int>("numevent");
57  miscalibfile_ = iConfig.getParameter<std::string>("miscalibfile");
58 
59  cutEPCalo1_ = iConfig.getParameter<double>("cutEPCaloMin");
60  cutEPCalo2_ = iConfig.getParameter<double>("cutEPCaloMax");
61  cutEPin1_ = iConfig.getParameter<double>("cutEPinMin");
62  cutEPin2_ = iConfig.getParameter<double>("cutEPinMax");
63  cutCalo1_ = iConfig.getParameter<double>("cutCaloMin");
64  cutCalo2_ = iConfig.getParameter<double>("cutCaloMax");
65 
66  cutESeed_ = iConfig.getParameter<double>("cutESeed");
67 }
T getParameter(std::string const &) const
edm::InputTag recHitLabel_
edm::InputTag electronLabel_
tuple cout
Definition: gather_cfg.py:145
ElectronCalibration::~ElectronCalibration ( )

Definition at line 70 of file ElectronCalibration.cc.

71 {
72 
73 
74 }

Member Function Documentation

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

Implements edm::EDAnalyzer.

Definition at line 408 of file ElectronCalibration.cc.

References calibCluster, ecal_dqm_sourceclient-live_cfg::cerr, ClusterSize_, gather_cfg::cout, cut1_, cut2_, cut3_, cutEPin1_, cutEPin2_, cutESeed_, e25, e25NoCuts, E25oP, E25oPNoCuts, e25OverScE, e25OverScENoCuts, e9, e9NoCuts, e9Overe25, e9Overe25NoCuts, elecclass_, electronLabel_, ElePt_, relval_parameters_module::energy, EnergyVector, EnergyVectorNoCuts, EoP, EoP_all, EoPNoCuts, Error1, Error1NoCuts, Error2, Error2NoCuts, Error3, Error3NoCuts, eSeedOverPout, eSeedOverPout2, eSeedOverPout2ESeed, eSeedOverPout2NoCuts, eSeedOverPoutNoCuts, eventcrystal, EventMatrix, EventMatrixNoCuts, HcalObjRepresent::Fill(), findMaxHit2(), newFWLiteAna::found, GeneralMap, CalibrationCluster::get5x5Id(), edm::Event::getByLabel(), hadOverEm, hadOverEmESeed, hadOverEmNoCuts, edm::isNotFinite(), 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_, numevent_, PinMinPout, PinMinPoutNoCuts, PinOverPout, PinOverPoutNoCuts, funct::pow(), read_events, recHitLabel_, scE, scENoCuts, mathSSE::sqrt(), trP, trPNoCuts, WeightVector, and WeightVectorNoCuts.

408  {
409 //=================================================================================
410  using namespace edm;
411 
412  // Get EBRecHits
414  iEvent.getByLabel( recHitLabel_, phits);
415  if (!phits.isValid()) {
416  std::cerr << "Error! can't get the product EBRecHitCollection: " << std::endl;
417  }
418 
419  const EBRecHitCollection* hits = phits.product(); // get a ptr to the product
420 
421  // Get pixelElectrons
423 
424  iEvent.getByLabel(electronLabel_, pElectrons);
425  if (!pElectrons.isValid()) {
426  std::cerr << "Error! can't get the product ElectronCollection: " << std::endl;
427  }
428 
429  const reco::GsfElectronCollection* electronCollection = pElectrons.product();
430  read_events++;
431  if(read_events%1000 ==0)std::cout << "read_events = " << read_events << std::endl;
432 
433  if(!hits)return;
434  if(hits->size() == 0)return;
435  if(!electronCollection)return;
436  if(electronCollection->size() == 0)return;
437 
438 
440  // START HERE....
442  reco::GsfElectronCollection::const_iterator eleIt = electronCollection->begin();
443 
444  reco::GsfElectron highPtElectron;
445 
446  float highestElePt=0.;
447  bool found=false;
448  for (eleIt=electronCollection->begin(); eleIt!=electronCollection->end(); eleIt++) {
449  //Comments
450  if(fabs(eleIt->eta())>(maxeta_+3) * 0.0175) continue;
451  if(eleIt->eta()<(mineta_-3) * 0.0175) continue;
452 
453  if(eleIt->pt()>highestElePt) {
454  highestElePt=eleIt->pt();
455  highPtElectron = *eleIt;
456  found =true;
457  }
458 
459  }
460  if(highestElePt<ElePt_)return;
461  if(!found) return;
462  const reco::SuperCluster & sc = *(highPtElectron.superCluster()) ;
463  if(fabs(sc.eta())>(maxeta_+3) * 0.0175){
464  std::cout<<"++++ Problem with electron, electron eta is "<< highPtElectron.eta()<<" while SC is "<<sc.eta()<<std::endl;return;
465  }
466 // std::cout << "track eta = " << highPtElectron.eta() << std::endl;
467 // std::cout << "track phi = " << highPtElectron.phi() << std::endl;
468 
469  std::vector<DetId> v1;
470  //Loop to fill the vector of DetIds
471 for (std::vector<std::pair<DetId,float> >::const_iterator idsIt = sc.hitsAndFractions().begin();
472  idsIt != sc.hitsAndFractions().end ();++idsIt)
473  {v1.push_back(idsIt->first);
474  }
475 
476  //getHitsByDetId(); //Change function name
477  EBDetId maxHitId;
478 
479  maxHitId = findMaxHit2(v1,hits);
480 
481  if(maxHitId.null()){std::cout<<" Null "<<std::endl; return;}
482 
483  int maxCC_Eta = maxHitId.ieta();
484  int maxCC_Phi = maxHitId.iphi();
485 
486  if(maxCC_Eta>maxeta_ )return;
487  if(maxCC_Eta<mineta_ )return;
488  if(maxCC_Phi>maxphi_ ) return;
489  if(maxCC_Phi<minphi_ ) return;
490 
491  // number of events per crystal is set
492  if(numevent_>0){
493  eventcrystal[maxCC_Eta+85][maxCC_Phi-1]+=1;
494  if (eventcrystal[maxCC_Eta+85][maxCC_Phi-1] > numevent_) return;
495  }
496 
497  std::vector<EBDetId> Xtals5x5 = calibCluster.get5x5Id(maxHitId);
498 
499  if((int)Xtals5x5.size()!=ClusterSize_*ClusterSize_)return;
500 
501  // fill cluster energy
502  std::vector<float> energy;
503  float energy3x3=0.;
504  float energy5x5=0.;
505 
506  for (int icry=0;icry<ClusterSize_*ClusterSize_;icry++){
507 
509  if(Xtals5x5[icry].subdetId()!=1) continue;
510  itrechit = hits->find(Xtals5x5[icry]);
511  if(itrechit==hits->end())
512  { std::cout << "DetId not is e25" << std::endl;
513  continue;
514  }
515 
516  if (edm::isNotFinite(itrechit->energy())) return;
517  energy.push_back(itrechit->energy());
518  energy5x5 += energy[icry];
519 
520  if ( icry == 6 || icry == 7 || icry == 8 ||
521  icry == 11 || icry == 12 || icry ==13 ||
522  icry == 16 || icry == 17 || icry ==18 )
523  {
524  energy3x3+=energy[icry];
525  }
526 
527  }
528  if((int)energy.size()!=ClusterSize_*ClusterSize_) return;
529  //Once we have the matrix 5x5, we have to correct for gaps/cracks/umbrella and maincontainement
530 
531  GeneralMap->Fill(maxCC_Eta,maxCC_Phi);
532 
533  EoP_all->Fill(highPtElectron.eSuperClusterOverP());
534 
535  if(highPtElectron.classification()==elecclass_ || elecclass_== -1 ){
536 
537  float Ptrack_in=sqrt( pow(highPtElectron.trackMomentumAtVtx().X(),2) +pow(highPtElectron.trackMomentumAtVtx().Y(),2) + pow(highPtElectron.trackMomentumAtVtx().Z(),2) );
538 
539  float UncorrectedPatCalo = sqrt(pow(highPtElectron.trackMomentumAtCalo().X(),2)+pow(highPtElectron.trackMomentumAtCalo().Y(),2)+pow(highPtElectron.trackMomentumAtCalo().Z(),2));
540 
541  float Ptrack_out = sqrt( pow(highPtElectron.trackMomentumOut().X(),2)+ pow(highPtElectron.trackMomentumOut().Y(),2)+ pow(highPtElectron.trackMomentumOut().Z(),2) );
542 
543 
544  EventMatrixNoCuts.push_back(energy);
545  EnergyVectorNoCuts.push_back(UncorrectedPatCalo);
546 
547  MaxCCetaNoCuts.push_back(maxCC_Eta);
548  MaxCCphiNoCuts.push_back(maxCC_Phi);
549 
550  WeightVectorNoCuts.push_back(energy5x5/UncorrectedPatCalo);
551 
552  //---------------------------------------------------No Cuts-------------------------------------------------------
553  e9NoCuts->Fill(energy3x3);
554  e25NoCuts->Fill(energy5x5);
555  e9Overe25NoCuts->Fill(energy3x3/energy5x5);
556  scENoCuts->Fill(sc.energy());
557 
558  trPNoCuts->Fill(UncorrectedPatCalo);
559 
560  EoPNoCuts->Fill(highPtElectron.eSuperClusterOverP());
561  e25OverScENoCuts->Fill(energy5x5/sc.energy());
562 
563  E25oPNoCuts->Fill(energy5x5/UncorrectedPatCalo);
564 
565  MapNoCuts->Fill(maxCC_Eta,maxCC_Phi);
566  PinOverPoutNoCuts->Fill( sqrt( pow(highPtElectron.trackMomentumAtVtx().X(),2) +pow(highPtElectron.trackMomentumAtVtx().Y(),2) + pow(highPtElectron.trackMomentumAtVtx().Z(),2) )/sqrt( pow(highPtElectron.trackMomentumOut().X(),2)+ pow(highPtElectron.trackMomentumOut().Y(),2)+ pow(highPtElectron.trackMomentumOut().Z(),2) ) );
567  eSeedOverPoutNoCuts->Fill(highPtElectron.eSuperClusterOverP());
568 
569  MapCor1NoCuts->Fill(energy5x5/UncorrectedPatCalo,energy5x5/Ptrack_in);
570  MapCor2NoCuts->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSuperClusterOverP());
571  MapCor3NoCuts->Fill(energy5x5/UncorrectedPatCalo,Ptrack_out/Ptrack_in);
572  MapCor4NoCuts->Fill(energy5x5/UncorrectedPatCalo,energy5x5/highPtElectron.p());
573  MapCor5NoCuts->Fill(energy5x5/UncorrectedPatCalo,UncorrectedPatCalo/Ptrack_out);
574  MapCor6NoCuts->Fill(Ptrack_out/Ptrack_in,energy5x5/Ptrack_in);
575  MapCor7NoCuts->Fill(Ptrack_out/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
576  MapCor8NoCuts->Fill(energy5x5/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
577  MapCor9NoCuts->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSeedClusterOverPout());
578  MapCor10NoCuts->Fill(highPtElectron.eSeedClusterOverPout(),Ptrack_out/Ptrack_in);
579  MapCor11NoCuts->Fill(highPtElectron.eSeedClusterOverPout(),energy5x5/Ptrack_in);
580 
581  PinMinPoutNoCuts->Fill((Ptrack_in-Ptrack_out)/Ptrack_in);
582 
583  Error1NoCuts-> Fill(highPtElectron.trackMomentumError()/Ptrack_in);
584  Error2NoCuts->Fill(highPtElectron.trackMomentumError()/Ptrack_out);
585  Error3NoCuts->Fill(highPtElectron.trackMomentumError()/UncorrectedPatCalo);
586  eSeedOverPout2NoCuts->Fill(highPtElectron.eSeedClusterOverPout());
587 
588  hadOverEmNoCuts->Fill(highPtElectron.hadronicOverEm());
589 
590  //------------------------------------------------Cuts-----------------------------------------------------
591  //Cuts!
592  if((energy3x3/energy5x5)<cut1_)return;
593 
594  if((Ptrack_out/Ptrack_in)< cut2_ || (Ptrack_out/Ptrack_in)> cut3_ )return;
595  if((energy5x5/Ptrack_in)< cutEPin1_ || (energy5x5/Ptrack_in)> cutEPin2_ )return;
596 
597  e9->Fill(energy3x3);
598  e25->Fill(energy5x5);
599  e9Overe25->Fill(energy3x3/energy5x5);
600  scE->Fill(sc.energy());
601  trP->Fill(UncorrectedPatCalo);
602 
603  EoP->Fill(highPtElectron.eSuperClusterOverP());
604  e25OverScE->Fill(energy5x5/sc.energy());
605 
606  E25oP->Fill(energy5x5/UncorrectedPatCalo);
607 
608  Map->Fill(maxCC_Eta,maxCC_Phi);
609  PinOverPout->Fill( sqrt( pow(highPtElectron.trackMomentumAtVtx().X(),2) +pow(highPtElectron.trackMomentumAtVtx().Y(),2) + pow(highPtElectron.trackMomentumAtVtx().Z(),2) )/sqrt( pow(highPtElectron.trackMomentumOut().X(),2)+ pow(highPtElectron.trackMomentumOut().Y(),2)+ pow(highPtElectron.trackMomentumOut().Z(),2) ) );
610  eSeedOverPout->Fill(highPtElectron.eSuperClusterOverP());
611 
612  MapCor1->Fill(energy5x5/UncorrectedPatCalo,energy5x5/Ptrack_in);
613  MapCor2->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSuperClusterOverP());
614  MapCor3->Fill(energy5x5/UncorrectedPatCalo,Ptrack_out/Ptrack_in);
615  MapCor4->Fill(energy5x5/UncorrectedPatCalo,energy5x5/highPtElectron.p());
616  MapCor5->Fill(energy5x5/UncorrectedPatCalo,UncorrectedPatCalo/Ptrack_out);
617  MapCor6->Fill(Ptrack_out/Ptrack_in,energy5x5/Ptrack_in);
618  MapCor7->Fill(Ptrack_out/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
619  MapCor8->Fill(energy5x5/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
620  MapCor9->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSeedClusterOverPout());
621  MapCor10->Fill(highPtElectron.eSeedClusterOverPout(),Ptrack_out/Ptrack_in);
622  MapCor11->Fill(highPtElectron.eSeedClusterOverPout(),energy5x5/Ptrack_in);
623 
624  PinMinPout->Fill((Ptrack_in-Ptrack_out)/Ptrack_in);
625 
626  Error1-> Fill(highPtElectron.trackMomentumError()/Ptrack_in);
627  Error2->Fill(highPtElectron.trackMomentumError()/Ptrack_out);
628  Error3->Fill(highPtElectron.trackMomentumError()/UncorrectedPatCalo);
629 
630  eSeedOverPout2->Fill(highPtElectron.eSeedClusterOverPout());
631  hadOverEm->Fill(highPtElectron.hadronicOverEm());
632 
633  EventMatrix.push_back(energy);
634  EnergyVector.push_back(UncorrectedPatCalo);
635  MaxCCeta.push_back(maxCC_Eta);
636  MaxCCphi.push_back(maxCC_Phi);
637 
638  WeightVector.push_back(energy5x5/UncorrectedPatCalo);
639 
640  //-------------------------------------------------------Extra Cut-----------------------------------------------------
641  if(highPtElectron.eSeedClusterOverPout()< cutESeed_ ) return;
642 
643  MapCor1ESeed->Fill(energy5x5/UncorrectedPatCalo,energy5x5/Ptrack_in);
644  MapCor2ESeed->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSuperClusterOverP());
645  MapCor3ESeed->Fill(energy5x5/UncorrectedPatCalo,Ptrack_out/Ptrack_in);
646  MapCor4ESeed->Fill(energy5x5/UncorrectedPatCalo,energy5x5/highPtElectron.p());
647  MapCor5ESeed->Fill(energy5x5/UncorrectedPatCalo,UncorrectedPatCalo/Ptrack_out);
648  MapCor6ESeed->Fill(Ptrack_out/Ptrack_in,energy5x5/Ptrack_in);
649  MapCor7ESeed->Fill(Ptrack_out/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
650  MapCor8ESeed->Fill(energy5x5/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
651  MapCor9ESeed->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSeedClusterOverPout());
652  MapCor10ESeed->Fill(highPtElectron.eSeedClusterOverPout(),Ptrack_out/Ptrack_in);
653  MapCor11ESeed->Fill(highPtElectron.eSeedClusterOverPout(),energy5x5/Ptrack_in);
654 
655  eSeedOverPout2ESeed->Fill(highPtElectron.eSeedClusterOverPout());
656 
657  hadOverEmESeed->Fill(highPtElectron.hadronicOverEm());
658 
659  }else{return;}
660 }
std::vector< float > WeightVector
edm::InputTag recHitLabel_
std::vector< EcalRecHit >::const_iterator const_iterator
std::vector< int > MaxCCphiNoCuts
std::vector< int > MaxCCetaNoCuts
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
edm::InputTag electronLabel_
std::vector< float > EnergyVector
bool isNotFinite(T x)
Definition: isFinite.h:10
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::vector< int > MaxCCphi
T sqrt(T t)
Definition: SSEVec.h:18
std::vector< float > WeightVectorNoCuts
std::vector< std::vector< float > > EventMatrixNoCuts
CalibrationCluster calibCluster
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:418
std::vector< std::vector< float > > EventMatrix
EBDetId findMaxHit2(const std::vector< DetId > &, const EBRecHitCollection *)
std::vector< float > EnergyVectorNoCuts
tuple cout
Definition: gather_cfg.py:145
std::vector< EBDetId > get5x5Id(EBDetId const &)
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
std::vector< int > MaxCCeta
void ElectronCalibration::beginJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 77 of file ElectronCalibration.cc.

References calibAlgo_, calibCluster, calibClusterSize, calibinter, calibinterNoCuts, calibs, calibsNoCuts, ClusterSize_, gather_cfg::cout, 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, 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.

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

Reimplemented from edm::EDAnalyzer.

Definition at line 233 of file ElectronCalibration.cc.

References calibAlgo_, calibinter, calibinterNoCuts, calibs, calibsNoCuts, gather_cfg::cout, DiffCalibs, DiffCalibsNoCuts, EnergyVector, EnergyVectorNoCuts, eta, EBDetId::ETAPHIMODE, EventMatrix, EventMatrixNoCuts, f, cuy::ii, 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().

233  {
234 //========================================================================
235 
236 int nIterations =10;
237 if(calibAlgo_=="L3"){
239  }else{
240  if(calibAlgo_=="HH"){
242  }else{
244  }else{
245  std::cout<<" Calibration not run due to problem in Algo Choice..."<<std::endl;return;
246  }
247  }
248  }
249  for (int ii=0;ii<(int)solution.size();ii++)
250  {
251  std::cout << "solution[" << ii << "] = " << solution[ii] << std::endl;
252  calibs->Fill(solution[ii]);
253  }
254 
255  newCalibs.resize(ReducedMap.size(),0.);
256 
257  calibXMLwriter write_calibrations;
258 
259  FILE* MisCalib;
260  MisCalib = fopen(miscalibfile_.c_str(),"r");
261  int fileStatus=1;
262  int eta=-1;
263  int phi=-1;
264  float coeff=-1;
265 
266  std::map<EBDetId,float> OldCoeff;
267 
268  while(fileStatus != EOF) {
269  fileStatus = fscanf(MisCalib,"%d %d %f\n", &eta,&phi,&coeff);
270  if(eta!=-1&&phi!=-1&& coeff!=-1){
271  // std::cout<<" We have read correctly the coefficient " << coeff << " corresponding to eta "<<eta<<" and phi "<<phi<<std::endl;
272  OldCoeff.insert(std::make_pair(EBDetId(eta,phi,EBDetId::ETAPHIMODE),coeff ));
273  }
274  }
275 
276  fclose(MisCalib);
277 
278  int icry=0;
279  CalibrationCluster::CalibMap::iterator itmap;
280  for (itmap=ReducedMap.begin(); itmap != ReducedMap.end();itmap++){
281 
282  newCalibs[icry] = solution[icry];
283 
284  write_calibrations.writeLine(itmap->first,newCalibs[icry]);
285  float Compare =1.;
286  std::map<EBDetId,float>::iterator iter = OldCoeff.find(itmap->first);
287  if( iter != OldCoeff.end() )Compare = iter->second;
288 
289  if((itmap->first).ieta()>mineta_ && (itmap->first).ieta()<maxeta_ && (itmap->first).iphi()>minphi_ && (itmap->first).iphi()<maxphi_){
290  Map3Dcalib->Fill((itmap->first).ieta(),(itmap->first).iphi(),newCalibs[icry]*Compare ) ;
291  MisCalibs->Fill(Compare);
292 
293 }
294  if((itmap->first).ieta()< mineta_+2){icry++; continue;}
295  if((itmap->first).ieta()> maxeta_-2){icry++; continue;}
296  if((itmap->first).iphi()< minphi_+2){icry++; continue;}
297  if((itmap->first).iphi()> maxphi_-2){icry++; continue;}
298 
299  calibinter->Fill(newCalibs[icry]);
300  DiffCalibs->Fill(newCalibs[icry]-1./Compare);
301  RatioCalibs->Fill(newCalibs[icry]*Compare);
302  MapCorCalib->Fill(1./Compare, newCalibs[icry]);
303  icry++;
304  }
305 
306  if(calibAlgo_=="L3"){
308  }else{
309  if(calibAlgo_=="HH"){
311  }else{
312  if(calibAlgo_=="HHReg"){
314  }else{
315  std::cout<<" Calibration not run due to problem in AlgoChoice..."<<std::endl;return;
316  }
317  }
318  }
319  for (int ii=0;ii<(int)solutionNoCuts.size();ii++){
320  calibsNoCuts->Fill(solutionNoCuts[ii]);
321  }
322  int icryp=0;
323  CalibrationCluster::CalibMap::iterator itmapp;
324  for (itmapp=ReducedMap.begin(); itmapp != ReducedMap.end();itmapp++){
325 
326  newCalibs[icryp] = solutionNoCuts[icryp];
327  float Compare2 =1.;
328  std::map<EBDetId,float>::iterator iter2 = OldCoeff.find(itmapp->first);
329  if( iter2 != OldCoeff.end() )Compare2 = iter2->second;
330 
331  if((itmapp->first).ieta()>mineta_ && (itmapp->first).ieta()<maxeta_ && (itmapp->first).iphi()>minphi_ && (itmapp->first).iphi()<maxphi_)Map3DcalibNoCuts->Fill((itmapp->first).ieta(),(itmapp->first).iphi(),newCalibs[icryp]*Compare2) ;
332  if ((itmapp->first).ieta()< mineta_+2){icryp++; continue;}
333  if ((itmapp->first).ieta()> maxeta_-2){icryp++; continue;}
334  if ((itmapp->first).iphi()< minphi_+2){icryp++; continue;}
335  if ((itmapp->first).iphi()> maxphi_-2){icryp++; continue;}
336  calibinterNoCuts->Fill(newCalibs[icryp]);
337  DiffCalibsNoCuts->Fill(newCalibs[icryp]-1./(Compare2));
338  RatioCalibsNoCuts->Fill(newCalibs[icryp]*Compare2);
339  MapCorCalibNoCuts->Fill(1./Compare2 ,newCalibs[icryp]);
340  icryp++;
341  }
342 
343 
344 
346 
347  std::cout << " " << std::endl;
348  std::cout << "************* STATISTICS **************" << std::endl;
349  std::cout << " Events Studied "<<read_events<< std::endl;
350 
352 
353  f->Write();
354 
355  f->Close();
356 }
CalibrationCluster::CalibMap ReducedMap
HouseholderDecomposition * MyHH
std::vector< float > solutionNoCuts
MinL3Algorithm * MyL3Algo1
std::vector< int > MaxCCphiNoCuts
std::vector< int > MaxCCetaNoCuts
int ii
Definition: cuy.py:588
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:166
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
tuple cout
Definition: gather_cfg.py:145
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
EBDetId ElectronCalibration::findMaxHit ( edm::Handle< EBRecHitCollection > &  phits)
private

Definition at line 360 of file ElectronCalibration.cc.

References edm::SortedCollection< T, SORT >::begin(), KineDebug3::count(), edm::SortedCollection< T, SORT >::end(), AlCaHLTBitMon_ParallelJobs::p, and cuy::save.

360  {
361 //=================================================================================
362 
363  EcalRecHitCollection ecrh = *phits;
365  int count=0;
366  EBDetId save;
367  float en_save=0;
368  for (it = ecrh.begin(); it != ecrh.end(); it++)
369  {
370  EBDetId p = EBDetId(it->id().rawId());
371  if(it->energy()> en_save){
372  en_save=it->energy();
373  save=p;
374  }
375  count++;
376  }
377  return save;
378 
379 }
std::vector< EcalRecHit >::iterator iterator
const_iterator end() const
list save
Definition: cuy.py:1163
const_iterator begin() const
EBDetId ElectronCalibration::findMaxHit2 ( const std::vector< DetId > &  v1,
const EBRecHitCollection hits 
)
private

Definition at line 382 of file ElectronCalibration.cc.

References gather_cfg::cout, edm::SortedCollection< T, SORT >::end(), and edm::SortedCollection< T, SORT >::find().

Referenced by analyze().

382  {
383 //=================================================================================
384 
385  double currEnergy = 0.;
386  EBDetId maxHit;
387 
388  for( std::vector<DetId>::const_iterator idsIt = v1.begin(); idsIt != v1.end(); ++idsIt) {
389  if(idsIt->subdetId()!=1) continue;
391  itrechit = hits->find(*idsIt);
392 
393  if(itrechit == hits->end()){
394  std::cout << "ElectronCalibration::findMaxHit2: rechit not found! " << std::endl;
395  continue;
396  }
397  if(itrechit->energy() > currEnergy) {
398  currEnergy=itrechit->energy();
399  maxHit= *idsIt;
400  }
401  }
402 
403  return maxHit;
404 }
std::vector< EcalRecHit >::const_iterator const_iterator
const_iterator end() const
iterator find(key_type k)
tuple cout
Definition: gather_cfg.py:145

Member Data Documentation

std::string ElectronCalibration::calibAlgo_
private

Definition at line 65 of file ElectronCalibration.h.

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

CalibrationCluster ElectronCalibration::calibCluster
private

Definition at line 86 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

int ElectronCalibration::calibClusterSize
private

Definition at line 91 of file ElectronCalibration.h.

Referenced by beginJob().

TH1F* ElectronCalibration::calibinter
private

Definition at line 146 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH1F* ElectronCalibration::calibinterNoCuts
private

Definition at line 147 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH1F* ElectronCalibration::calibs
private

Definition at line 120 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH1F* ElectronCalibration::calibsNoCuts
private

Definition at line 139 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

int ElectronCalibration::ClusterSize_
private

Definition at line 84 of file ElectronCalibration.h.

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

double ElectronCalibration::cut1_
private

Definition at line 73 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

double ElectronCalibration::cut2_
private

Definition at line 74 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

double ElectronCalibration::cut3_
private

Definition at line 75 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

double ElectronCalibration::cutCalo1_
private

Definition at line 81 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

double ElectronCalibration::cutCalo2_
private

Definition at line 82 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

double ElectronCalibration::cutEPCalo1_
private

Definition at line 77 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

double ElectronCalibration::cutEPCalo2_
private

Definition at line 78 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

double ElectronCalibration::cutEPin1_
private

Definition at line 79 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

double ElectronCalibration::cutEPin2_
private

Definition at line 80 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

double ElectronCalibration::cutESeed_
private

Definition at line 83 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

TH1F* ElectronCalibration::DiffCalibs
private

Definition at line 130 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH1F* ElectronCalibration::DiffCalibsNoCuts
private

Definition at line 132 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH1F* ElectronCalibration::e25
private

Definition at line 114 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::e25NoCuts
private

Definition at line 134 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::E25oP
private

Definition at line 124 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::E25oPNoCuts
private

Definition at line 143 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::e25OverScE
private

Definition at line 122 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::e25OverScENoCuts
private

Definition at line 141 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::e9
private

Definition at line 115 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::e9NoCuts
private

Definition at line 135 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::e9Overe25
private

Definition at line 121 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::e9Overe25NoCuts
private

Definition at line 140 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

int ElectronCalibration::elecclass_
private

Definition at line 76 of file ElectronCalibration.h.

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

edm::InputTag ElectronCalibration::electronLabel_
private

Definition at line 63 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

double ElectronCalibration::ElePt_
private

Definition at line 68 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

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

Definition at line 93 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

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

Definition at line 98 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

TH1F* ElectronCalibration::EoP
private

Definition at line 118 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::EoP_all
private

Definition at line 119 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::EoPNoCuts
private

Definition at line 138 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::Error1
private

Definition at line 196 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::Error1NoCuts
private

Definition at line 199 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::Error2
private

Definition at line 197 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::Error2NoCuts
private

Definition at line 200 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::Error3
private

Definition at line 198 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::Error3NoCuts
private

Definition at line 201 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::eSeedOverPout
private

Definition at line 127 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::eSeedOverPout2
private

Definition at line 203 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::eSeedOverPout2ESeed
private

Definition at line 205 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::eSeedOverPout2NoCuts
private

Definition at line 204 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::eSeedOverPoutNoCuts
private

Definition at line 150 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

int ElectronCalibration::etaMax
private

Definition at line 92 of file ElectronCalibration.h.

Referenced by beginJob().

int ElectronCalibration::etaMin
private

Definition at line 92 of file ElectronCalibration.h.

Referenced by beginJob().

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

Definition at line 109 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

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

Definition at line 95 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

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

Definition at line 100 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

TFile* ElectronCalibration::f
private
TH2F* ElectronCalibration::GeneralMap
private

Definition at line 152 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::hadOverEm
private

Definition at line 207 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::hadOverEmESeed
private

Definition at line 209 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::hadOverEmNoCuts
private

Definition at line 208 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

int ElectronCalibration::keventweight
private

Definition at line 91 of file ElectronCalibration.h.

int ElectronCalibration::keventweight_
private

Definition at line 67 of file ElectronCalibration.h.

Referenced by beginJob(), and ElectronCalibration().

TH2F* ElectronCalibration::Map
private

Definition at line 123 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::Map3Dcalib
private

Definition at line 144 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH2F* ElectronCalibration::Map3DcalibNoCuts
private

Definition at line 145 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH2F* ElectronCalibration::MapCor1
private

Definition at line 154 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor10
private

Definition at line 163 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor10ESeed
private

Definition at line 189 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor10NoCuts
private

Definition at line 176 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor11
private

Definition at line 164 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor11ESeed
private

Definition at line 190 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor11NoCuts
private

Definition at line 177 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor1ESeed
private

Definition at line 180 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor1NoCuts
private

Definition at line 167 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor2
private

Definition at line 155 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor2ESeed
private

Definition at line 181 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor2NoCuts
private

Definition at line 168 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor3
private

Definition at line 156 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor3ESeed
private

Definition at line 182 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor3NoCuts
private

Definition at line 169 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor4
private

Definition at line 157 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor4ESeed
private

Definition at line 183 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor4NoCuts
private

Definition at line 170 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor5
private

Definition at line 158 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor5ESeed
private

Definition at line 184 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor5NoCuts
private

Definition at line 171 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor6
private

Definition at line 159 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor6ESeed
private

Definition at line 185 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor6NoCuts
private

Definition at line 172 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor7
private

Definition at line 160 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor7ESeed
private

Definition at line 186 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor7NoCuts
private

Definition at line 173 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor8
private

Definition at line 161 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor8ESeed
private

Definition at line 187 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor8NoCuts
private

Definition at line 174 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor9
private

Definition at line 162 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor9ESeed
private

Definition at line 188 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCor9NoCuts
private

Definition at line 175 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH2F* ElectronCalibration::MapCorCalib
private

Definition at line 165 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH2F* ElectronCalibration::MapCorCalibNoCuts
private

Definition at line 178 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH2F* ElectronCalibration::MapNoCuts
private

Definition at line 142 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

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

Definition at line 96 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

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

Definition at line 101 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

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

Definition at line 97 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

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

Definition at line 102 of file ElectronCalibration.h.

Referenced by analyze(), and endJob().

int ElectronCalibration::maxeta_
private

Definition at line 69 of file ElectronCalibration.h.

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

int ElectronCalibration::maxphi_
private

Definition at line 71 of file ElectronCalibration.h.

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

int ElectronCalibration::mineta_
private

Definition at line 70 of file ElectronCalibration.h.

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

int ElectronCalibration::minphi_
private

Definition at line 72 of file ElectronCalibration.h.

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

std::string ElectronCalibration::miscalibfile_
private

Definition at line 66 of file ElectronCalibration.h.

Referenced by ElectronCalibration(), and endJob().

TH1F* ElectronCalibration::MisCalibs
private

Definition at line 128 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

HouseholderDecomposition* ElectronCalibration::MyHH
private

Definition at line 148 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

MinL3Algorithm* ElectronCalibration::MyL3Algo1
private

Definition at line 103 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

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

Definition at line 106 of file ElectronCalibration.h.

Referenced by endJob().

int ElectronCalibration::numevent_
private

Definition at line 110 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

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

Definition at line 107 of file ElectronCalibration.h.

Referenced by beginJob().

int ElectronCalibration::phiMax
private

Definition at line 92 of file ElectronCalibration.h.

Referenced by beginJob().

int ElectronCalibration::phiMin
private

Definition at line 92 of file ElectronCalibration.h.

Referenced by beginJob().

TH1F* ElectronCalibration::PinMinPout
private

Definition at line 193 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::PinMinPoutNoCuts
private

Definition at line 194 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::PinOverPout
private

Definition at line 126 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::PinOverPoutNoCuts
private

Definition at line 149 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::RatioCalibs
private

Definition at line 129 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

TH1F* ElectronCalibration::RatioCalibsNoCuts
private

Definition at line 131 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

int ElectronCalibration::read_events
private

Definition at line 89 of file ElectronCalibration.h.

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

edm::InputTag ElectronCalibration::recHitLabel_
private

Definition at line 62 of file ElectronCalibration.h.

Referenced by analyze(), and ElectronCalibration().

CalibrationCluster::CalibMap ElectronCalibration::ReducedMap
private

Definition at line 87 of file ElectronCalibration.h.

Referenced by beginJob(), and endJob().

std::string ElectronCalibration::rootfile_
private

Definition at line 61 of file ElectronCalibration.h.

Referenced by beginJob(), and ElectronCalibration().

TH1F* ElectronCalibration::scE
private

Definition at line 116 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::scENoCuts
private

Definition at line 136 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

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

Definition at line 104 of file ElectronCalibration.h.

Referenced by endJob().

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

Definition at line 105 of file ElectronCalibration.h.

Referenced by endJob().

edm::InputTag ElectronCalibration::trackLabel_
private

Definition at line 64 of file ElectronCalibration.h.

Referenced by ElectronCalibration().

TH1F* ElectronCalibration::trP
private

Definition at line 117 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

TH1F* ElectronCalibration::trPNoCuts
private

Definition at line 137 of file ElectronCalibration.h.

Referenced by analyze(), and beginJob().

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

Definition at line 94 of file ElectronCalibration.h.

Referenced by analyze().

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

Definition at line 99 of file ElectronCalibration.h.

Referenced by analyze().