42 std::cout <<
" The used Algorithm is " << calibAlgo_ << std::endl;
54 std::cout <<
" The electronclass is " << elecclass_ <<std::endl;
81 e9 =
new TH1F(
"e9",
"E9 energy", 300, 0., 150.);
82 e25 =
new TH1F(
"e25",
"E25 energy", 300, 0., 150.);
83 scE =
new TH1F(
"scE",
"SC energy", 300, 0., 150.);
84 trP =
new TH1F(
"trP",
"Trk momentum", 300, 0., 150.);
85 EoP =
new TH1F(
"EoP",
"EoP", 600, 0., 3.);
86 EoP_all =
new TH1F(
"EoP_all",
"EoP_all",600, 0., 3.);
89 calibs =
new TH1F(
"calib",
"Calibration constants", 4000, 0.5, 2.);
91 calibs =
new TH1F(
"calib",
"Calibration constants", 800, 0.5, 2.);
94 e25OverScE =
new TH1F(
"e25OverscE",
"E25 / SC energy", 400, 0., 2.);
95 E25oP =
new TH1F(
"E25oP",
"E25 / P", 1200, 0., 1.5);
97 Map =
new TH2F(
"Map",
"Nb Events in Crystal",85,1, 85,70 ,5, 75);
98 e9Overe25 =
new TH1F(
"e9Overe25",
"E9 / E25", 400, 0., 2.);
99 Map3Dcalib =
new TH2F(
"3Dcalib",
"3Dcalib",85 ,1 ,85,70, 5, 75 );
101 MapCor1 =
new TH2F (
"MapCor1",
"Correlation E25/Pcalo versus E25/Pin",100 ,0. ,5. ,100,0.,5. );
102 MapCor2 =
new TH2F (
"MapCor2",
"Correlation E25/Pcalo versus E/P",100 ,0. ,5. ,100,0.,5. );
103 MapCor3 =
new TH2F (
"MapCor3",
"Correlation E25/Pcalo versus Pout/Pin",100 ,0. ,5. ,100,0.,5. );
104 MapCor4 =
new TH2F (
"MapCor4",
"Correlation E25/Pcalo versus E25/highestP",100 ,0. ,5. ,100,0.,5. );
105 MapCor5 =
new TH2F (
"MapCor5",
"Correlation E25/Pcalo versus Pcalo/Pout",100 ,0. ,5. ,100,0.,5. );
106 MapCor6 =
new TH2F (
"MapCor6",
"Correlation Pout/Pin versus E25/Pin",100 ,0. ,5. ,100,0.,5. );
107 MapCor7 =
new TH2F (
"MapCor7",
"Correlation Pout/Pin versus Pcalo/Pout",100 ,0. ,5. ,100,0.,5. );
108 MapCor8 =
new TH2F (
"MapCor8",
"Correlation E25/Pin versus Pcalo/Pout",100 ,0. ,5. ,100,0.,5. );
109 MapCor9 =
new TH2F (
"MapCor9",
"Correlation E25/Pcalo versus Eseed/Pout",100 ,0. ,5. ,100,0.,5. );
110 MapCor10 =
new TH2F (
"MapCor10",
"Correlation Eseed/Pout versus Pout/Pin",100 ,0. ,5. ,100,0.,5. );
111 MapCor11 =
new TH2F (
"MapCor11",
"Correlation Eseed/Pout versus E25/Pin",100 ,0. ,5. ,100,0.,5. );
112 MapCorCalib =
new TH2F (
"MapCorCalib",
"Correlation Miscalibration versus Calibration constants", 100, 0.5,1.5, 100, 0.5, 1.5);
114 PinMinPout =
new TH1F(
"PinMinPout",
"(Pin - Pout)/Pin",600,-2.0,2.0);
117 calibinter =
new TH1F(
"calibinter",
"internal calibration constants", 2000 , 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",4000,0.5,2.);
121 RatioCalibs =
new TH1F(
"RatioCalibs",
"Ratio in Calibration Constants", 4000, 0.5, 2.0);
122 DiffCalibs =
new TH1F(
"DiffCalibs",
"Difference in Calibration constants", 4000, -1.0,1.0);
124 calibinter =
new TH1F(
"calibinter",
"internal calibration constants",400 , 0.5,2.);
125 PinOverPout=
new TH1F(
"PinOverPout",
"pinOverpout", 600,0., 3.);
126 eSeedOverPout=
new TH1F(
"eSeedOverPout",
"eSeedOverpout ", 600, 0., 3.);
127 MisCalibs =
new TH1F(
"MisCalibs",
"Miscalibration constants",800,0.5,2.);
128 RatioCalibs =
new TH1F(
"RatioCalibs",
"Ratio in Calibration Constants", 800, 0.5, 2.0);
129 DiffCalibs =
new TH1F(
"DiffCalibs",
"Difference in Calibration constants", 800, -1.0,1.0);
131 Error1 =
new TH1F (
"Error1",
"DeltaP/Pin",800 ,-1.0,1.0 );
132 Error2 =
new TH1F (
"Error2",
"DeltaP/Pout",800 ,-1.0,1.0 );
133 Error3 =
new TH1F (
"Error3",
"DeltaP/Pcalo",800 ,-1.0,1.0 );
134 eSeedOverPout2=
new TH1F(
"eSeedOverPout2",
"eSeedOverpout (No Supercluster)", 600, 0., 4.);
135 hadOverEm=
new TH1F(
"hadOverEm",
"Had/EM distribution", 600, -2., 2.);
138 Map3DcalibNoCuts =
new TH2F(
"3DcalibNoCuts",
"3Dcalib (Before Cuts)",85 ,1 ,85,70, 5, 75 );
139 e9NoCuts =
new TH1F(
"e9NoCuts",
"E9 energy (Before Cuts)",300, 0., 150.);
140 e25NoCuts =
new TH1F(
"e25NoCuts",
"E25 energy (Before Cuts)", 300, 0., 150.);
141 scENoCuts =
new TH1F(
"scENoCuts",
"SC energy (Before Cuts)", 300, 0., 150.);
142 trPNoCuts =
new TH1F(
"trPNoCuts",
"Trk momentum (Before Cuts)", 300, 0., 150.);
143 EoPNoCuts =
new TH1F(
"EoPNoCuts",
"EoP (Before Cuts)", 600, 0., 3.);
145 calibsNoCuts =
new TH1F(
"calibNoCuts",
"Calibration constants (Before Cuts)", 4000, 0., 2.);
147 calibsNoCuts =
new TH1F(
"calibNoCuts",
"Calibration constants (Before Cuts)", 800, 0., 2.);
149 e25OverScENoCuts =
new TH1F(
"e25OverscENoCuts",
"E25 / SC energy (Before Cuts)", 400, 0., 2.);
150 E25oPNoCuts =
new TH1F(
"E25oPNoCuts",
"E25 / P (Before Cuts)", 1200, 0., 1.5);
151 MapNoCuts =
new TH2F(
"MapNoCuts",
"Nb Events in Crystal (Before Cuts)",85,1, 85,70 ,5, 75);
152 e9Overe25NoCuts =
new TH1F(
"e9Overe25NoCuts",
"E9 / E25 (Before Cuts)", 400, 0., 2.);
153 PinOverPoutNoCuts =
new TH1F(
"PinOverPoutNoCuts",
"pinOverpout (Before Cuts)", 600,0., 3.);
154 eSeedOverPoutNoCuts =
new TH1F(
" eSeedOverPoutNoCuts",
"eSeedOverpout (Before Cuts) ", 600, 0., 4.);
155 PinMinPoutNoCuts =
new TH1F(
"PinMinPoutNoCuts",
"(Pin - Pout)/Pin (Before Cuts)",600,-2.0,2.0);
157 RatioCalibsNoCuts =
new TH1F(
"RatioCalibsNoCuts",
"Ratio in Calibration Constants (Before Cuts)", 4000, 0.5, 2.0);
158 DiffCalibsNoCuts =
new TH1F(
"DiffCalibsNoCuts",
"Difference in Calibration constants (Before Cuts)", 4000, -1.0,1.0);
159 calibinterNoCuts =
new TH1F(
"calibinterNoCuts",
"internal calibration constants", 2000 , 0.5,2.);
161 MapCor1NoCuts =
new TH2F (
"MapCor1NoCuts",
"Correlation E25/PatCalo versus E25/Pin (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
162 MapCor2NoCuts =
new TH2F (
"MapCor2NoCuts",
"Correlation E25/PatCalo versus E/P (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
163 MapCor3NoCuts =
new TH2F (
"MapCor3NoCuts",
"Correlation E25/PatCalo versus Pout/Pin (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
164 MapCor4NoCuts =
new TH2F (
"MapCor4NoCuts",
"Correlation E25/PatCalo versus E25/highestP (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
165 MapCor5NoCuts =
new TH2F (
"MapCor5NoCuts",
"Correlation E25/Pcalo versus Pcalo/Pout (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
166 MapCor6NoCuts =
new TH2F (
"MapCor6NoCuts",
"Correlation Pout/Pin versus E25/Pin (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
167 MapCor7NoCuts =
new TH2F (
"MapCor7NoCuts",
"Correlation Pout/Pin versus Pcalo/Pout (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
168 MapCor8NoCuts =
new TH2F (
"MapCor8NoCuts",
"Correlation E25/Pin versus Pcalo/Pout (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
169 MapCor9NoCuts =
new TH2F (
"MapCor9NoCuts",
"Correlation E25/Pcalo versus Eseed/Pout (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
170 MapCor10NoCuts =
new TH2F (
"MapCor10NoCuts",
"Correlation Eseed/Pout versus Pout/Pin (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
171 MapCor11NoCuts =
new TH2F (
"MapCor11NoCuts",
"Correlation Eseed/Pout versus E25/Pin (Before Cuts)",100 ,0. ,5. ,100,0.,5. );
172 MapCorCalibNoCuts =
new TH2F (
"MapCorCalibNoCuts",
"Correlation Miscalibration versus Calibration constants (Before Cuts)", 100, 0., 3., 100, 0., 3.);
174 Error1NoCuts =
new TH1F (
"Eror1NoCuts",
"DeltaP/Pin (Before Cuts)",800 ,-1.0,1.0 );
175 Error2NoCuts =
new TH1F (
"Error2NoCuts",
"DeltaP/Pout (Before Cuts)",800 ,-1.0,1.0 );
176 Error3NoCuts =
new TH1F (
"Error3NoCuts",
"DeltaP/Pcalo (Before Cuts)",800 ,-1.0, 1.0);
177 eSeedOverPout2NoCuts=
new TH1F(
"eSeedOverPout2NoCuts",
"eSeedOverpout (No Supercluster, Before Cuts)", 600, 0., 4.);
178 hadOverEmNoCuts=
new TH1F(
"hadOverEmNoCuts",
"Had/EM distribution (Before Cuts)", 600, -2., 2.);
181 MapCor1ESeed =
new TH2F (
"MapCor1ESeed",
"Correlation E25/Pcalo versus E25/Pin (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
182 MapCor2ESeed =
new TH2F (
"MapCor2ESeed",
"Correlation E25/Pcalo versus E/P (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
183 MapCor3ESeed =
new TH2F (
"MapCor3ESeed",
"Correlation E25/Pcalo versus Pout/Pin (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
184 MapCor4ESeed =
new TH2F (
"MapCor4ESeed",
"Correlation E25/Pcalo versus E25/highestP (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
185 MapCor5ESeed =
new TH2F (
"MapCor5ESeed",
"Correlation E25/Pcalo versus Pcalo/Pout (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
186 MapCor6ESeed =
new TH2F (
"MapCor6ESeed",
"Correlation Pout/Pin versus E25/Pin (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
187 MapCor7ESeed =
new TH2F (
"MapCor7ESeed",
"Correlation Pout/Pin versus Pcalo/Pout (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
188 MapCor8ESeed =
new TH2F (
"MapCor8ESeed",
"Correlation E25/Pin versus Pcalo/Pout (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
189 MapCor9ESeed =
new TH2F (
"MapCor9ESeed",
"Correlation E25/Pcalo versus Eseed/Pout (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
190 MapCor10ESeed =
new TH2F (
"MapCor10ESeed",
"Correlation Eseed/Pout versus Pout/Pin (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
191 MapCor11ESeed =
new TH2F (
"MapCor11ESeed",
"Correlation Eseed/Pout versus E25/Pin (after Eseed/Pout cut)",100 ,0. ,5. ,100,0.,5. );
193 eSeedOverPout2ESeed=
new TH1F(
"eSeedOverPout2ESeed",
"eSeedOverpout (No Supercluster, after Eseed/Pout cut)", 600, 0., 4.);
195 hadOverEmESeed=
new TH1F(
"hadOverEmESeed",
"Had/EM distribution (after Eseed/Pout cut)", 600, -2., 2.);
198 GeneralMap =
new TH2F(
"GeneralMap",
"Map without any cuts",85,1,85,70,5,75);
211 std::cout<<
" Name of Algorithm is not recognize "<<
calibAlgo_<<
" Should be either L3, HH or HHReg. Abort! "<<std::endl;
244 std::cout<<
" Calibration not run due to problem in Algo Choice..."<<std::endl;
return;
248 for (
int ii=0;ii<(int)
solution.size();ii++)
265 std::map<EBDetId,float> OldCoeff;
267 while(fileStatus != EOF) {
268 fileStatus = fscanf(MisCalib,
"%d %d %f\n", &eta,&phi,&coeff);
269 if(eta!=-1&&phi!=-1&& coeff!=-1){
278 CalibrationCluster::CalibMap::iterator itmap;
285 std::map<EBDetId,float>::iterator iter = OldCoeff.find(itmap->first);
286 if( iter != OldCoeff.end() )Compare = iter->second;
293 if((itmap->first).ieta()<
mineta_+2){icry++;
continue;}
294 if((itmap->first).ieta()>
maxeta_-2){icry++;
continue;}
295 if((itmap->first).iphi()<
minphi_+2){icry++;
continue;}
296 if((itmap->first).iphi()>
maxphi_-2){icry++;
continue;}
314 std::cout<<
" Calibration not run due to problem in AlgoChoice..."<<std::endl;
return;
322 CalibrationCluster::CalibMap::iterator itmapp;
327 std::map<EBDetId,float>::iterator iter2 = OldCoeff.find(itmapp->first);
328 if( iter2 != OldCoeff.end() )Compare2 = iter2->second;
331 if ((itmapp->first).ieta()<
mineta_+2){icryp++;
continue;}
332 if ((itmapp->first).ieta()>
maxeta_-2){icryp++;
continue;}
333 if ((itmapp->first).iphi()<
minphi_+2){icryp++;
continue;}
334 if ((itmapp->first).iphi()>
maxphi_-2){icryp++;
continue;}
347 std::cout <<
"************* STATISTICS **************" << std::endl;
367 for (it = ecrh.
begin(); it != ecrh.
end(); it++)
370 if(it->energy()> en_save){
371 en_save=it->energy();
384 double currEnergy = 0.;
387 for( std::vector<DetId>::const_iterator idsIt = v1.begin(); idsIt != v1.end(); ++idsIt) {
388 if(idsIt->subdetId()!=1)
continue;
390 itrechit = hits->
find(*idsIt);
392 if(itrechit == hits->
end()){
393 std::cout <<
"ElectronCalibration::findMaxHit2: rechit not found! " << std::endl;
396 if(itrechit->energy() > currEnergy) {
397 currEnergy=itrechit->energy();
414 if (!phits.isValid()) {
415 std::cerr <<
"Error! can't get the product EBRecHitCollection: " << std::endl;
424 if (!pElectrons.isValid()) {
425 std::cerr <<
"Error! can't get the product ElectronCollection: " << std::endl;
433 if(hits->size() == 0)
return;
434 if(!electronCollection)
return;
435 if(electronCollection->size() == 0)
return;
441 reco::GsfElectronCollection::const_iterator eleIt = electronCollection->begin();
445 float highestElePt=0.;
447 for (eleIt=electronCollection->begin(); eleIt!=electronCollection->end(); eleIt++) {
449 if(fabs(eleIt->eta())>(
maxeta_+3) * 0.0175)
continue;
450 if(eleIt->eta()<(
mineta_-3) * 0.0175)
continue;
452 if(eleIt->pt()>highestElePt) {
453 highestElePt=eleIt->pt();
454 highPtElectron = *eleIt;
459 if(highestElePt<
ElePt_)
return;
462 if(fabs(sc.eta())>(
maxeta_+3) * 0.0175){
463 std::cout<<
"++++ Problem with electron, electron eta is "<< highPtElectron.eta()<<
" while SC is "<<sc.eta()<<std::endl;
return;
468 std::vector<DetId> v1;
470 for (std::vector<std::pair<DetId,float> >::const_iterator idsIt = sc.hitsAndFractions().begin();
471 idsIt != sc.hitsAndFractions().end ();++idsIt)
472 {v1.push_back(idsIt->first);
480 if(maxHitId.null()){
std::cout<<
" Null "<<std::endl;
return;}
482 int maxCC_Eta = maxHitId.ieta();
483 int maxCC_Phi = maxHitId.iphi();
501 std::vector<float>
energy;
508 if(Xtals5x5[icry].subdetId()!=1)
continue;
509 itrechit = hits->find(Xtals5x5[icry]);
510 if(itrechit==hits->end())
511 {
std::cout <<
"DetId not is e25" << std::endl;
516 energy.push_back(itrechit->energy());
517 energy5x5 +=
energy[icry];
519 if ( icry == 6 || icry == 7 || icry == 8 ||
520 icry == 11 || icry == 12 || icry ==13 ||
521 icry == 16 || icry == 17 || icry ==18 )
532 EoP_all->Fill(highPtElectron.eSuperClusterOverP());
536 float Ptrack_in=
sqrt(
pow(highPtElectron.trackMomentumAtVtx().X(),2) +
pow(highPtElectron.trackMomentumAtVtx().Y(),2) +
pow(highPtElectron.trackMomentumAtVtx().Z(),2) );
538 float UncorrectedPatCalo =
sqrt(
pow(highPtElectron.trackMomentumAtCalo().X(),2)+
pow(highPtElectron.trackMomentumAtCalo().Y(),2)+
pow(highPtElectron.trackMomentumAtCalo().Z(),2));
540 float Ptrack_out =
sqrt(
pow(highPtElectron.trackMomentumOut().X(),2)+
pow(highPtElectron.trackMomentumOut().Y(),2)+
pow(highPtElectron.trackMomentumOut().Z(),2) );
559 EoPNoCuts->Fill(highPtElectron.eSuperClusterOverP());
565 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) ) );
568 MapCor1NoCuts->Fill(energy5x5/UncorrectedPatCalo,energy5x5/Ptrack_in);
569 MapCor2NoCuts->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSuperClusterOverP());
570 MapCor3NoCuts->Fill(energy5x5/UncorrectedPatCalo,Ptrack_out/Ptrack_in);
571 MapCor4NoCuts->Fill(energy5x5/UncorrectedPatCalo,energy5x5/highPtElectron.p());
572 MapCor5NoCuts->Fill(energy5x5/UncorrectedPatCalo,UncorrectedPatCalo/Ptrack_out);
573 MapCor6NoCuts->Fill(Ptrack_out/Ptrack_in,energy5x5/Ptrack_in);
574 MapCor7NoCuts->Fill(Ptrack_out/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
575 MapCor8NoCuts->Fill(energy5x5/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
576 MapCor9NoCuts->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSeedClusterOverPout());
577 MapCor10NoCuts->Fill(highPtElectron.eSeedClusterOverPout(),Ptrack_out/Ptrack_in);
578 MapCor11NoCuts->Fill(highPtElectron.eSeedClusterOverPout(),energy5x5/Ptrack_in);
583 Error2NoCuts->Fill(highPtElectron.trackMomentumError()/Ptrack_out);
584 Error3NoCuts->Fill(highPtElectron.trackMomentumError()/UncorrectedPatCalo);
591 if((energy3x3/energy5x5)<
cut1_)
return;
593 if((Ptrack_out/Ptrack_in)<
cut2_ || (Ptrack_out/Ptrack_in)>
cut3_ )
return;
597 e25->Fill(energy5x5);
599 scE->Fill(sc.energy());
600 trP->Fill(UncorrectedPatCalo);
602 EoP->Fill(highPtElectron.eSuperClusterOverP());
605 E25oP->Fill(energy5x5/UncorrectedPatCalo);
607 Map->Fill(maxCC_Eta,maxCC_Phi);
608 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) ) );
611 MapCor1->Fill(energy5x5/UncorrectedPatCalo,energy5x5/Ptrack_in);
612 MapCor2->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSuperClusterOverP());
613 MapCor3->Fill(energy5x5/UncorrectedPatCalo,Ptrack_out/Ptrack_in);
614 MapCor4->Fill(energy5x5/UncorrectedPatCalo,energy5x5/highPtElectron.p());
615 MapCor5->Fill(energy5x5/UncorrectedPatCalo,UncorrectedPatCalo/Ptrack_out);
616 MapCor6->Fill(Ptrack_out/Ptrack_in,energy5x5/Ptrack_in);
617 MapCor7->Fill(Ptrack_out/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
618 MapCor8->Fill(energy5x5/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
619 MapCor9->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSeedClusterOverPout());
620 MapCor10->Fill(highPtElectron.eSeedClusterOverPout(),Ptrack_out/Ptrack_in);
621 MapCor11->Fill(highPtElectron.eSeedClusterOverPout(),energy5x5/Ptrack_in);
623 PinMinPout->Fill((Ptrack_in-Ptrack_out)/Ptrack_in);
625 Error1->
Fill(highPtElectron.trackMomentumError()/Ptrack_in);
626 Error2->Fill(highPtElectron.trackMomentumError()/Ptrack_out);
627 Error3->Fill(highPtElectron.trackMomentumError()/UncorrectedPatCalo);
630 hadOverEm->Fill(highPtElectron.hadronicOverEm());
640 if(highPtElectron.eSeedClusterOverPout()<
cutESeed_ )
return;
642 MapCor1ESeed->Fill(energy5x5/UncorrectedPatCalo,energy5x5/Ptrack_in);
643 MapCor2ESeed->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSuperClusterOverP());
644 MapCor3ESeed->Fill(energy5x5/UncorrectedPatCalo,Ptrack_out/Ptrack_in);
645 MapCor4ESeed->Fill(energy5x5/UncorrectedPatCalo,energy5x5/highPtElectron.p());
646 MapCor5ESeed->Fill(energy5x5/UncorrectedPatCalo,UncorrectedPatCalo/Ptrack_out);
647 MapCor6ESeed->Fill(Ptrack_out/Ptrack_in,energy5x5/Ptrack_in);
648 MapCor7ESeed->Fill(Ptrack_out/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
649 MapCor8ESeed->Fill(energy5x5/Ptrack_in,UncorrectedPatCalo/Ptrack_out);
650 MapCor9ESeed->Fill(energy5x5/UncorrectedPatCalo,highPtElectron.eSeedClusterOverPout());
651 MapCor10ESeed->Fill(highPtElectron.eSeedClusterOverPout(),Ptrack_out/Ptrack_in);
652 MapCor11ESeed->Fill(highPtElectron.eSeedClusterOverPout(),energy5x5/Ptrack_in);
T getParameter(std::string const &) const
int eventcrystal[171][360]
CalibrationCluster::CalibMap ReducedMap
edm::InputTag trackLabel_
std::vector< float > WeightVector
edm::InputTag recHitLabel_
virtual void analyze(const edm::Event &, const edm::EventSetup &)
HouseholderDecomposition * MyHH
TH1F * eSeedOverPout2ESeed
std::vector< EcalRecHit >::const_iterator const_iterator
CalibMap getMap(int, int, int, int)
TH1F * eSeedOverPoutNoCuts
std::vector< float > solutionNoCuts
MinL3Algorithm * MyL3Algo1
std::vector< int > MaxCCphiNoCuts
std::vector< int > MaxCCetaNoCuts
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
std::vector< float > solution
edm::InputTag electronLabel_
std::vector< float > newCalibs
std::vector< float > EnergyVector
ElectronCalibration(const edm::ParameterSet &)
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
EBDetId findMaxHit(edm::Handle< EBRecHitCollection > &)
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::string miscalibfile_
std::vector< float > WeightVectorNoCuts
std::vector< std::vector< float > > EventMatrixNoCuts
CalibrationCluster calibCluster
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
static const int ETAPHIMODE
std::vector< EcalRecHit >::iterator iterator
const_iterator end() const
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 ®Length=5)
EBDetId findMaxHit2(const std::vector< DetId > &, const EBRecHitCollection *)
void writeLine(EBDetId const &, float)
iterator find(key_type k)
std::vector< float > EnergyVectorNoCuts
TH1F * eSeedOverPout2NoCuts
std::vector< EBDetId > get5x5Id(EBDetId const &)
Power< A, B >::type pow(const A &a, const B &b)
std::vector< float > oldCalibs
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)
const_iterator begin() const
std::vector< int > MaxCCeta