#include <Calibration/EcalCalibAlgos/src/ZeeCalibration.cc>
Implementation: <Notes on="" implementation>="">
Definition at line 74 of file ZeeCalibration.h.
ZeeCalibration::ZeeCalibration | ( | const edm::ParameterSet & | iConfig | ) |
Constructor.
Definition at line 87 of file ZeeCalibration.cc.
References barrelfile_, calibMode_, coefficientDistanceAtIteration, GenMuonPlsPt100GeV_cfg::cout, electronCollection_, electronProducer_, electronSelection_, endcapfile_, lat::endl(), erechitCollection_, erechitProducer_, etaBins_, etaMax_, etaMin_, etBins_, etMax_, etMin_, EcalIndexingTools::getInstance(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), hlTriggerResults_, i, loopArray, mass4tree, massDiff4tree, maxInvMassCut_, mcProducer_, minInvMassCut_, myTree, outputFile_, outputFileName_, produceEcalIntercalibConstants(), rechitCollection_, rechitProducer_, scCollection_, scIslandCollection_, scIslandProducer_, scProducer_, EcalIndexingTools::setBinRange(), edm::ESProducer::setWhatProduced(), sigmaArray, sigmaErrorArray, theAlgorithm_, theMaxLoops, theParameterSet, and wantEtaCorrection_.
00088 { 00089 00090 #ifdef DEBUG 00091 std::cout<<"[ZeeCalibration] Starting the ctor"<<std::endl; 00092 #endif 00093 00094 theMaxLoops = iConfig.getUntrackedParameter<unsigned int>("maxLoops",0); 00095 00096 wantEtaCorrection_ = iConfig.getUntrackedParameter<bool>("wantEtaCorrection",true); 00097 00098 outputFileName_ = iConfig.getParameter<std::string>("outputFile"); 00099 00100 minInvMassCut_ = iConfig.getUntrackedParameter<double>("minInvMassCut", 70.); 00101 maxInvMassCut_ = iConfig.getUntrackedParameter<double>("maxInvMassCut", 110.); 00102 00103 rechitProducer_ = iConfig.getParameter<std::string>("rechitProducer"); 00104 rechitCollection_ = iConfig.getParameter<std::string>("rechitCollection"); 00105 00106 erechitProducer_ = iConfig.getParameter<std::string>("erechitProducer"); 00107 erechitCollection_ = iConfig.getParameter<std::string>("erechitCollection"); 00108 00109 scProducer_ = iConfig.getParameter<std::string>("scProducer"); 00110 scCollection_ = iConfig.getParameter<std::string>("scCollection"); 00111 00112 scIslandProducer_ = iConfig.getParameter<std::string>("scIslandProducer"); 00113 scIslandCollection_ = iConfig.getParameter<std::string>("scIslandCollection"); 00114 00115 calibMode_ = iConfig.getUntrackedParameter<std::string>("ZCalib_CalibType"); 00116 00117 mcProducer_ = iConfig.getUntrackedParameter<std::string>("mcProducer",""); 00118 00119 00120 electronProducer_ = iConfig.getParameter<std::string > ("electronProducer"); 00121 electronCollection_ = iConfig.getParameter<std::string > ("electronCollection"); 00122 00123 outputFile_ = TFile::Open(outputFileName_.c_str(),"RECREATE"); // open output file to store histograms 00124 00125 myTree = new TTree("myTree","myTree"); 00126 // myTree->Branch("zMass","zMass", &mass); 00127 myTree->Branch("zMass",&mass4tree,"mass/F"); 00128 myTree->Branch("zMassDiff",&massDiff4tree,"massDiff/F"); 00129 00130 barrelfile_=iConfig.getUntrackedParameter<std::string> ("initialMiscalibrationBarrel",""); 00131 endcapfile_=iConfig.getUntrackedParameter<std::string> ("initialMiscalibrationEndcap",""); 00132 00133 electronSelection_=iConfig.getUntrackedParameter<unsigned int> ("electronSelection",0);//option for electron selection 00134 00135 etaBins_ = iConfig.getUntrackedParameter<unsigned int>("etaBins", 10); 00136 etBins_ = iConfig.getUntrackedParameter<unsigned int>("etBins", 10); 00137 00138 etaMin_ = iConfig.getUntrackedParameter<double>("etaMin", 0.); 00139 etMin_ = iConfig.getUntrackedParameter<double>("etMin", 0.); 00140 etaMax_ = iConfig.getUntrackedParameter<double>("etaMax", 3.); 00141 etMax_ = iConfig.getUntrackedParameter<double>("etMax", 100.); 00142 00143 00144 // new ZeePlots("zeePlots.root"); 00145 // ZeePlots->bookHistos(); 00146 00147 //ZeeCalibrationPLots("zeeCalibPlots"); 00148 //ZeecaPlots->bookHistos(maxsIter); 00149 00150 hlTriggerResults_ = iConfig.getParameter<edm::InputTag> ("HLTriggerResults"); 00151 00152 theParameterSet=iConfig; 00153 EcalIndexingTools* myIndexTool=0; 00154 00155 00156 myIndexTool = EcalIndexingTools::getInstance(); 00157 00158 myIndexTool->setBinRange( etaBins_, etaMin_, etaMax_, etBins_, etMin_, etMax_ ); 00159 00160 //creating the algorithm 00161 theAlgorithm_ = new ZIterativeAlgorithmWithFit(iConfig); 00162 00163 // Tell the framework what data is being produced 00164 //setWhatProduced(this); 00165 setWhatProduced (this, &ZeeCalibration::produceEcalIntercalibConstants ) ; 00166 findingRecord<EcalIntercalibConstantsRcd> () ; 00167 00168 for(int i = 0; i<50; i++){ 00169 00170 coefficientDistanceAtIteration[i] = -1.; 00171 loopArray[i] = -1.; 00172 sigmaArray[i] = -1.; 00173 sigmaErrorArray[i] = -1.; 00174 00175 } 00176 00177 #ifdef DEBUG 00178 std::cout<<"[ZeeCalibration] Done with the ctor"<<std::endl; 00179 #endif 00180 00181 }
ZeeCalibration::~ZeeCalibration | ( | ) |
void ZeeCalibration::beginOfJob | ( | const edm::EventSetup & | iSetup | ) | [virtual] |
Called at beginning of job.
Reimplemented from edm::EDLooper.
Definition at line 200 of file ZeeCalibration.cc.
References barrelfile_, bookHistograms(), calibCoeff, calibCoeffError, calibMode_, GenMuonPlsPt100GeV_cfg::cout, EcalBarrel, EcalEndcap, endcapfile_, lat::endl(), edm::EventSetup::get(), CaloMiscalibMapEcal::get(), EcalRingCalibrationTools::getDetIdsInECAL(), EcalRingCalibrationTools::getDetIdsInModule(), EcalRingCalibrationTools::getDetIdsInRing(), EcalCondObjectContainer< T >::getMap(), ZIterativeAlgorithmWithFit::getNumberOfChannels(), h2_xtalMiscalibCoeffBarrel_, h2_xtalMiscalibCoeffEndcapMinus_, h2_xtalMiscalibCoeffEndcapPlus_, ical, EBDetId::ieta(), init_, initCalibCoeff, EBDetId::iphi(), EEDetId::ix(), EEDetId::iy(), k, loopFlag_, myZeePlots_, outputFile_, MiscalibReaderFromXML::parseXMLMiscalibFile(), CaloMiscalibMapEcal::prefillMap(), read_events, EcalRingCalibrationTools::setCaloGeometry(), theAlgorithm_, and EEDetId::zside().
00201 { 00202 #ifdef DEBUG 00203 std::cout<<"[ZeeCalibration] Entering beginOfJob"<<std::endl; 00204 #endif 00205 00206 //inizializzare la geometria di ecal 00207 edm::ESHandle<CaloGeometry> pG; 00208 iSetup.get<CaloGeometryRecord>().get(pG); 00209 EcalRingCalibrationTools::setCaloGeometry(&(*pG)); 00210 00211 myZeePlots_ = new ZeePlots( "zeePlots.root" ); 00212 // myZeeRescaleFactorPlots_ = new ZeeRescaleFactorPlots("zeeRescaleFactorPlots.root"); 00213 00214 // go to *OUR* rootfile and book histograms 00215 outputFile_->cd(); 00216 bookHistograms(); 00217 00218 std::cout<<"[ZeeCalibration::beginOfJob] Histograms booked "<<std::endl; 00219 00220 loopFlag_ = 0; 00221 00222 //Read miscalibration map if requested 00223 CaloMiscalibMapEcal* miscalibMap=0; 00224 if (!barrelfile_.empty() || !barrelfile_.empty()) 00225 { 00226 miscalibMap=new CaloMiscalibMapEcal(); 00227 miscalibMap->prefillMap(); 00228 } 00229 00230 00231 if(!barrelfile_.empty()) 00232 { 00233 MiscalibReaderFromXMLEcalBarrel barrelreader_(*miscalibMap); 00234 barrelreader_.parseXMLMiscalibFile(barrelfile_); 00235 #ifdef DEBUG 00236 std::cout<<"[ZeeCalibration::beginOfJob] Parsed EB miscal file"<<std::endl; 00237 #endif 00238 } 00239 00240 if(!endcapfile_.empty()) 00241 { 00242 MiscalibReaderFromXMLEcalEndcap endcapreader_(*miscalibMap); 00243 endcapreader_.parseXMLMiscalibFile(endcapfile_); 00244 #ifdef DEBUG 00245 std::cout<<"[ZeeCalibration::beginOfJob] Parsed EE miscal file"<<std::endl; 00246 #endif 00247 } 00248 00249 std::cout << " theAlgorithm_->getNumberOfChannels() " 00250 << theAlgorithm_->getNumberOfChannels() << std::endl; 00251 00252 00254 for(int k = 0; k < theAlgorithm_->getNumberOfChannels(); k++) 00255 { 00256 calibCoeff[k]=1.; 00257 calibCoeffError[k]=0.; 00258 00259 std::vector<DetId> ringIds; 00260 00261 if(calibMode_ == "RING") 00262 ringIds = EcalRingCalibrationTools::getDetIdsInRing(k); 00263 00264 if(calibMode_ == "MODULE") 00265 ringIds = EcalRingCalibrationTools::getDetIdsInModule(k); 00266 00267 if(calibMode_ == "ABS_SCALE" || calibMode_ == "ETA_ET_MODE" ) 00268 ringIds = EcalRingCalibrationTools::getDetIdsInECAL(); 00269 00270 if (miscalibMap) 00271 { 00272 initCalibCoeff[k]=0.; 00273 for (unsigned int iid=0; iid<ringIds.size();++iid) 00274 { 00275 float miscalib=* (miscalibMap->get().getMap().find(ringIds[iid]) ); 00276 // float miscalib=miscalibMap->get().getMap().find(ringIds[iid])->second; ////////AP 00277 initCalibCoeff[k]+=miscalib; 00278 } 00279 initCalibCoeff[k]/=(float)ringIds.size(); 00280 std::cout << k << " " << initCalibCoeff[k] << " " << ringIds.size() << std::endl; 00281 } 00282 else 00283 { 00284 initCalibCoeff[k]=1.; 00285 } 00286 } 00287 00288 ical = boost::shared_ptr<EcalIntercalibConstants>( new EcalIntercalibConstants() ); 00289 00290 for(int k = 0; k < theAlgorithm_->getNumberOfChannels(); k++) 00291 { 00292 // std::vector<DetId> ringIds = EcalRingCalibrationTools::getDetIdsInRing(k); 00293 00294 std::vector<DetId> ringIds; 00295 00296 if(calibMode_ == "RING") 00297 ringIds = EcalRingCalibrationTools::getDetIdsInRing(k); 00298 00299 if(calibMode_ == "MODULE") 00300 ringIds = EcalRingCalibrationTools::getDetIdsInModule(k); 00301 00302 if(calibMode_ == "ABS_SCALE" || calibMode_ == "ETA_ET_MODE") 00303 ringIds = EcalRingCalibrationTools::getDetIdsInECAL(); 00304 00305 00306 for (unsigned int iid=0; iid<ringIds.size();++iid){ 00307 // ical->setValue( ringIds[iid], 1. * initCalibCoeff[k] ); 00308 00309 if(ringIds[iid].subdetId() == EcalBarrel){ 00310 EBDetId myEBDetId(ringIds[iid]); 00311 h2_xtalMiscalibCoeffBarrel_->SetBinContent( myEBDetId.ieta() + 86, myEBDetId.iphi(), * (miscalibMap->get().getMap().find(ringIds[iid]) ) );//fill TH2 with miscalibCoeff 00312 00313 } 00314 00315 if(ringIds[iid].subdetId() == EcalEndcap){ 00316 EEDetId myEEDetId(ringIds[iid]); 00317 if(myEEDetId.zside() < 0) 00318 h2_xtalMiscalibCoeffEndcapMinus_->SetBinContent( myEEDetId.ix(), myEEDetId.iy(), * ( miscalibMap->get().getMap().find(ringIds[iid]) ) );//fill TH2 with miscalibCoeff 00319 00320 if(myEEDetId.zside() > 0) 00321 h2_xtalMiscalibCoeffEndcapPlus_->SetBinContent( myEEDetId.ix(), myEEDetId.iy(), * (miscalibMap->get().getMap().find(ringIds[iid]) ) );//fill TH2 with miscalibCoeff 00322 00323 } 00324 00325 ical->setValue( ringIds[iid], *(miscalibMap->get().getMap().find(ringIds[iid]) ) ); 00326 00327 } 00328 00329 00330 read_events = 0; 00331 init_ = false; 00332 00333 00334 } 00335 #ifdef DEBUG 00336 std::cout<<"[ZeeCalibration] Done with beginOfJob"<<std::endl; 00337 #endif 00338 00339 }
void ZeeCalibration::bookHistograms | ( | ) | [private] |
Definition at line 1692 of file ZeeCalibration.cc.
References ZeePlots::bookEleHistograms(), ZeePlots::bookEleMCHistograms(), ZeePlots::bookZHistograms(), ZeePlots::bookZMCHistograms(), h1_borderElectronClassification_, h1_eleClasses_, h1_electronCosTheta_SC_, h1_electronCosTheta_SC_TK_, h1_electronCosTheta_TK_, h1_eleEtaResol_, h1_elePhiResol_, h1_eventsAfterBorderSelection_, h1_eventsAfterEWKSelection_, h1_eventsBeforeBorderSelection_, h1_eventsBeforeEWKSelection_, h1_mc_, h1_mcEB_, h1_mcEBParz_, h1_mcEE_, h1_mcEEParz_, h1_mcParz_, h1_nEleReco_, h1_occupancy_, h1_occupancyBarrel_, h1_occupancyEndcap_, h1_occupancyVsEta_, h1_preshowerOverSC_, h1_reco_ZMass_, h1_reco_ZMassCorr_, h1_reco_ZMassCorrBB_, h1_reco_ZMassCorrEE_, h1_seedOverSC_, h1_weightSumMeanBarrel_, h1_weightSumMeanEndcap_, h1_ZCandMult_, h1_zEtaResol_, h1_zMassResol_, h1_zPhiResol_, h2_chi2_, h2_coeffVsEta_, h2_coeffVsEtaGrouped_, h2_coeffVsLoop_, h2_fEtaBarrelBad_, h2_fEtaBarrelGood_, h2_fEtaEndcapBad_, h2_fEtaEndcapGood_, h2_iterations_, h2_miscalRecal_, h2_miscalRecalEB_, h2_miscalRecalEE_, h2_residualSigma_, h2_xtalMiscalibCoeffBarrel_, h2_xtalMiscalibCoeffEndcapMinus_, h2_xtalMiscalibCoeffEndcapPlus_, h2_xtalRecalibCoeffBarrel_, h2_xtalRecalibCoeffEndcapMinus_, h2_xtalRecalibCoeffEndcapPlus_, h2_zMassDiffVsLoop_, h2_zMassVsLoop_, h2_zWidthVsLoop_, h_eleEffEta_, h_eleEffPhi_, h_eleEffPt_, h_ESCcorrEtrue_, h_ESCcorrEtrueVsEta_, h_ESCEtrue_, h_ESCEtrueVsEta_, i, and myZeePlots_.
Referenced by beginOfJob().
01693 { 01694 01695 h1_eventsBeforeEWKSelection_= new TH1F("h1_eventsBeforeEWKSelection", "h1_eventsBeforeEWKSelection", 5,0,5); 01696 h1_eventsAfterEWKSelection_ = new TH1F("h1_eventsAfterEWKSelection", "h1_eventsAfterEWKSelection", 5,0,5); 01697 01698 h1_eventsBeforeBorderSelection_= new TH1F("h1_eventsBeforeBorderSelection", "h1_eventsBeforeBorderSelection", 5,0,5); 01699 h1_eventsAfterBorderSelection_ = new TH1F("h1_eventsAfterBorderSelection", "h1_eventsAfterBorderSelection", 5,0,5); 01700 01701 h1_seedOverSC_= new TH1F("h1_seedOverSC", "h1_seedOverSC", 400, 0., 2.); 01702 01703 myZeePlots_ -> bookHLTHistograms(); 01704 01705 h1_borderElectronClassification_ = new TH1F("h1_borderElectronClassification", "h1_borderElectronClassification", 55, -5 , 50); 01706 h1_preshowerOverSC_= new TH1F("h1_preshowerOverSC", "h1_preshowerOverSC", 400, 0., 1.); 01707 01708 h2_fEtaBarrelGood_ = new TH2F("fEtaBarrelGood","fEtaBarrelGood",800,-4.,4.,800,0.8,1.2); 01709 h2_fEtaBarrelGood_->SetXTitle("Eta"); 01710 h2_fEtaBarrelGood_->SetYTitle("1/fEtaBarrelGood"); 01711 01712 h2_fEtaBarrelBad_ = new TH2F("fEtaBarrelBad","fEtaBarrelBad",800,-4.,4.,800,0.8,1.2); 01713 h2_fEtaBarrelBad_->SetXTitle("Eta"); 01714 h2_fEtaBarrelBad_->SetYTitle("1/fEtaBarrelBad"); 01715 01716 h2_fEtaEndcapGood_ = new TH2F("fEtaEndcapGood","fEtaEndcapGood",800,-4.,4.,800,0.8,1.2); 01717 h2_fEtaEndcapGood_->SetXTitle("Eta"); 01718 h2_fEtaEndcapGood_->SetYTitle("1/fEtaEndcapGood"); 01719 01720 h2_fEtaEndcapBad_ = new TH2F("fEtaEndcapBad","fEtaEndcapBad",800,-4.,4.,800,0.8,1.2); 01721 h2_fEtaEndcapBad_->SetXTitle("Eta"); 01722 h2_fEtaEndcapBad_->SetYTitle("1/fEtaEndcapBad"); 01723 01724 for (int i=0;i<2;i++) 01725 { 01726 char histoName[50]; 01727 01728 sprintf(histoName,"h_eleEffEta_%d",i); 01729 h_eleEffEta_[i] = new TH1F(histoName,histoName, 150, 0., 2.7); 01730 h_eleEffEta_[i]->SetXTitle("|#eta|"); 01731 01732 sprintf(histoName,"h_eleEffPhi_%d",i); 01733 h_eleEffPhi_[i] = new TH1F(histoName,histoName, 400, -4., 4.); 01734 h_eleEffPhi_[i]->SetXTitle("Phi"); 01735 01736 sprintf(histoName,"h_eleEffPt_%d",i); 01737 h_eleEffPt_[i] = new TH1F(histoName,histoName, 200, 0., 200.); 01738 h_eleEffPt_[i]->SetXTitle("p_{T}(GeV/c)"); 01739 } 01740 01741 h2_xtalMiscalibCoeffBarrel_ = new TH2F("h2_xtalMiscalibCoeffBarrel","h2_xtalMiscalibCoeffBarrel", 171, -85, 85, 360, 0, 360); 01742 h2_xtalMiscalibCoeffEndcapMinus_ = new TH2F("h2_xtalMiscalibCoeffEndcapMinus", "h2_xtalMiscalibCoeffEndcapMinus", 100, 0,100, 100, 0, 100); 01743 h2_xtalMiscalibCoeffEndcapPlus_ = new TH2F("h2_xtalMiscalibCoeffEndcapPlus", "h2_xtalMiscalibCoeffEndcapPlus", 100, 0,100, 100, 0, 100); 01744 01745 h2_xtalMiscalibCoeffBarrel_ ->SetXTitle("ieta"); 01746 h2_xtalMiscalibCoeffBarrel_ ->SetYTitle("iphi"); 01747 01748 h2_xtalMiscalibCoeffEndcapMinus_->SetXTitle("ix"); 01749 h2_xtalMiscalibCoeffEndcapMinus_->SetYTitle("iy"); 01750 01751 for (int i=0;i<25;i++) 01752 { 01753 01754 char histoName[50]; 01755 sprintf(histoName,"h_ESCEtrueVsEta_%d",i); 01756 01757 h_ESCEtrueVsEta_[i] = new TH2F(histoName,histoName, 150, 0., 2.7, 300,0.,1.5); 01758 h_ESCEtrueVsEta_[i]->SetXTitle("|#eta|"); 01759 h_ESCEtrueVsEta_[i]->SetYTitle("E_{SC,raw}/E_{MC}"); 01760 01761 sprintf(histoName,"h_ESCEtrue_%d",i); 01762 01763 h_ESCEtrue_[i] = new TH1F(histoName,histoName, 300,0.,1.5); 01764 01765 sprintf(histoName,"h2_chi2_%d",i); 01766 h2_chi2_[i] = new TH2F(histoName,histoName, 1000,-150,150, 1000, -1, 5); 01767 01768 sprintf(histoName,"h2_iterations_%d",i); 01769 h2_iterations_[i] = new TH2F(histoName,histoName, 1000,-150,150, 1000, -1, 15); 01770 01771 sprintf(histoName,"h_ESCcorrEtrueVsEta_%d",i); 01772 01773 h_ESCcorrEtrueVsEta_[i] = new TH2F(histoName,histoName, 150, 0., 2.7, 300,0.,1.5); 01774 h_ESCcorrEtrueVsEta_[i]->SetXTitle("|#eta|"); 01775 h_ESCcorrEtrueVsEta_[i]->SetYTitle("E_{SC,#eta-corr}/E_{MC}"); 01776 01777 sprintf(histoName,"h_ESCcorrEtrue_%d",i); 01778 01779 h_ESCcorrEtrue_[i] = new TH1F(histoName,histoName, 300,0.,1.5); 01780 01781 sprintf(histoName,"h2_xtalRecalibCoeffBarrel_%d",i); 01782 h2_xtalRecalibCoeffBarrel_[i] = new TH2F(histoName,histoName, 171, -85, 85, 360, 0, 360); 01783 01784 h2_xtalRecalibCoeffBarrel_[i]->SetXTitle("ieta"); 01785 h2_xtalRecalibCoeffBarrel_[i]->SetYTitle("iphi"); 01786 01787 sprintf(histoName,"h2_xtalRecalibCoeffEndcapMinus_%d",i); 01788 h2_xtalRecalibCoeffEndcapMinus_[i] = new TH2F(histoName,histoName, 100, 0,100, 100, 0, 100); 01789 h2_xtalRecalibCoeffEndcapMinus_[i]->SetXTitle("ix"); 01790 h2_xtalRecalibCoeffEndcapMinus_[i]->SetYTitle("iy"); 01791 01792 sprintf(histoName,"h2_xtalRecalibCoeffEndcapPlus_%d",i); 01793 h2_xtalRecalibCoeffEndcapPlus_[i] = new TH2F(histoName,histoName, 100, 0,100, 100, 0, 100); 01794 h2_xtalRecalibCoeffEndcapPlus_[i]->SetXTitle("ix"); 01795 h2_xtalRecalibCoeffEndcapPlus_[i]->SetYTitle("iy"); 01796 01797 } 01798 01799 /* 01800 for (int i=0;i<15;i++) 01801 { 01802 01803 char histoName[50]; 01804 01805 sprintf(histoName,"h_DiffZMassDistr_%d",i); 01806 h_DiffZMassDistr_[i] = new TH1F(histoName,histoName, 400, -20., 20.); 01807 h_DiffZMassDistr_[i]->SetXTitle("M_{Z, reco} - M_{Z, MC}"); 01808 h_DiffZMassDistr_[i]->SetYTitle("events"); 01809 01810 sprintf(histoName,"h_ZMassDistr_%d",i); 01811 h_ZMassDistr_[i] = new TH1F(histoName,histoName, 200, 0., 150.); 01812 h_ZMassDistr_[i]->SetXTitle("RecoZmass (GeV)"); 01813 h_ZMassDistr_[i]->SetYTitle("events"); 01814 01815 } 01816 */ 01817 01818 h1_zMassResol_ = new TH1F("zMassResol", "zMassResol", 200, -50., 50.); 01819 h1_zMassResol_->SetXTitle("M_{Z, reco} - M_{Z, MC}"); 01820 h1_zMassResol_->SetYTitle("events"); 01821 01822 h1_eleEtaResol_ = new TH1F("eleEtaResol", "eleEtaResol", 100, -0.01, 0.01); 01823 h1_eleEtaResol_->SetXTitle("#eta_{reco} - #eta_{MC}"); 01824 h1_eleEtaResol_->SetYTitle("events"); 01825 01826 h1_electronCosTheta_TK_ = new TH1F("electronCosTheta_TK", "electronCosTheta_TK", 100, -1, 1); 01827 h1_electronCosTheta_TK_->SetXTitle("cos #theta_{12}"); 01828 h1_electronCosTheta_TK_->SetYTitle("events"); 01829 01830 h1_electronCosTheta_SC_ = new TH1F("electronCosTheta_SC", "electronCosTheta_SC", 100, -1, 1); 01831 h1_electronCosTheta_SC_->SetXTitle("cos #theta_{12}"); 01832 h1_electronCosTheta_SC_->SetYTitle("events"); 01833 01834 h1_electronCosTheta_SC_TK_ = new TH1F("electronCosTheta_SC_TK", "electronCosTheta_SC_TK", 200, -0.1, 0.1); 01835 h1_electronCosTheta_SC_TK_->SetXTitle("cos #theta_{12}^{SC}/ cos #theta_{12}^{TK} - 1"); 01836 h1_electronCosTheta_SC_TK_->SetYTitle("events"); 01837 01838 h1_elePhiResol_ = new TH1F("elePhiResol", "elePhiResol", 100, -0.01, 0.01); 01839 h1_elePhiResol_->SetXTitle("#phi_{reco} - #phi_{MC}"); 01840 h1_elePhiResol_->SetYTitle("events"); 01841 01842 01843 h1_zEtaResol_ = new TH1F("zEtaResol", "zEtaResol", 200, -1., 1.); 01844 h1_zEtaResol_->SetXTitle("#eta_{Z, reco} - #eta_{Z, MC}"); 01845 h1_zEtaResol_->SetYTitle("events"); 01846 01847 01848 h1_zPhiResol_ = new TH1F("zPhiResol", "zPhiResol", 200, -1., 1.); 01849 h1_zPhiResol_->SetXTitle("#phi_{Z, reco} - #phi_{Z, MC}"); 01850 h1_zPhiResol_->SetYTitle("events"); 01851 01852 h1_nEleReco_ = new TH1F("nEleReco","Number of reco electrons",10,-0.5,10.5); 01853 h1_nEleReco_->SetXTitle("nEleReco"); 01854 h1_nEleReco_->SetYTitle("events"); 01855 01856 // h1_occupancyVsEta_ = new TH1F("occupancyVsEta","occupancyVsEta",EcalRingCalibrationTools::N_RING_TOTAL,0,(float)EcalRingCalibrationTools::N_RING_TOTAL); 01857 01858 h1_occupancyVsEta_ = new TH1F("occupancyVsEta","occupancyVsEta",249, -124, 124); 01859 h1_occupancyVsEta_->SetYTitle("Weighted electron statistics"); 01860 h1_occupancyVsEta_->SetXTitle("Eta channel"); 01861 01862 h1_weightSumMeanBarrel_= new TH1F("weightSumMeanBarrel","weightSumMeanBarrel",10000, 0, 10000); 01863 h1_weightSumMeanEndcap_= new TH1F("weightSumMeanEndcap","weightSumMeanEndcap",10000, 0, 10000); 01864 01865 h1_occupancy_ = new TH1F("occupancy","occupancy",1000,0,10000); 01866 h1_occupancy_->SetXTitle("Weighted electron statistics"); 01867 01868 h1_occupancyBarrel_ = new TH1F("occupancyBarrel","occupancyBarrel",1000,0,10000); 01869 h1_occupancyBarrel_->SetXTitle("Weighted electron statistics"); 01870 01871 h1_occupancyEndcap_ = new TH1F("occupancyEndcap","occupancyEndcap",1000,0,10000); 01872 h1_occupancyEndcap_->SetXTitle("Weighted electron statistics"); 01873 01874 01875 h1_eleClasses_= new TH1F("eleClasses","eleClasses",301,-1,300); 01876 h1_eleClasses_->SetXTitle("classCode"); 01877 h1_eleClasses_->SetYTitle("#"); 01878 01879 01880 01881 myZeePlots_ ->bookZMCHistograms(); 01882 01883 myZeePlots_ ->bookZHistograms(); 01884 01885 myZeePlots_ ->bookEleMCHistograms(); 01886 01887 myZeePlots_ ->bookEleHistograms(); 01888 01889 01890 h1_ZCandMult_ =new TH1F("ZCandMult","Multiplicity of Z candidates in one event",10,-0.5,10.5); 01891 h1_ZCandMult_ ->SetXTitle("ZCandMult"); 01892 01893 h1_reco_ZMass_ = new TH1F("reco_ZMass","Inv. mass of 2 reco Electrons",200,0.,150.); 01894 h1_reco_ZMass_->SetXTitle("reco_ZMass (GeV)"); 01895 h1_reco_ZMass_->SetYTitle("events"); 01896 01897 h1_reco_ZMassCorr_ = new TH1F("reco_ZMassCorr","Inv. mass of 2 corrected reco Electrons",200,0.,150.); 01898 h1_reco_ZMassCorr_->SetXTitle("reco_ZMass (GeV)"); 01899 h1_reco_ZMassCorr_->SetYTitle("events"); 01900 01901 h1_reco_ZMassCorrBB_ = new TH1F("reco_ZMassCorrBB","Inv. mass of 2 corrected reco Electrons",200,0.,150.); 01902 h1_reco_ZMassCorrBB_->SetXTitle("reco_ZMass (GeV)"); 01903 h1_reco_ZMassCorrBB_->SetYTitle("events"); 01904 01905 h1_reco_ZMassCorrEE_ = new TH1F("reco_ZMassCorrEE","Inv. mass of 2 corrected reco Electrons",200,0.,150.); 01906 h1_reco_ZMassCorrEE_->SetXTitle("reco_ZMass (GeV)"); 01907 h1_reco_ZMassCorrEE_->SetYTitle("events"); 01908 01909 // h2_coeffVsEta_= new TH2F("h2_calibCoeffVsEta","h2_calibCoeffVsEta",EcalRingCalibrationTools::N_RING_TOTAL,0, (double)EcalRingCalibrationTools::N_RING_TOTAL, 200, 0., 2.); 01910 01911 h2_coeffVsEta_= new TH2F("h2_calibCoeffVsEta","h2_calibCoeffVsEta",249,-124,125, 200, 0., 2.); 01912 h2_coeffVsEta_->SetXTitle("Eta channel"); 01913 h2_coeffVsEta_->SetYTitle("recalibCoeff"); 01914 01915 h2_coeffVsEtaGrouped_= new TH2F("h2_calibCoeffVsEtaGrouped","h2_calibCoeffVsEtaGrouped", 200, 0., 3., 200, 0.6, 1.4); 01916 h2_coeffVsEtaGrouped_->SetXTitle("|#eta|"); 01917 h2_coeffVsEtaGrouped_->SetYTitle("recalibCoeff"); 01918 01919 h2_zMassVsLoop_= new TH2F("h2_zMassVsLoop","h2_zMassVsLoop",1000,0,40, 90, 80.,95.); 01920 01921 h2_zMassDiffVsLoop_= new TH2F("h2_zMassDiffVsLoop","h2_zMassDiffVsLoop",1000,0,40, 100, -1., 1.); 01922 h2_zMassDiffVsLoop_->SetXTitle("Iteration"); 01923 h2_zMassDiffVsLoop_->SetYTitle("M_{Z, reco peak} - M_{Z, true}"); 01924 01925 h2_zWidthVsLoop_= new TH2F("h2_zWidthVsLoop","h2_zWidthVsLoop",1000,0,40, 100, 0.,10.); 01926 01927 h2_coeffVsLoop_= new TH2F("h2_coeffVsLoop","h2_coeffVsLoop",1000,0,40, 100, 0., 2.); 01928 01929 h2_residualSigma_= new TH2F("h2_residualSigma","h2_residualSigma",1000, 0, 40, 100, 0., .5); 01930 01931 h2_miscalRecal_ = new TH2F("h2_miscalRecal","h2_miscalRecal", 500, 0., 2., 500, 0., 2.); 01932 h2_miscalRecal_->SetXTitle("initCalibCoeff"); 01933 h2_miscalRecal_->SetYTitle("1/RecalibCoeff"); 01934 01935 h2_miscalRecalEB_ = new TH2F("h2_miscalRecalEB","h2_miscalRecalEB", 500, 0., 2., 500, 0., 2.); 01936 h2_miscalRecalEB_->SetXTitle("initCalibCoeff"); 01937 h2_miscalRecalEB_->SetYTitle("1/RecalibCoeff"); 01938 01939 h2_miscalRecalEE_ = new TH2F("h2_miscalRecalEE","h2_miscalRecalEE", 500, 0., 2., 500, 0., 2.); 01940 h2_miscalRecalEE_->SetXTitle("initCalibCoeff"); 01941 h2_miscalRecalEE_->SetYTitle("1/RecalibCoeff"); 01942 01943 h1_mc_ = new TH1F("h1_residualMiscalib","h1_residualMiscalib", 200, -0.2, 0.2); 01944 h1_mcEB_ = new TH1F("h1_residualMiscalibEB","h1_residualMiscalibEB", 200, -0.2, 0.2); 01945 h1_mcEE_ = new TH1F("h1_residualMiscalibEE","h1_residualMiscalibEE", 200, -0.2, 0.2); 01946 01947 for (int i=0;i<25;i++) 01948 { 01949 char histoName[50]; 01950 /* 01951 sprintf(histoName,"h2_miscalRecalParz_%d",i); 01952 h2_miscalRecalParz_[i] = new TH2F(histoName,histoName,500, 0., 2., 500, 0., 2.); 01953 h2_miscalRecalParz_[i]->SetXTitle("initCalibCoeff"); 01954 h2_miscalRecalParz_[i]->SetYTitle("1/recalibCoeff"); 01955 01956 sprintf(histoName,"h2_miscalRecalEBParz_%d",i); 01957 h2_miscalRecalEBParz_[i] = new TH2F(histoName,histoName,500, 0., 2., 500, 0., 2.); 01958 h2_miscalRecalEBParz_[i]->SetXTitle("initCalibCoeff"); 01959 h2_miscalRecalEBParz_[i]->SetYTitle("1/recalibCoeff"); 01960 01961 sprintf(histoName,"h2_miscalRecalEEParz_%d",i); 01962 h2_miscalRecalEEParz_[i] = new TH2F(histoName,histoName,500, 0., 2., 500, 0., 2.); 01963 h2_miscalRecalEEParz_[i]->SetXTitle("initCalibCoeff"); 01964 h2_miscalRecalEEParz_[i]->SetYTitle("1/recalibCoeff"); 01965 */ 01966 01967 sprintf(histoName,"h1_residualMiscalibParz_%d",i); 01968 h1_mcParz_[i] = new TH1F(histoName,histoName, 200, -0.2, 0.2); 01969 sprintf(histoName,"h1_residualMiscalibEBParz_%d",i); 01970 h1_mcEBParz_[i] = new TH1F(histoName,histoName, 200, -0.2, 0.2); 01971 sprintf(histoName,"h1_residualMiscalibEEParz_%d",i); 01972 h1_mcEEParz_[i] = new TH1F(histoName,histoName, 200, -0.2, 0.2); 01973 01974 } 01975 01976 01977 }
float ZeeCalibration::computeCoefficientDistanceAtIteration | ( | float | v1[250], | |
float | v2[250], | |||
int | size | |||
) | [private] |
Definition at line 2255 of file ZeeCalibration.cc.
References funct::abs(), calibMode_, dist(), i, funct::pow(), ringNumberCorrector(), and funct::sqrt().
Referenced by endOfLoop().
02255 { 02256 02257 float dist(0.); 02258 02259 for(int i =0; i < size; i++){ 02260 02261 // std::cout<< "[ZeeCalibration::computeCoefficientDistanceAtIteration] Adding term "<<pow( v1[i]-v2[i], 2 )<<" from v1 "<<v1[i]<<" and v2 "<<v2[i]<<std::endl; 02262 02263 bool isNearCrack = false; 02264 02265 if( calibMode_ == "RING"){//exclude non-calibrated rings from computation 02266 02267 isNearCrack = ( abs( ringNumberCorrector(i) ) == 1 || abs( ringNumberCorrector(i) ) == 25 || 02268 abs( ringNumberCorrector(i) ) == 26 || abs( ringNumberCorrector(i) ) == 45 || 02269 abs( ringNumberCorrector(i) ) == 46 || abs( ringNumberCorrector(i) ) == 65 || 02270 abs( ringNumberCorrector(i) ) == 66 || abs( ringNumberCorrector(i) ) == 85 || 02271 abs( ringNumberCorrector(i) ) == 86 || abs( ringNumberCorrector(i) ) == 124 ); 02272 } 02273 02274 if(!isNearCrack) 02275 dist += pow( v1[i]-v2[i], 2 ); 02276 } 02277 02278 dist = sqrt(dist) / size; 02279 02280 return dist; 02281 02282 }
edm::EDLooper::Status ZeeCalibration::duringLoop | ( | const edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [virtual] |
Called at each event.
START HERE....
Implements edm::EDLooper.
Definition at line 803 of file ZeeCalibration.cc.
References funct::abs(), ZIterativeAlgorithmWithFit::addEvent(), aHLTResults, BARREL_ELECTRONS_AFTER_BORDER_CUT, BARREL_ELECTRONS_BEFORE_BORDER_CUT, BBZN, BBZN_gg, BBZN_t0, BBZN_tt, ZeeKinematicTools::calculateZMass_withTK(), ZeeKinematicTools::calculateZMassWithCorrectedElectrons_withTK(), TestMuL1L2Filter_cff::cerr, ZeeKinematicTools::cosThetaElectrons_SC(), ZeeKinematicTools::cosThetaElectrons_TK(), GenMuonPlsPt100GeV_cfg::cout, CRACK_ELECTRONS_IN_BARREL, CRACK_ELECTRONS_IN_ENDCAP, EBZN, EBZN_gg, EBZN_t0, EBZN_tt, EcalBarrel, EEZN, EEZN_gg, EEZN_t0, EEZN_tt, electronCollection_, electronProducer_, electronSelection_, lat::endl(), erechitCollection_, erechitProducer_, eta, exception, funct::exp(), ZeePlots::fillEleInfo(), fillEleInfo(), ZeePlots::fillEleMCInfo(), ZeePlots::fillHLTInfo(), fillMCmap(), ZeePlots::fillZInfo(), ZeePlots::fillZMCInfo(), first, edm::Event::getByLabel(), getEtaCorrection(), getHottestDetId(), GOLDEN_ELECTRONS_IN_BARREL, GOLDEN_ELECTRONS_IN_ENDCAP, h1_borderElectronClassification_, h1_eleClasses_, h1_electronCosTheta_SC_, h1_electronCosTheta_SC_TK_, h1_electronCosTheta_TK_, h1_eventsAfterBorderSelection_, h1_eventsAfterEWKSelection_, h1_eventsBeforeBorderSelection_, h1_eventsBeforeEWKSelection_, h1_reco_ZMass_, h1_reco_ZMassCorr_, h1_reco_ZMassCorrBB_, h1_reco_ZMassCorrEE_, h1_ZCandMult_, h1_zMassResol_, hltCount, hlTriggerResults_, i, edm::Handle< T >::isValid(), edm::EDLooper::kContinue, loopFlag_, mass, mass4tree, massDiff4tree, maxInvMassCut_, mcProducer_, MCZBB, MCZEB, MCZEE, minInvMassCut_, myTree, myZeePlots_, MZ, NEVT, p, read_events, rechitCollection_, rechitProducer_, scCollection_, scIslandCollection_, scIslandProducer_, scProducer_, edm::second(), SHOWER_ELECTRONS_IN_BARREL, SHOWER_ELECTRONS_IN_ENDCAP, SILVER_ELECTRONS_IN_BARREL, SILVER_ELECTRONS_IN_ENDCAP, funct::sin(), edm::SortedCollection< T, SORT >::size(), funct::sqrt(), DetId::subdetId(), theAlgorithm_, TOTAL_ELECTRONS_IN_BARREL, TOTAL_ELECTRONS_IN_ENDCAP, wantEtaCorrection_, and xtalIsOnModuleBorder().
00804 { 00805 using namespace edm; 00806 00807 #ifdef DEBUG 00808 std::cout<<"[ZeeCalibration] Entering duringLoop"<<std::endl; 00809 #endif 00810 00811 00813 00814 for(unsigned int iHLT=0; iHLT<200; ++iHLT) { 00815 aHLTResults[iHLT] = false; 00816 } 00817 00818 #ifdef DEBUG 00819 std::cout<<"[ZeeCalibration::duringLoop] Done with initializing aHLTresults[] "<<std::endl; 00820 #endif 00821 00822 edm::Handle<edm::TriggerResults> hltTriggerResultHandle; 00823 iEvent.getByLabel(hlTriggerResults_, hltTriggerResultHandle); 00824 00825 if(!hltTriggerResultHandle.isValid()) { 00826 //std::cout << "invalid handle for HLT TriggerResults" << std::endl; 00827 } else { 00828 00829 hltCount = hltTriggerResultHandle->size(); 00830 00831 if (loopFlag_ == 0) 00832 myZeePlots_->fillHLTInfo(hltTriggerResultHandle); 00833 00834 #ifdef DEBUG 00835 std::cout<<"[ZeeCalibration::duringLoop] Done with myZeePlots_->fillHLTInfo(hltTriggerResultHandle); "<<std::endl; 00836 #endif 00837 00838 for(int i = 0 ; i < hltCount ; i++) { 00839 aHLTResults[i] = hltTriggerResultHandle->accept(i); 00840 00841 //HLT bit 32 = HLT1Electron 00842 //HLT bit 34 = HLT2Electron 00843 //HLT bit 35 = HLT2ElectronRelaxed 00844 00845 } 00846 00847 if(!aHLTResults[32] && !aHLTResults[34] && !aHLTResults[35]) 00848 return kContinue; 00849 00850 } 00851 00852 #ifdef DEBUG 00853 std::cout<<"[ZeeCalibration::duringLoop] End HLT section"<<std::endl; 00854 #endif 00855 00857 00858 00859 std::vector<HepMC::GenParticle*> mcEle; 00860 00861 float myGenZMass(-1); 00862 00863 if (!mcProducer_.empty()) 00864 { 00865 00866 //DUMP GENERATED Z MASS - BEGIN 00867 Handle< HepMCProduct > hepProd ; 00868 // iEvent.getByLabel( "source", hepProd ) ; 00869 iEvent.getByLabel( mcProducer_.c_str(), hepProd ) ; 00870 00871 const HepMC::GenEvent * myGenEvent = hepProd->GetEvent(); 00872 00873 if (loopFlag_ == 0) 00874 myZeePlots_->fillZMCInfo( & (*myGenEvent) ); 00875 00876 #ifdef DEBUG 00877 std::cout<<"[ZeeCalibration::duringLoop] Done with myZeePlots_->fillZMCInfo( & (*myGenEvent) ); "<<std::endl; 00878 #endif 00879 00880 HepMC::GenParticle* genZ=0; 00881 00882 00883 for ( HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin(); 00884 p != myGenEvent->particles_end(); ++p ) { 00885 //return a pointer to MC Z in the event 00886 if ( (*p)->pdg_id() == 23 && (*p)->status()==2){ 00887 00888 myGenZMass = (*p)->momentum().m(); 00889 genZ=(*p); 00890 } 00891 } 00892 //DUMP GENERATED Z MASS - END 00893 00894 00895 if (loopFlag_ == 0) 00896 myZeePlots_ ->fillEleMCInfo( & (*myGenEvent) ); 00897 00898 00899 //loop over MC positrons and find the closest MC positron in (eta,phi) phace space - begin 00900 HepMC::GenParticle MCele; 00901 00902 for ( HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin(); 00903 p != myGenEvent->particles_end(); ++p ) { 00904 00905 if ( abs( (*p)->pdg_id() ) == 11 ) 00906 { 00907 mcEle.push_back( (*p) ); 00908 MCele=*(*p); 00909 00910 } 00911 } 00912 00913 00914 if(mcEle.size()==2 && fabs(mcEle[0]->momentum().eta())<2.4 && fabs(mcEle[1]->momentum().eta())<2.4 ){ 00915 NEVT++; 00916 00917 if( fabs(mcEle[0]->momentum().eta())<1.479 && fabs(mcEle[1]->momentum().eta())<1.479 )MCZBB++; 00918 00919 if( (fabs(mcEle[0]->momentum().eta())>1.479 && fabs(mcEle[1]->momentum().eta())<1.479) || (fabs(mcEle[0]->momentum().eta())<1.479 && fabs(mcEle[1]->momentum().eta())>1.479) )MCZEB++; 00920 00921 if( fabs(mcEle[0]->momentum().eta())>1.479 && fabs(mcEle[1]->momentum().eta())>1.479 )MCZEE++; 00922 00923 00924 } 00925 00926 } 00927 00928 00929 00930 // Get EBRecHits 00931 Handle<EBRecHitCollection> phits; 00932 try { 00933 iEvent.getByLabel( rechitProducer_, rechitCollection_, phits); 00934 } catch (std::exception& ex) { 00935 std::cerr << "Error! can't get the product EBRecHitCollection " << std::endl; 00936 } 00937 const EBRecHitCollection* hits = phits.product(); // get a ptr to the product 00938 00939 // Get EERecHits 00940 Handle<EERecHitCollection> ephits; 00941 try { 00942 iEvent.getByLabel( erechitProducer_, erechitCollection_, ephits); 00943 } catch (std::exception& ex) { 00944 std::cerr << "Error! can't get the product EERecHitCollection " << std::endl; 00945 } 00946 const EERecHitCollection* ehits = ephits.product(); // get a ptr to the product 00947 00948 00949 //Get Hybrid SuperClusters 00950 Handle<reco::SuperClusterCollection> pSuperClusters; 00951 try { 00952 iEvent.getByLabel(scProducer_, scCollection_, pSuperClusters); 00953 } catch (std::exception& ex ) { 00954 std::cerr << "Error! can't get the product SuperClusterCollection "<< std::endl; 00955 } 00956 const reco::SuperClusterCollection* scCollection = pSuperClusters.product(); 00957 00958 #ifdef DEBUG 00959 std::cout<<"scCollection->size()"<<scCollection->size()<<std::endl; 00960 for(reco::SuperClusterCollection::const_iterator scIt = scCollection->begin(); scIt != scCollection->end(); scIt++) 00961 { 00962 std::cout<<scIt->energy()<<std::endl; 00963 } 00964 #endif 00965 00966 //Get Island SuperClusters 00967 Handle<reco::SuperClusterCollection> pIslandSuperClusters; 00968 try { 00969 iEvent.getByLabel(scIslandProducer_, scIslandCollection_, pIslandSuperClusters); 00970 } catch (std::exception& ex ) { 00971 std::cerr << "Error! can't get the product IslandSuperClusterCollection "<< std::endl; 00972 } 00973 const reco::SuperClusterCollection* scIslandCollection = pIslandSuperClusters.product(); 00974 00975 #ifdef DEBUG 00976 std::cout<<"scCollection->size()"<<scIslandCollection->size()<<std::endl; 00977 #endif 00978 00979 if( ( scCollection->size()+scIslandCollection->size() ) < 2) 00980 return kContinue; 00981 00982 // Get Electrons 00983 Handle<reco::PixelMatchGsfElectronCollection> pElectrons; 00984 try { 00985 iEvent.getByLabel(electronProducer_, electronCollection_, pElectrons); 00986 } catch (std::exception& ex ) { 00987 std::cerr << "Error! can't get the product ElectronCollection "<< std::endl; 00988 } 00989 const reco::PixelMatchGsfElectronCollection* electronCollection = pElectrons.product(); 00990 00991 /* 00992 //reco-mc association map 00993 std::map<HepMC::GenParticle*,const reco::PixelMatchGsfElectron*> myMCmap; 00994 00995 fillMCmap(&(*electronCollection),mcEle,myMCmap); 00996 00997 fillEleInfo(mcEle,myMCmap); 00998 */ 00999 01000 if(electronCollection->size() < 2) 01001 return kContinue; 01002 01003 if ( !hits && !ehits){ 01004 std::cout << "!hits" << std::endl; 01005 return kContinue; 01006 } 01007 01008 if (hits->size() == 0 && ehits->size() == 0){ 01009 std::cout << "hits->size() == 0" << std::endl; 01010 return kContinue; 01011 } 01012 01013 if (!electronCollection){ 01014 std::cout << "!electronCollection" << std::endl; 01015 return kContinue; 01016 } 01017 01018 if (electronCollection->size() == 0){ 01019 std::cout << "electronCollection->size() == 0" << std::endl; 01020 return kContinue; 01021 } 01022 01023 01024 01028 01029 read_events++; 01030 01031 // std::cout << "read_events = " << read_events << std::endl; 01032 01034 01035 #ifdef DEBUG 01036 std::cout <<" Starting with myZeePlots_->fillEleInfo(electronCollection); " << std::endl; 01037 #endif 01038 01039 if (loopFlag_ == 0) 01040 myZeePlots_->fillEleInfo(electronCollection); 01041 01042 #ifdef DEBUG 01043 std::cout <<" Done with myZeePlots_->fillEleInfo(electronCollection); " << std::endl; 01044 #endif 01045 01046 //FILL an electron vector - end 01047 //###################################Electron-SC association: begin##################################################### 01048 //Filling new ElectronCollection with new SC ref and calibElectron container 01049 std::vector<calib::CalibElectron> calibElectrons; 01050 //std::map< const calib::CalibElectron* , const reco::SuperCluster* > eleScMap; 01051 01052 01053 01054 //#####################################Electron-SC association map: end##################################################### 01055 for(unsigned int e_it = 0 ; e_it != electronCollection->size() ; e_it++) 01056 { 01057 calibElectrons.push_back(calib::CalibElectron(&((*electronCollection)[e_it]),hits,ehits)); 01058 #ifdef DEBUG 01059 std::cout << calibElectrons.back().getRecoElectron()->superCluster()->energy() << " " << calibElectrons.back().getRecoElectron()->energy() << endl; 01060 #endif 01061 // h1_recoEleEnergy_->Fill(calibElectrons.back().getRecoElectron()->superCluster()->energy()); 01062 } 01063 // if (iLoop == 0) 01064 //fillCalibElectrons(calibElectrons); 01065 01066 #ifdef DEBUG 01067 std::cout << "Filled histos" << std::endl; 01068 #endif 01069 01070 //COMBINATORY FOR Z MASS - begin 01071 std::vector< pair<calib::CalibElectron*,calib::CalibElectron*> > zeeCandidates; 01072 int myBestZ=-1; 01073 01074 mass = -1.; 01075 double DeltaMinvMin(5000.); 01076 01077 if (calibElectrons.size() < 2) 01078 return kContinue; 01079 01080 for(unsigned int e_it = 0 ; e_it != calibElectrons.size() - 1 ; e_it++){ 01081 for(unsigned int p_it = e_it + 1 ; p_it != calibElectrons.size() ; p_it++) 01082 { 01083 #ifdef DEBUG 01084 std::cout << e_it << " " << calibElectrons[e_it].getRecoElectron()->charge() << " " << p_it << " " << calibElectrons[p_it].getRecoElectron()->charge() << std::endl; 01085 #endif 01086 if (calibElectrons[e_it].getRecoElectron()->charge() * calibElectrons[p_it].getRecoElectron()->charge() != -1) 01087 continue; 01088 01089 mass = ZeeKinematicTools::calculateZMass_withTK(std::pair<calib::CalibElectron*,calib::CalibElectron*>(&(calibElectrons[e_it]),&(calibElectrons[p_it]))); 01090 01091 if (mass<0) 01092 continue; 01093 01094 #ifdef DEBUG 01095 std::cout << "#######################mass "<<mass << std::endl; 01096 #endif 01097 01098 zeeCandidates.push_back(std::pair<calib::CalibElectron*,calib::CalibElectron*>(&(calibElectrons[e_it]),&(calibElectrons[p_it]))); 01099 double DeltaMinv = fabs(mass - MZ); 01100 01101 if( DeltaMinv < DeltaMinvMin) 01102 { 01103 DeltaMinvMin = DeltaMinv; 01104 myBestZ=zeeCandidates.size()-1; 01105 } 01106 } 01107 } 01108 01109 // h_DeltaZMassDistr_[loopFlag_]->Fill( (mass-MZ) / MZ ); 01110 01111 // zeeCa->Fill(zeeCandidates); 01112 // 01113 h1_ZCandMult_->Fill(zeeCandidates.size()); 01114 01115 if(zeeCandidates.size()==0 || myBestZ==-1 ) 01116 return kContinue; 01117 01118 if (loopFlag_ == 0) 01119 myZeePlots_->fillZInfo( zeeCandidates[myBestZ] ); 01120 01121 #ifdef DEBUG 01122 std::cout << "Found ZCandidates " << myBestZ << std::endl; 01123 #endif 01124 01125 // h1_zMassResol_ ->Fill(mass-myGenZMass); 01126 01128 01129 01130 h1_eleClasses_->Fill(zeeCandidates[myBestZ].first->getRecoElectron()->classification()); 01131 h1_eleClasses_->Fill(zeeCandidates[myBestZ].second->getRecoElectron()->classification()); 01132 01133 int class1 = zeeCandidates[myBestZ].first->getRecoElectron()->classification(); 01134 int class2 = zeeCandidates[myBestZ].second->getRecoElectron()->classification(); 01135 01136 std::cout << "BEFORE "<<std::endl; 01137 01138 // myZeePlots_->fillEleClassesPlots( zeeCandidates[myBestZ].first ); 01139 //myZeePlots_->fillEleClassesPlots( zeeCandidates[myBestZ].second ); 01140 01141 std::cout << "AFTER "<<std::endl; 01142 01144 01145 if(class1 < 100) 01146 // h1_Elec_->Fill(1); 01147 TOTAL_ELECTRONS_IN_BARREL++; 01148 if(class1 >= 100) 01149 TOTAL_ELECTRONS_IN_ENDCAP++; 01150 01151 if(class2 < 100) 01152 TOTAL_ELECTRONS_IN_BARREL++; 01153 if(class2 >= 100) 01154 TOTAL_ELECTRONS_IN_ENDCAP++; 01155 01156 01157 if( class1==0) 01158 GOLDEN_ELECTRONS_IN_BARREL++; 01159 if( class1==100) 01160 GOLDEN_ELECTRONS_IN_ENDCAP++; 01161 if( class1==10 || class1 ==20) 01162 SILVER_ELECTRONS_IN_BARREL++; 01163 if( class1==110 || class1 ==120) 01164 SILVER_ELECTRONS_IN_ENDCAP++; 01165 if( class1>=30 && class1 <=34) 01166 SHOWER_ELECTRONS_IN_BARREL++; 01167 if( class1>=130 && class1 <=134) 01168 SHOWER_ELECTRONS_IN_ENDCAP++; 01169 if( class1==40) 01170 CRACK_ELECTRONS_IN_BARREL++; 01171 if( class1==140) 01172 CRACK_ELECTRONS_IN_ENDCAP++; 01173 01174 if( class2==0) 01175 GOLDEN_ELECTRONS_IN_BARREL++; 01176 if( class2==100) 01177 GOLDEN_ELECTRONS_IN_ENDCAP++; 01178 if( class2==10 || class2 ==20) 01179 SILVER_ELECTRONS_IN_BARREL++; 01180 if( class2==110 || class2 ==120) 01181 SILVER_ELECTRONS_IN_ENDCAP++; 01182 if( class2>=30 && class2 <=34) 01183 SHOWER_ELECTRONS_IN_BARREL++; 01184 if( class2>=130 && class2 <=134) 01185 SHOWER_ELECTRONS_IN_ENDCAP++; 01186 if( class2==40) 01187 CRACK_ELECTRONS_IN_BARREL++; 01188 if( class2==140) 01189 CRACK_ELECTRONS_IN_ENDCAP++; 01190 01192 01194 01195 01196 DetId firstElehottestDetId = getHottestDetId( zeeCandidates[myBestZ].first->getRecoElectron()->superCluster()->seed()->getHitsByDetId() , hits, ehits ).first; 01197 DetId secondElehottestDetId = getHottestDetId( zeeCandidates[myBestZ].second->getRecoElectron()->superCluster()->seed()->getHitsByDetId() , hits, ehits ).first; 01198 01199 bool firstElectronIsOnModuleBorder(false); 01200 bool secondElectronIsOnModuleBorder(false); 01201 01202 h1_eventsBeforeBorderSelection_->Fill(1); 01203 01204 if(class1<100){ 01205 01206 if( firstElehottestDetId.subdetId() == EcalBarrel) 01207 firstElectronIsOnModuleBorder = xtalIsOnModuleBorder( firstElehottestDetId ); 01208 01209 BARREL_ELECTRONS_BEFORE_BORDER_CUT++; 01210 01211 if( firstElehottestDetId.subdetId() == EcalBarrel && !firstElectronIsOnModuleBorder ) 01212 BARREL_ELECTRONS_AFTER_BORDER_CUT++; 01213 01214 } 01215 01216 if(class2<100){ 01217 01218 if( secondElehottestDetId.subdetId() == EcalBarrel) 01219 secondElectronIsOnModuleBorder = xtalIsOnModuleBorder( secondElehottestDetId ); 01220 01221 BARREL_ELECTRONS_BEFORE_BORDER_CUT++; 01222 01223 if( secondElehottestDetId.subdetId() == EcalBarrel && !secondElectronIsOnModuleBorder ) 01224 BARREL_ELECTRONS_AFTER_BORDER_CUT++; 01225 01226 } 01227 01228 01229 if(class1<100){ 01230 if ( firstElehottestDetId.subdetId() == EcalBarrel && firstElectronIsOnModuleBorder ){ 01231 h1_borderElectronClassification_ -> Fill( zeeCandidates[myBestZ].first->getRecoElectron()->classification() ); 01232 return kContinue; 01233 } 01234 } 01235 01236 if(class2<100){ 01237 if ( secondElehottestDetId.subdetId() == EcalBarrel && secondElectronIsOnModuleBorder ){ 01238 h1_borderElectronClassification_ -> Fill( zeeCandidates[myBestZ].second->getRecoElectron()->classification() ); 01239 return kContinue; 01240 } 01241 } 01242 01243 h1_eventsAfterBorderSelection_->Fill(1); 01245 01246 01247 if(class1<100 && class2<100){ 01248 BBZN++; 01249 if(class1==0 && class2==0)BBZN_gg++; 01250 if(class1<21 && class2<21)BBZN_tt++; 01251 if(class1<21 || class2<21)BBZN_t0++; 01252 01253 } 01254 01255 if(class1>=100 && class2>=100){ 01256 EEZN++; 01257 if(class1==100 && class2==100)EEZN_gg++; 01258 if(class1<121 && class2<121)EEZN_tt++; 01259 if(class1<121 || class2<121)EEZN_t0++; 01260 01261 } 01262 01263 if( (class1<100 && class2>=100) || (class2<100 && class1>=100)){ 01264 EBZN++; 01265 if( (class1==0 && class2==100)||(class2==0 && class1==100) )EBZN_gg++; 01266 if( ( class1<21 && class2<121) ||(class2<21 && class1<121) )EBZN_tt++; 01267 if( class2<21 || class1<21 || class2<121 || class1<121 )EBZN_t0++; 01268 } 01269 01270 01272 01273 if(myBestZ == -1) 01274 return kContinue; 01275 01276 01277 bool invMassBool = ( (mass > minInvMassCut_) && (mass < maxInvMassCut_) ); 01278 01279 bool selectionBool=false; 01280 //0 = all electrons (but no crack) 01281 01283 01284 float theta1 = 2. * atan( exp(- zeeCandidates[myBestZ].first->getRecoElectron()->superCluster()->eta()) ); 01285 bool ET_1 = ( (zeeCandidates[myBestZ].first->getRecoElectron()->superCluster()->energy() * sin( theta1) ) > 20.); 01286 01287 float theta2 = 2. * atan( exp(- zeeCandidates[myBestZ].second->getRecoElectron()->superCluster()->eta()) ); 01288 bool ET_2 = ( (zeeCandidates[myBestZ].second->getRecoElectron()->superCluster()->energy() * sin( theta2) ) > 20.); 01289 01290 01291 bool HoE_1 = (zeeCandidates[myBestZ].first->getRecoElectron()->hadronicOverEm() < 0.115); 01292 bool HoE_2 = (zeeCandidates[myBestZ].second->getRecoElectron()->hadronicOverEm() < 0.115); 01293 01294 bool DeltaPhiIn_1 = ( zeeCandidates[myBestZ].first->getRecoElectron()->deltaPhiSuperClusterTrackAtVtx() < 0.090); 01295 bool DeltaPhiIn_2 = ( zeeCandidates[myBestZ].second->getRecoElectron()->deltaPhiSuperClusterTrackAtVtx() < 0.090); 01296 01297 bool DeltaEtaIn_1 = ( zeeCandidates[myBestZ].first->getRecoElectron()->deltaEtaSuperClusterTrackAtVtx() < 0.0090); 01298 bool DeltaEtaIn_2 = ( zeeCandidates[myBestZ].second->getRecoElectron()->deltaEtaSuperClusterTrackAtVtx() < 0.0090); 01299 01300 h1_eventsBeforeEWKSelection_->Fill(1); 01301 01302 if(! (invMassBool && 01303 ET_1 && ET_2 && 01304 HoE_1 && HoE_2 && 01305 DeltaPhiIn_1 && DeltaPhiIn_2 && 01306 DeltaEtaIn_1 && DeltaEtaIn_2 01307 ) ) 01308 return kContinue; 01310 01311 h1_eventsAfterEWKSelection_->Fill(1); 01312 01314 01315 01316 01317 if(electronSelection_==0)selectionBool=( myBestZ != -1 && 01318 zeeCandidates[myBestZ].first->getRecoElectron()->classification()!= 40 && 01319 zeeCandidates[myBestZ].first->getRecoElectron()->classification()!= 40 && 01320 zeeCandidates[myBestZ].second->getRecoElectron()->classification()!= 40 && 01321 zeeCandidates[myBestZ].second->getRecoElectron()->classification()!= 140); 01322 01323 //1 = all electrons are Golden, BB or Narrow 01324 01325 if(electronSelection_==1)selectionBool=( myBestZ != -1 && 01326 (zeeCandidates[myBestZ].first->getRecoElectron()->classification() ==0 || 01327 zeeCandidates[myBestZ].first->getRecoElectron()->classification() ==10 || 01328 zeeCandidates[myBestZ].first->getRecoElectron()->classification() ==20 || 01329 zeeCandidates[myBestZ].first->getRecoElectron()->classification() ==100 || 01330 zeeCandidates[myBestZ].first->getRecoElectron()->classification() ==110 || 01331 zeeCandidates[myBestZ].first->getRecoElectron()->classification() ==120 01332 ) && 01333 (zeeCandidates[myBestZ].second->getRecoElectron()->classification() == 0 || 01334 zeeCandidates[myBestZ].second->getRecoElectron()->classification() == 10 || 01335 zeeCandidates[myBestZ].second->getRecoElectron()->classification() == 20 || 01336 zeeCandidates[myBestZ].second->getRecoElectron()->classification() == 100 || 01337 zeeCandidates[myBestZ].second->getRecoElectron()->classification() == 110 || 01338 zeeCandidates[myBestZ].second->getRecoElectron()->classification() == 120 01339 ) 01340 ); 01341 01342 //2 = all electrons are Golden 01343 if(electronSelection_==2)selectionBool=( myBestZ != -1 && 01344 (zeeCandidates[myBestZ].first->getRecoElectron()->classification() == 0 || 01345 zeeCandidates[myBestZ].first->getRecoElectron()->classification() == 100 01346 ) && 01347 (zeeCandidates[myBestZ].second->getRecoElectron()->classification() == 0 || 01348 zeeCandidates[myBestZ].second->getRecoElectron()->classification() == 100 01349 ) 01350 ); 01351 //3 = all electrons are showering 01352 if(electronSelection_==3)selectionBool=( myBestZ != -1 && 01353 ( 01354 (zeeCandidates[myBestZ].first->getRecoElectron()->classification() >=30 && 01355 zeeCandidates[myBestZ].first->getRecoElectron()->classification() <=34) 01356 || 01357 ((zeeCandidates[myBestZ].first->getRecoElectron()->classification() >=130 && 01358 zeeCandidates[myBestZ].first->getRecoElectron()->classification() <=134)) 01359 ) 01360 && 01361 ( (zeeCandidates[myBestZ].second->getRecoElectron()->classification() >=30 && 01362 zeeCandidates[myBestZ].second->getRecoElectron()->classification() <=34) 01363 || 01364 ((zeeCandidates[myBestZ].second->getRecoElectron()->classification() >=130 && 01365 zeeCandidates[myBestZ].second->getRecoElectron()->classification() <=134)) 01366 ) 01367 01368 ); 01369 01370 //4 = all Barrel electrons are Golden, BB or Narrow; take all Endcap electrons 01371 01372 if(electronSelection_==4)selectionBool=( myBestZ != -1 && 01373 ( 01374 01375 ( 01376 (zeeCandidates[myBestZ].first->getRecoElectron()->classification() ==0 || 01377 zeeCandidates[myBestZ].first->getRecoElectron()->classification() ==10 || 01378 zeeCandidates[myBestZ].first->getRecoElectron()->classification() ==20 01379 ) && zeeCandidates[myBestZ].second->getRecoElectron()->classification()>=100 01380 && zeeCandidates[myBestZ].second->getRecoElectron()->classification()!=140 01381 ) 01382 01383 || 01384 01385 ( 01386 (zeeCandidates[myBestZ].second->getRecoElectron()->classification() ==0 || 01387 zeeCandidates[myBestZ].second->getRecoElectron()->classification() ==10 || 01388 zeeCandidates[myBestZ].second->getRecoElectron()->classification() ==20 01389 ) && zeeCandidates[myBestZ].first->getRecoElectron()->classification()>=100 01390 && zeeCandidates[myBestZ].first->getRecoElectron()->classification()!=140 01391 ) 01392 01393 01394 ) 01395 ); 01396 01397 //5 = all Endcap electrons (but no crack) 01398 01399 if(electronSelection_==5)selectionBool=( myBestZ != -1 && 01400 zeeCandidates[myBestZ].first->getRecoElectron()->classification()>=100 && 01401 zeeCandidates[myBestZ].second->getRecoElectron()->classification()>= 100 && 01402 zeeCandidates[myBestZ].first->getRecoElectron()->classification()!= 140 && 01403 zeeCandidates[myBestZ].second->getRecoElectron()->classification()!= 140); 01404 01405 //6 = all Barrel electrons (but no crack) 01406 01407 if(electronSelection_==6)selectionBool=( myBestZ != -1 && 01408 zeeCandidates[myBestZ].first->getRecoElectron()->classification()<100 && 01409 zeeCandidates[myBestZ].second->getRecoElectron()->classification()< 100 && 01410 zeeCandidates[myBestZ].first->getRecoElectron()->classification()!= 40 && 01411 zeeCandidates[myBestZ].second->getRecoElectron()->classification()!= 40); 01412 01413 //7 = this eliminates the events which have 1 ele in the Barrel and 1 in the Endcap 01414 01415 if(electronSelection_==7)selectionBool=( myBestZ != -1 && 01416 !(zeeCandidates[myBestZ].first->getRecoElectron()->classification()<100 && 01417 zeeCandidates[myBestZ].second->getRecoElectron()->classification()>=100) && 01418 !(zeeCandidates[myBestZ].first->getRecoElectron()->classification()>=100 && 01419 zeeCandidates[myBestZ].second->getRecoElectron()->classification()<100) ); 01420 01421 01422 float ele1EnergyCorrection(1.); 01423 float ele2EnergyCorrection(1.); 01424 01425 if(invMassBool && selectionBool && wantEtaCorrection_){ 01426 01427 ele1EnergyCorrection=getEtaCorrection(zeeCandidates[myBestZ].first->getRecoElectron()); 01428 ele2EnergyCorrection=getEtaCorrection(zeeCandidates[myBestZ].second->getRecoElectron()); 01429 01430 } 01431 01432 if (invMassBool && selectionBool) 01433 { 01434 01435 h1_electronCosTheta_SC_ -> Fill( ZeeKinematicTools::cosThetaElectrons_SC(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection) ); 01436 h1_electronCosTheta_TK_ -> Fill( ZeeKinematicTools::cosThetaElectrons_TK(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection) ); 01437 h1_electronCosTheta_SC_TK_ -> Fill( ZeeKinematicTools::cosThetaElectrons_SC(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection)/ZeeKinematicTools::cosThetaElectrons_TK(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection) - 1. ); 01438 01439 if (!mcProducer_.empty()) 01440 { 01441 h1_zMassResol_ ->Fill(mass-myGenZMass); 01442 01443 //reco-mc association map - begin 01444 01445 std::map<HepMC::GenParticle*,const reco::PixelMatchGsfElectron*> myMCmap; 01446 01447 std::vector<const reco::PixelMatchGsfElectron*> dauElectronCollection; 01448 01449 dauElectronCollection.push_back(zeeCandidates[myBestZ].first->getRecoElectron() ); 01450 dauElectronCollection.push_back(zeeCandidates[myBestZ].second->getRecoElectron() ); 01451 01452 fillMCmap(&dauElectronCollection,mcEle,myMCmap); 01453 fillEleInfo(mcEle,myMCmap); 01454 //h_DiffZMassDistr_[loopFlag_]->Fill( (mass-myGenZMass) ); 01455 } 01456 01457 //PUT f(eta) IN OUR Zee ALGORITHM 01458 theAlgorithm_->addEvent(zeeCandidates[myBestZ].first, zeeCandidates[myBestZ].second,MZ*sqrt(ele1EnergyCorrection*ele2EnergyCorrection) ); 01459 01460 h1_reco_ZMass_->Fill(ZeeKinematicTools::calculateZMass_withTK(zeeCandidates[myBestZ])); 01461 01462 h1_reco_ZMassCorr_->Fill(ZeeKinematicTools::calculateZMassWithCorrectedElectrons_withTK(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection)); 01463 01464 if(zeeCandidates[myBestZ].first->getRecoElectron()->classification()<100 && zeeCandidates[myBestZ].second->getRecoElectron()->classification()<100 ) 01465 h1_reco_ZMassCorrBB_->Fill(ZeeKinematicTools::calculateZMassWithCorrectedElectrons_withTK(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection)); 01466 01467 01468 if(zeeCandidates[myBestZ].first->getRecoElectron()->classification()>=100 && zeeCandidates[myBestZ].second->getRecoElectron()->classification()>=100 ) 01469 h1_reco_ZMassCorrEE_->Fill(ZeeKinematicTools::calculateZMassWithCorrectedElectrons_withTK(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection)); 01470 01471 01472 mass4tree = ZeeKinematicTools::calculateZMassWithCorrectedElectrons_withTK(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection); 01473 01474 massDiff4tree = ZeeKinematicTools::calculateZMassWithCorrectedElectrons_withTK(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection) - myGenZMass; 01475 01476 // h_ZMassDistr_[loopFlag_]->Fill(ZeeKinematicTools::calculateZMassWithCorrectedElectrons_withTK(zeeCandidates[myBestZ],ele1EnergyCorrection,ele2EnergyCorrection)); 01477 01478 myTree->Fill(); 01479 01480 } 01481 01482 01483 01484 #ifdef DEBUG 01485 std::cout << "Added event to algorithm" << std::endl; 01486 #endif 01487 01488 return kContinue; 01489 }
void ZeeCalibration::endOfJob | ( | ) | [virtual] |
Called at end of job.
if not ETA_ET MODE - begin
if not ETA_ET MODE - end
Reimplemented from edm::EDLooper.
Definition at line 344 of file ZeeCalibration.cc.
References aa, funct::abs(), calibCoeff, calibCoeffError, calibMode_, coefficientDistanceAtIteration, GenMuonPlsPt100GeV_cfg::cout, EcalBarrel, EcalEndcap, lat::endl(), ZIterativeAlgorithmWithFit::getHistos(), ZIterativeAlgorithmWithFit::getNumberOfChannels(), ZIterativeAlgorithmWithFit::getNumberOfIterations(), h1_borderElectronClassification_, h1_eleClasses_, h1_electronCosTheta_SC_, h1_electronCosTheta_SC_TK_, h1_electronCosTheta_TK_, h1_eleEtaResol_, h1_elePhiResol_, h1_eventsAfterBorderSelection_, h1_eventsAfterEWKSelection_, h1_eventsBeforeBorderSelection_, h1_eventsBeforeEWKSelection_, h1_mc_, h1_mcEB_, h1_mcEE_, h1_occupancy_, h1_occupancyBarrel_, h1_occupancyEndcap_, h1_occupancyVsEta_, h1_preshowerOverSC_, h1_reco_ZMass_, h1_reco_ZMassCorr_, h1_reco_ZMassCorrBB_, h1_reco_ZMassCorrEE_, h1_seedOverSC_, h1_weightSumMeanBarrel_, h1_weightSumMeanEndcap_, h1_ZCandMult_, h1_zEtaResol_, h1_zMassResol_, h1_zPhiResol_, h2_chi2_, h2_coeffVsEta_, h2_coeffVsEtaGrouped_, h2_coeffVsLoop_, h2_fEtaBarrelBad_, h2_fEtaBarrelGood_, h2_fEtaEndcapBad_, h2_fEtaEndcapGood_, h2_iterations_, h2_miscalRecal_, h2_miscalRecalEB_, h2_miscalRecalEE_, h2_residualSigma_, h2_xtalMiscalibCoeffBarrel_, h2_xtalMiscalibCoeffEndcapMinus_, h2_xtalMiscalibCoeffEndcapPlus_, h2_zMassDiffVsLoop_, h2_zMassVsLoop_, h2_zWidthVsLoop_, h_eleEffEta_, h_eleEffPhi_, h_eleEffPt_, h_ESCcorrEtrue_, h_ESCcorrEtrueVsEta_, h_ESCEtrue_, h_ESCEtrueVsEta_, i, ical, id, initCalibCoeff, EEDetId::IX_MAX, EEDetId::IX_MIN, EEDetId::IY_MAX, EEDetId::IY_MIN, j, k, loopArray, EBDetId::MAX_IETA, EBDetId::MAX_IPHI, mean(), EBDetId::MIN_IPHI, myTree, myZeePlots_, funct::num(), outputFile_, funct::pow(), printStatistics(), DetId::rawId(), ringNumberCorrector(), sigmaArray, sigmaErrorArray, funct::sqrt(), theAlgorithm_, theMaxLoops, EEDetId::validDetId(), EBDetId::validDetId(), ZIterativeAlgorithmWithFit::ZIterativeAlgorithmWithFitPlots::weightedRescaleFactor, ZeePlots::writeEleHistograms(), calibXMLwriter::writeLine(), ZeePlots::writeMCEleHistograms(), ZeePlots::writeMCZHistograms(), and ZeePlots::writeZHistograms().
00344 { 00345 00346 00347 printStatistics(); 00348 00349 if(calibMode_ != "ETA_ET_MODE"){ 00350 00352 00353 //Writing out calibration coefficients 00354 calibXMLwriter* barrelWriter = new calibXMLwriter(EcalBarrel); 00355 for(int ieta=-EBDetId::MAX_IETA; ieta<=EBDetId::MAX_IETA ;++ieta) { 00356 if(ieta==0) continue; 00357 for(int iphi=EBDetId::MIN_IPHI; iphi<=EBDetId::MAX_IPHI; ++iphi) { 00358 // make an EBDetId since we need EBDetId::rawId() to be used as the key for the pedestals 00359 if (EBDetId::validDetId(ieta,iphi)) 00360 { 00361 EBDetId ebid(ieta,iphi); 00362 barrelWriter->writeLine(ebid,* (ical->getMap().find(ebid.rawId()) )); 00363 } 00364 } 00365 } 00366 00367 00368 00369 calibXMLwriter* endcapWriter = new calibXMLwriter(EcalEndcap); 00370 for(int iX=EEDetId::IX_MIN; iX<=EEDetId::IX_MAX ;++iX) { 00371 for(int iY=EEDetId::IY_MIN; iY<=EEDetId::IY_MAX; ++iY) { 00372 // make an EEDetId since we need EEDetId::rawId() to be used as the key for the pedestals 00373 if (EEDetId::validDetId(iX,iY,1)) 00374 { 00375 EEDetId eeid(iX,iY,1); 00376 endcapWriter->writeLine(eeid,*(ical->getMap().find(eeid.rawId()) ) ); 00377 } 00378 if (EEDetId::validDetId(iX,iY,-1)) 00379 { 00380 EEDetId eeid(iX,iY,-1); 00381 endcapWriter->writeLine(eeid, *(ical->getMap().find(eeid.rawId())) ); 00382 } 00383 00384 } 00385 } 00386 00387 00388 } 00389 00390 std::cout<<"Writing histos..."<<std::endl; 00391 outputFile_->cd(); 00392 00393 // zeeplts->Write(); 00394 00395 h1_eventsBeforeEWKSelection_ ->Write(); 00396 h1_eventsAfterEWKSelection_ ->Write(); 00397 00398 h1_eventsBeforeBorderSelection_ ->Write(); 00399 h1_eventsAfterBorderSelection_ ->Write(); 00400 00401 h1_borderElectronClassification_->Write(); 00402 00403 h2_xtalMiscalibCoeffBarrel_->Write(); 00404 h2_xtalMiscalibCoeffEndcapMinus_->Write(); 00405 h2_xtalMiscalibCoeffEndcapPlus_->Write(); 00406 00407 h1_electronCosTheta_SC_->Write(); 00408 h1_electronCosTheta_TK_->Write(); 00409 h1_electronCosTheta_SC_TK_->Write(); 00410 00411 h1_zMassResol_->Write(); 00412 h1_zEtaResol_->Write(); 00413 h1_zPhiResol_->Write(); 00414 h1_eleEtaResol_->Write(); 00415 h1_elePhiResol_->Write(); 00416 h1_seedOverSC_ ->Write(); 00417 h1_preshowerOverSC_ ->Write(); 00418 00419 for(int i =0; i<25; i++){ 00420 if( i < theMaxLoops ){ 00421 00422 h_ESCEtrueVsEta_[i]->Write(); 00423 h_ESCEtrue_[i]->Write(); 00424 00425 h_ESCcorrEtrueVsEta_[i]->Write(); 00426 h_ESCcorrEtrue_[i]->Write(); 00427 00428 h2_chi2_[i]->Write(); 00429 h2_iterations_[i]->Write(); 00430 00431 // h_DiffZMassDistr_[i]->Write(); 00432 00433 //h_ZMassDistr_[i]->Write(); 00434 } 00435 } 00436 00437 h2_fEtaBarrelGood_->Write(); 00438 h2_fEtaBarrelBad_->Write(); 00439 h2_fEtaEndcapGood_->Write(); 00440 h2_fEtaEndcapBad_->Write(); 00441 h1_eleClasses_->Write(); 00442 00443 h_eleEffEta_[0]->Write(); 00444 h_eleEffPhi_[0]->Write(); 00445 h_eleEffPt_[0]->Write(); 00446 00447 h_eleEffEta_[1]->Write(); 00448 h_eleEffPhi_[1]->Write(); 00449 h_eleEffPt_[1]->Write(); 00450 00451 00452 int j = 0; 00453 00454 int flag=0; 00455 00456 Double_t mean[25] = {0.}; 00457 Double_t num[25] = {0.}; 00458 Double_t meanErr[25] = {0.}; 00459 Float_t rms[25] = {0.}; 00460 Float_t tempRms[10][25]; 00461 00462 for(int ia = 0; ia<10; ia++){ 00463 for(int ib = 0; ib<25; ib++){ 00464 00465 tempRms[ia][ib] = 0.; 00466 00467 } 00468 } 00469 00470 int aa = 0; 00471 00472 for( int k = 0; k<theAlgorithm_->getNumberOfChannels(); k++ ) 00473 { 00474 00475 00476 00478 bool isNearCrack = false; 00479 00480 if( calibMode_ == "RING"){ 00481 00482 isNearCrack = ( abs( ringNumberCorrector(k) ) == 1 || abs( ringNumberCorrector(k) ) == 25 || 00483 abs( ringNumberCorrector(k) ) == 26 || abs( ringNumberCorrector(k) ) == 45 || 00484 abs( ringNumberCorrector(k) ) == 46 || abs( ringNumberCorrector(k) ) == 65 || 00485 abs( ringNumberCorrector(k) ) == 66 || abs( ringNumberCorrector(k) ) == 85 || 00486 abs( ringNumberCorrector(k) ) == 86 || abs( ringNumberCorrector(k) ) == 124 ); 00487 } 00488 00489 if(k<85) 00490 { 00491 00492 if((k+1)%5!=0) 00493 { 00494 00495 if(!isNearCrack){ 00496 mean[j]+=calibCoeff[k]; 00497 mean[j]+=calibCoeff[169 - k]; 00498 00499 num[j] += 2.; 00500 00501 //meanErr[j]+= calibCoeffError[k]; 00502 //meanErr[j]+= calibCoeffError[169 - k]; 00503 00504 meanErr[j]+= 1./ pow ( calibCoeffError[k], 2 ); 00505 meanErr[j]+= 1./ pow ( calibCoeffError[169 - k], 2); 00506 00507 00508 tempRms[aa][j]+=calibCoeff[k]; 00509 aa++; 00510 tempRms[aa][j]+=calibCoeff[169 - k]; 00511 aa++; 00512 } 00513 } 00514 00515 else { 00516 if(!isNearCrack){ 00517 mean[j]+=calibCoeff[k]; 00518 mean[j]+=calibCoeff[169 - k]; 00519 00520 num[j] += 2.; 00521 00522 //meanErr[j]+= calibCoeffError[k]; 00523 //meanErr[j]+= calibCoeffError[169 - k]; 00524 00525 meanErr[j]+= 1./ pow ( calibCoeffError[k], 2 ); 00526 meanErr[j]+= 1./ pow ( calibCoeffError[169 - k], 2); 00527 00528 tempRms[aa][j]+=calibCoeff[k]; 00529 aa++; 00530 tempRms[aa][j]+=calibCoeff[169 - k]; 00531 aa++; 00532 00533 } 00534 j++; 00535 aa = 0; 00536 00537 } 00538 00539 } 00540 //EE begin 00541 00542 00543 if(k>=170 && k<=204){ 00544 00545 if(flag<4){ 00546 //make groups of 5 Xtals in #eta 00547 mean[j]+=calibCoeff[k]/10.; 00548 mean[j]+=calibCoeff[k+39]/10.; 00549 00550 meanErr[j]+= calibCoeffError[k]/30.; 00551 meanErr[j]+= calibCoeffError[k + 39]/30.; 00552 00553 00554 tempRms[aa][j]+=calibCoeff[k]; 00555 aa++; 00556 tempRms[aa][j]+=calibCoeff[k + 39]; 00557 aa++; 00558 00559 flag++; 00560 } 00561 00562 else if(flag==4){ 00563 //make groups of 5 Xtals in #eta 00564 mean[j]+=calibCoeff[k]/10.; 00565 mean[j]+=calibCoeff[k+39]/10.; 00566 00567 meanErr[j]+= calibCoeffError[k]/30.; 00568 meanErr[j]+= calibCoeffError[k + 39]/30.; 00569 00570 tempRms[aa][j]+=calibCoeff[k]; 00571 aa++; 00572 tempRms[aa][j]+=calibCoeff[k + 39]; 00573 aa++; 00574 00575 flag=0; 00576 // std::cout<<" index(>85) "<<k<<" j is "<<j<<" mean[j] is "<<mean[j]<<std::endl; 00577 j++; 00578 aa = 0; 00579 00580 } 00581 00582 } 00583 if(k>=205 && k<=208){ 00584 mean[j]+=calibCoeff[k]/8.; 00585 mean[j]+=calibCoeff[k+39]/8.; 00586 00587 meanErr[j]+= calibCoeffError[k]/30.; 00588 meanErr[j]+= calibCoeffError[k + 39]/30.; 00589 00590 00591 tempRms[aa][j]+=calibCoeff[k]; 00592 aa++; 00593 tempRms[aa][j]+=calibCoeff[k + 39]; 00594 aa++; 00595 } 00596 //EE end 00597 00598 /* 00599 for(int jj =0; jj< 25; jj++){ 00600 if(meanErr[jj] > 0.) 00601 cout<<" meanErr[jj] before sqrt: "<<meanErr[jj]<<endl; 00602 00603 meanErr[jj] = 1./sqrt( meanErr[jj] ); 00604 00605 cout<<" meanErr[jj] after sqrt: "<<meanErr[jj]<<endl; 00606 } 00607 */ 00608 00609 00610 00611 if(!isNearCrack){ 00612 h2_coeffVsEta_->Fill( ringNumberCorrector(k), calibCoeff[k] ); 00613 h2_miscalRecal_->Fill( initCalibCoeff[k], 1./calibCoeff[k] ); 00614 h1_mc_->Fill( initCalibCoeff[k]*calibCoeff[k] -1. ); 00615 00616 00617 00618 if(k<170){ 00619 h2_miscalRecalEB_->Fill( initCalibCoeff[k], 1./calibCoeff[k] ); 00620 h1_mcEB_->Fill( initCalibCoeff[k]*calibCoeff[k] -1. ); 00621 } 00622 00623 if(k>=170){ 00624 h2_miscalRecalEE_->Fill( initCalibCoeff[k], 1./calibCoeff[k] ); 00625 h1_mcEE_->Fill( initCalibCoeff[k]*calibCoeff[k] -1. ); 00626 } 00627 00628 } 00629 } 00630 00631 for(int ic = 0; ic< 17; ic++){ 00632 00633 mean[ic] = mean[ic] / num[ic]; //find mean of recalib coeff on group of rings 00634 //meanErr[ic] = meanErr[ic] / ( sqrt( num[ic] ) * num[ic] ); //find mean of recalib coeff on group of rings 00635 meanErr[ic] = 1. / sqrt(meanErr[ic]); //find mean of recalib coeff on group of rings 00636 00637 } 00638 00639 00640 //build array of RMS 00641 for(int ic = 0; ic< 25; ic++){ 00642 for(int id = 0; id< 10; id++){ 00643 00644 if(tempRms[id][ic] > 0.){ 00645 00646 rms[ic] += (tempRms[id][ic] - mean[j])*(tempRms[id][ic] - mean[j]); 00647 00648 } 00649 } 00650 rms[ic]/= 10.;//this is approximate 00651 rms[ic] = sqrt(rms[ic]); 00652 } 00653 00654 //build array of RMS 00655 00656 00657 00658 Double_t xtalEta[25] = {1.4425, 1.3567,1.2711,1.1855, 00659 1.10,1.01,0.92,0.83, 00660 0.7468,0.6612,0.5756,0.4897,0.3985,0.3117,0.2250,0.1384,0.0487, 00661 1.546, 1.651, 1.771, 1.908, 2.071, 2.267, 2.516, 2.8}; 00662 00663 Double_t zero[25] = {0.026};//interval/sqrt(12) 00664 00665 for(int j = 0; j <25; j++) 00666 h2_coeffVsEtaGrouped_->Fill( xtalEta[j],mean[j]); 00667 00668 // for(int sho = 0; sho <25; sho++) 00669 //cout<<"xtalEta[j] "<< xtalEta[sho]<<" mean[j] "<<mean[sho]<<" err[j] "<<meanErr[sho]<<endl; 00670 00671 TProfile *px = h2_coeffVsEta_->ProfileX("coeffVsEtaProfile"); 00672 px->SetXTitle("Eta channel"); 00673 px->SetYTitle("recalibCoeff"); 00674 px->Write(); 00675 00676 h2_coeffVsEta_->Write(); 00677 h2_coeffVsEtaGrouped_->Write(); 00678 h2_zMassVsLoop_->Write(); 00679 h2_zMassDiffVsLoop_->Write(); 00680 h2_zWidthVsLoop_->Write(); 00681 h2_coeffVsLoop_->Write(); 00682 h2_miscalRecal_->Write(); 00683 h1_mc_->Write(); 00684 h2_miscalRecalEB_->Write(); 00685 h1_mcEB_->Write(); 00686 h2_miscalRecalEE_->Write(); 00687 h1_mcEE_->Write(); 00688 00689 h2_residualSigma_->Write(); 00690 00691 const ZIterativeAlgorithmWithFit::ZIterativeAlgorithmWithFitPlots* algoHistos=theAlgorithm_->getHistos(); 00692 00693 double weightSumMeanBarrel = 0.; 00694 double weightSumMeanEndcap = 0.; 00695 00696 for (int iIteration=0;iIteration<theAlgorithm_->getNumberOfIterations();iIteration++) 00697 for (int iChannel=0;iChannel<theAlgorithm_->getNumberOfChannels();iChannel++) 00698 { 00699 00700 if( iIteration==(theAlgorithm_->getNumberOfIterations()-1) ){ 00701 00702 if(iChannel < 170) 00703 weightSumMeanBarrel += algoHistos->weightedRescaleFactor[iIteration][iChannel]->Integral()/170.; 00704 00705 if(iChannel >= 170) 00706 weightSumMeanEndcap += algoHistos->weightedRescaleFactor[iIteration][iChannel]->Integral()/78.; 00707 00708 h1_occupancyVsEta_->Fill((Double_t)ringNumberCorrector(iChannel), algoHistos->weightedRescaleFactor[iIteration][iChannel]->Integral() ); 00709 00710 00711 h1_occupancy_->Fill( algoHistos->weightedRescaleFactor[iIteration][iChannel]->Integral() ); 00712 00713 if(iChannel < 170) 00714 h1_occupancyBarrel_->Fill( algoHistos->weightedRescaleFactor[iIteration][iChannel]->Integral() ); 00715 00716 if(iChannel >= 170) 00717 h1_occupancyEndcap_->Fill( algoHistos->weightedRescaleFactor[iIteration][iChannel]->Integral() ); 00718 00719 #ifdef DEBUG 00720 std::cout<<"Writing weighted integral for channel "<<ringNumberCorrector(iChannel)<<" ,value "<<algoHistos->weightedRescaleFactor[iIteration][iChannel]->Integral()<<std::endl; 00721 #endif 00722 00723 } 00724 00725 } 00726 00727 // std::cout<<"Done! Closing output file... "<<std::endl; 00728 00729 h1_weightSumMeanBarrel_ ->Fill(weightSumMeanBarrel); 00730 h1_weightSumMeanEndcap_ ->Fill(weightSumMeanEndcap); 00731 00732 std::cout<<"Weight sum mean on channels in Barrel is :"<<weightSumMeanBarrel<<std::endl; 00733 std::cout<<"Weight sum mean on channels in Endcap is :"<<weightSumMeanEndcap<<std::endl; 00734 00735 h1_weightSumMeanBarrel_ ->Write(); 00736 h1_weightSumMeanEndcap_ ->Write(); 00737 00738 h1_occupancyVsEta_->Write(); 00739 h1_occupancy_->Write(); 00740 h1_occupancyBarrel_->Write(); 00741 h1_occupancyEndcap_->Write(); 00742 00743 myTree->Write(); 00744 00745 TGraphErrors* graph = new TGraphErrors(25,xtalEta,mean,zero,meanErr); 00746 graph->Draw("APL"); 00747 graph->Write(); 00748 00749 double zero50[50] = { 0. }; 00750 00751 TGraphErrors* residualSigmaGraph = new TGraphErrors(50,loopArray,sigmaArray,zero50,sigmaErrorArray); 00752 residualSigmaGraph->SetName("residualSigmaGraph"); 00753 residualSigmaGraph->Draw("APL"); 00754 residualSigmaGraph->Write(); 00755 00756 TGraphErrors* coefficientDistanceAtIterationGraph = new TGraphErrors(50,loopArray,coefficientDistanceAtIteration,zero50,zero50); 00757 coefficientDistanceAtIterationGraph->SetName("coefficientDistanceAtIterationGraph"); 00758 coefficientDistanceAtIterationGraph->Draw("APL"); 00759 coefficientDistanceAtIterationGraph->Write(); 00760 00761 Float_t noError[250] = {0.}; 00762 00763 Float_t ringInd[250]; 00764 for(int i =0; i<250; i++) 00765 ringInd[i]=ringNumberCorrector(i); 00766 00767 TGraphErrors* graphCoeff = new TGraphErrors(theAlgorithm_->getNumberOfChannels(),ringInd,calibCoeff,noError,calibCoeffError); 00768 graphCoeff->SetName("graphCoeff"); 00769 graphCoeff->Draw("APL"); 00770 graphCoeff->Write(); 00771 00772 // outputFile_->Write();//this automatically writes all histos on file 00773 00774 00775 h1_ZCandMult_->Write(); 00776 h1_reco_ZMass_->Write(); 00777 00778 h1_reco_ZMassCorr_->Write(); 00779 h1_reco_ZMassCorrBB_->Write(); 00780 h1_reco_ZMassCorrEE_->Write(); 00781 00782 outputFile_->Close(); 00783 00784 myZeePlots_ ->writeEleHistograms(); 00785 myZeePlots_ ->writeMCEleHistograms(); 00786 myZeePlots_ ->writeZHistograms(); 00787 myZeePlots_ ->writeMCZHistograms(); 00788 00789 // myZeeRescaleFactorPlots_ = new ZeeRescaleFactorPlots("zeeRescaleFactorPlots.root"); 00790 //myZeeRescaleFactorPlots_->writeHistograms( theAlgorithm_ ); 00791 00792 // delete myZeeRescaleFactorPlots_; 00793 00794 00795 00796 }
edm::EDLooper::Status ZeeCalibration::endOfLoop | ( | const edm::EventSetup & | iSetup, | |
unsigned int | iLoop | |||
) | [virtual] |
Called at end of loop.
Implements edm::EDLooper.
Definition at line 1515 of file ZeeCalibration.cc.
References funct::abs(), calibCoeff, calibCoeffError, calibMode_, coefficientDistanceAtIteration, computeCoefficientDistanceAtIteration(), GenMuonPlsPt100GeV_cfg::cout, EcalBarrel, EcalEndcap, lat::endl(), ZIterativeAlgorithmWithFit::gausfit(), EcalRingCalibrationTools::getDetIdsInECAL(), EcalRingCalibrationTools::getDetIdsInModule(), EcalRingCalibrationTools::getDetIdsInRing(), ZIterativeAlgorithmWithFit::getNumberOfChannels(), ZIterativeAlgorithmWithFit::getOptimizedChiSquare(), ZIterativeAlgorithmWithFit::getOptimizedCoefficients(), ZIterativeAlgorithmWithFit::getOptimizedCoefficientsError(), ZIterativeAlgorithmWithFit::getOptimizedIterations(), ZIterativeAlgorithmWithFit::getWeightSum(), h1_mcEBParz_, h1_mcEEParz_, h1_mcParz_, h1_reco_ZMass_, h2_chi2_, h2_iterations_, h2_residualSigma_, h2_xtalRecalibCoeffBarrel_, h2_xtalRecalibCoeffEndcapMinus_, h2_xtalRecalibCoeffEndcapPlus_, h2_zMassDiffVsLoop_, h2_zMassVsLoop_, h2_zWidthVsLoop_, ical, EBDetId::ieta(), initCalibCoeff, EBDetId::iphi(), ZIterativeAlgorithmWithFit::iterate(), EEDetId::ix(), EEDetId::iy(), k, edm::EDLooper::kContinue, edm::EDLooper::kStop, loopArray, loopFlag_, MZ, NewCalibCoeff, outputFile_, funct::pow(), ringNumberCorrector(), sigmaArray, sigmaErrorArray, funct::sqrt(), theAlgorithm_, theMaxLoops, and EEDetId::zside().
01516 { 01517 01518 01519 01520 double par[3]; 01521 double errpar[3]; 01522 double zChi2; 01523 int zIters; 01524 01525 ZIterativeAlgorithmWithFit::gausfit(h1_reco_ZMass_,par,errpar,2.,2., &zChi2, &zIters ); 01526 01527 h2_zMassVsLoop_ -> Fill(loopFlag_, par[1] ); 01528 01529 h2_zMassDiffVsLoop_ -> Fill(loopFlag_, (par[1]-MZ)/MZ ); 01530 01531 h2_zWidthVsLoop_ -> Fill(loopFlag_, par[2] ); 01532 01533 01535 01536 std::cout<< "[ZeeCalibration] Ending loop " << iLoop<<std::endl; 01537 //RUN the algorithm 01538 theAlgorithm_->iterate(); 01539 01540 const std::vector<float>& optimizedCoefficients = theAlgorithm_->getOptimizedCoefficients(); 01541 const std::vector<float>& optimizedCoefficientsError = theAlgorithm_->getOptimizedCoefficientsError(); 01542 const std::vector<float>& weightSum = theAlgorithm_->getWeightSum(); 01543 const std::vector<float>& optimizedChi2 = theAlgorithm_->getOptimizedChiSquare(); 01544 const std::vector<int>& optimizedIterations = theAlgorithm_->getOptimizedIterations(); 01545 01546 01547 //#ifdef DEBUG 01548 std::cout<< "Optimized coefficients " << optimizedCoefficients.size() <<std::endl; 01549 //#endif 01550 01551 // h2_coeffVsLoop_->Fill(loopFlag_, optimizedCoefficients[75]); //show the evolution of just 1 ring coefficient (well chosen...) 01552 01554 for (unsigned int ieta=0;ieta<optimizedCoefficients.size();ieta++) 01555 { 01556 NewCalibCoeff[ieta] = calibCoeff[ieta] * optimizedCoefficients[ieta]; 01557 01558 h2_chi2_[loopFlag_]->Fill( ringNumberCorrector( ieta ), optimizedChi2[ieta] ); 01559 h2_iterations_[loopFlag_]->Fill( ringNumberCorrector( ieta ), optimizedIterations[ieta] ); 01560 01561 } 01563 01564 01565 coefficientDistanceAtIteration[loopFlag_]= computeCoefficientDistanceAtIteration(calibCoeff, NewCalibCoeff, optimizedCoefficients.size() ); 01566 01567 std::cout<<"Iteration # : "<< loopFlag_ << " CoefficientDistanceAtIteration "<< coefficientDistanceAtIteration[loopFlag_] <<std::endl; 01568 std::cout<<"size "<<optimizedCoefficients.size()<<std::endl; 01569 01570 for (unsigned int ieta=0;ieta<optimizedCoefficients.size();ieta++) 01571 { 01572 calibCoeff[ieta] *= optimizedCoefficients[ieta]; 01573 calibCoeffError[ieta] = calibCoeff[ieta] * sqrt ( pow( optimizedCoefficientsError[ieta]/optimizedCoefficients[ieta], 2 ) + pow( calibCoeffError[ieta]/calibCoeff[ieta] , 2 ) ); 01574 //calibCoeffError[ieta] = optimizedCoefficientsError[ieta]; 01575 01576 01577 #ifdef DEBUG 01578 std::cout<< ieta << " " << optimizedCoefficients[ieta] <<std::endl; 01579 #endif 01580 01581 std::vector<DetId> ringIds; 01582 01583 if(calibMode_ == "RING") 01584 ringIds = EcalRingCalibrationTools::getDetIdsInRing(ieta); 01585 01586 if(calibMode_ == "MODULE") 01587 ringIds = EcalRingCalibrationTools::getDetIdsInModule(ieta); 01588 01589 if(calibMode_ == "ABS_SCALE" || calibMode_ == "ETA_ET_MODE" ) 01590 ringIds = EcalRingCalibrationTools::getDetIdsInECAL(); 01591 01592 01593 for (unsigned int iid=0; iid<ringIds.size();++iid){ 01594 01595 if(ringIds[iid].subdetId() == EcalBarrel){ 01596 EBDetId myEBDetId(ringIds[iid]); 01597 h2_xtalRecalibCoeffBarrel_[loopFlag_]->SetBinContent( myEBDetId.ieta() + 86, myEBDetId.iphi(), 100 * (calibCoeff[ieta]*initCalibCoeff[ieta] - 1.) );//fill TH2 with recalibCoeff 01598 01599 } 01600 01601 if(ringIds[iid].subdetId() == EcalEndcap){ 01602 EEDetId myEEDetId(ringIds[iid]); 01603 if(myEEDetId.zside() < 0) 01604 h2_xtalRecalibCoeffEndcapMinus_[loopFlag_]->SetBinContent( myEEDetId.ix(), myEEDetId.iy(), 100 * (calibCoeff[ieta]*initCalibCoeff[ieta] - 1.) );//fill TH2 with recalibCoeff 01605 01606 if(myEEDetId.zside() > 0) 01607 h2_xtalRecalibCoeffEndcapPlus_[loopFlag_]->SetBinContent( myEEDetId.ix(), myEEDetId.iy(), 100 * (calibCoeff[ieta]*initCalibCoeff[ieta] - 1.) );//fill TH2 with recalibCoeff 01608 01609 } 01610 01611 01612 ical->setValue( ringIds[iid], *(ical->getMap().find(ringIds[iid]) ) * optimizedCoefficients[ieta] ); 01613 } 01614 01615 } 01616 01617 01619 01620 for( int k = 0; k<theAlgorithm_->getNumberOfChannels(); k++ ) 01621 { 01622 bool isNearCrack = ( abs( ringNumberCorrector(k) ) == 1 || abs( ringNumberCorrector(k) ) == 25 || 01623 abs( ringNumberCorrector(k) ) == 26 || abs( ringNumberCorrector(k) ) == 45 || 01624 abs( ringNumberCorrector(k) ) == 46 || abs( ringNumberCorrector(k) ) == 65 || 01625 abs( ringNumberCorrector(k) ) == 66 || abs( ringNumberCorrector(k) ) == 85 || 01626 abs( ringNumberCorrector(k) ) == 86 || abs( ringNumberCorrector(k) ) == 124 ); 01627 01628 if(!isNearCrack){ 01629 01630 // h2_miscalRecalParz_[iLoop]->Fill( initCalibCoeff[k], 1./calibCoeff[k] ); 01631 h1_mcParz_[iLoop]->Fill( initCalibCoeff[k]*calibCoeff[k] -1. ); 01632 01633 if(k<170){ 01634 //h2_miscalRecalEBParz_[iLoop]->Fill( initCalibCoeff[k], 1./calibCoeff[k] ); 01635 h1_mcEBParz_[iLoop]->Fill( initCalibCoeff[k]*calibCoeff[k] -1. ); 01636 01637 } 01638 01639 if(k>=170){ 01640 //h2_miscalRecalEEParz_[iLoop]->Fill( initCalibCoeff[k], 1./calibCoeff[k] ); 01641 h1_mcEEParz_[iLoop]->Fill( initCalibCoeff[k]*calibCoeff[k] -1. ); 01642 } 01643 01644 } 01645 } 01646 01647 01649 double parResidual[3]; 01650 double errparResidual[3]; 01651 double zResChi2; 01652 int zResIters; 01653 01654 ZIterativeAlgorithmWithFit::gausfit(h1_mcParz_[iLoop],parResidual,errparResidual,3.,3., &zResChi2, &zResIters); 01655 //h1_mcParz_[iLoop]->Fit("gaus"); 01656 01657 h2_residualSigma_ -> Fill(loopFlag_ + 1, parResidual[2]); 01658 loopArray[loopFlag_] = loopFlag_ + 1; 01659 sigmaArray[loopFlag_] = parResidual[2]; 01660 sigmaErrorArray[loopFlag_] = errparResidual[2]; 01661 01662 std::cout<<"Fit on residuals, sigma is "<<parResidual[2]<<" +/- "<<errparResidual[2]<<std::endl; 01663 01665 outputFile_->cd(); 01666 01667 01668 // h2_miscalRecalParz_[iLoop]->Write(); 01669 h1_mcParz_[iLoop]->Write(); 01670 01671 //h2_miscalRecalEBParz_[iLoop]->Write(); 01672 h1_mcEBParz_[iLoop]->Write(); 01673 01674 //h2_miscalRecalEEParz_[iLoop]->Write(); 01675 h1_mcEEParz_[iLoop]->Write(); 01676 h2_xtalRecalibCoeffBarrel_[loopFlag_] -> Write(); 01677 h2_xtalRecalibCoeffEndcapPlus_[loopFlag_] -> Write(); 01678 h2_xtalRecalibCoeffEndcapMinus_[loopFlag_] -> Write(); 01679 01681 01682 loopFlag_++; 01683 01684 #ifdef DEBUG 01685 std::cout<<" loopFlag_ is "<<loopFlag_<<std::endl; 01686 #endif 01687 01688 if ( iLoop == theMaxLoops-1 || iLoop >= theMaxLoops ) return kStop; 01689 else return kContinue; 01690 }
float ZeeCalibration::EvalDPhi | ( | float | Phi, | |
float | Phi_ref | |||
) | [private] |
Definition at line 2066 of file ZeeCalibration.cc.
References Pi.
02067 { 02068 if (Phi<0) Phi = 2*TMath::Pi() + Phi; 02069 if (Phi_ref<0) Phi_ref = 2*TMath::Pi() + Phi_ref; 02070 return (Phi - Phi_ref); 02071 }
float ZeeCalibration::EvalDR | ( | float | Eta, | |
float | Eta_ref, | |||
float | Phi, | |||
float | Phi_ref | |||
) | [private] |
Definition at line 2053 of file ZeeCalibration.cc.
References Pi, and funct::sqrt().
Referenced by fillMCmap().
02054 { 02055 if (Phi<0) Phi = 2*TMath::Pi() + Phi; 02056 if (Phi_ref<0) Phi_ref = 2*TMath::Pi() + Phi_ref; 02057 float DPhi = Phi - Phi_ref ; 02058 if (fabs(DPhi)>TMath::Pi()) DPhi = 2*TMath::Pi() - fabs(DPhi); 02059 02060 float DEta = Eta - Eta_ref ; 02061 02062 float DR = sqrt( DEta*DEta + DPhi*DPhi ); 02063 return DR; 02064 }
double ZeeCalibration::fEtaBarrelBad | ( | double | scEta | ) | const [private] |
Definition at line 1980 of file ZeeCalibration.cc.
Referenced by getEtaCorrection().
01980 { 01981 01982 float p0 = 1.00153e+00; 01983 float p1 = 3.29331e-02; 01984 float p2 = 1.21187e-03; 01985 01986 double x = (double) fabs(scEta); 01987 01988 return 1. / ( p0 + p1*x*x + p2*x*x*x*x ); 01989 01990 }
double ZeeCalibration::fEtaBarrelGood | ( | double | scEta | ) | const [private] |
Definition at line 2018 of file ZeeCalibration.cc.
Referenced by getEtaCorrection().
02018 { 02019 02020 float p0 = 9.99782e-01 ; 02021 float p1 = 1.26983e-02; 02022 float p2 = 2.16344e-03; 02023 02024 double x = (double) fabs(scEta); 02025 02026 return 1. / ( p0 + p1*x*x + p2*x*x*x*x ); 02027 02028 }
double ZeeCalibration::fEtaEndcapBad | ( | double | scEta | ) | const [private] |
Definition at line 2006 of file ZeeCalibration.cc.
Referenced by getEtaCorrection().
02006 { 02007 02008 float p0 = 1.17382e+00; 02009 float p1 = -6.52319e-02; 02010 float p2 = 6.26108e-03; 02011 02012 double x = (double) fabs(scEta); 02013 02014 return 1. / ( p0 + p1*x*x + p2*x*x*x*x ); 02015 02016 }
double ZeeCalibration::fEtaEndcapGood | ( | double | scEta | ) | const [private] |
Definition at line 1992 of file ZeeCalibration.cc.
Referenced by getEtaCorrection().
01992 { 01993 01994 // f(eta) for the first 3 classes (100, 110 and 120) 01995 // Ivica's new corrections 01/06 01996 float p0 = 1.06819e+00; 01997 float p1 = -1.53189e-02; 01998 float p2 = 4.01707e-04 ; 01999 02000 double x = (double) fabs(scEta); 02001 02002 return 1. / ( p0 + p1*x*x + p2*x*x*x*x ); 02003 02004 }
void ZeeCalibration::fillEleInfo | ( | std::vector< HepMC::GenParticle * > & | a, | |
std::map< HepMC::GenParticle *, const reco::PixelMatchGsfElectron * > & | b | |||
) | [private] |
Definition at line 2073 of file ZeeCalibration.cc.
References e, reco::CaloCluster::energy(), reco::Particle::eta(), getEtaCorrection(), h1_eleEtaResol_, h1_elePhiResol_, h1_preshowerOverSC_, h1_seedOverSC_, h_eleEffEta_, h_eleEffPhi_, h_eleEffPt_, h_ESCcorrEtrue_, h_ESCcorrEtrueVsEta_, h_ESCEtrue_, h_ESCEtrueVsEta_, i, loopFlag_, muonGeometry::perp(), phi, reco::Particle::phi(), reco::CaloCluster::position(), reco::SuperCluster::preshowerEnergy(), reco::SuperCluster::seed(), and reco::GsfElectron::superCluster().
Referenced by duringLoop().
02074 { 02075 02076 for (unsigned int i=0;i<mcEle.size();i++) 02077 { 02078 02079 h_eleEffEta_[0]->Fill(fabs(mcEle[i]->momentum().pseudoRapidity())); 02080 h_eleEffPhi_[0]->Fill(mcEle[i]->momentum().phi()); 02081 h_eleEffPt_[0]->Fill(mcEle[i]->momentum().perp()); 02082 02083 std::map<HepMC::GenParticle*,const reco::PixelMatchGsfElectron*>::const_iterator mIter = associationMap.find(mcEle[i]); 02084 if (mIter == associationMap.end() ) 02085 continue; 02086 02087 if((*mIter).second) 02088 { 02089 const reco::PixelMatchGsfElectron* myEle=(*mIter).second; 02090 02091 h_eleEffEta_[1]->Fill(fabs(mcEle[i]->momentum().pseudoRapidity())); 02092 h_eleEffPhi_[1]->Fill(mcEle[i]->momentum().phi()); 02093 h_eleEffPt_[1]->Fill(mcEle[i]->momentum().perp()); 02094 h1_eleEtaResol_->Fill( myEle->eta() - mcEle[i]->momentum().eta() ); 02095 h1_elePhiResol_->Fill( myEle->phi() - mcEle[i]->momentum().phi() ); 02096 02097 const reco::SuperCluster* mySC=&(*(myEle->superCluster())); 02098 if (/*fabs(mySC->position().eta()) < 2.4*/1) 02099 { 02100 // if(myEle->classification()>=100)std::cout<<"mySC->preshowerEnergy()"<<mySC->preshowerEnergy()<<std::endl; 02101 02102 h_ESCEtrue_[loopFlag_]->Fill(mySC->energy()/mcEle[i]->momentum().e()); 02103 h_ESCEtrueVsEta_[loopFlag_]->Fill(fabs(mySC->position().eta()),mySC->energy()/mcEle[i]->momentum().e()); 02104 02105 double corrSCenergy = ( mySC->energy() )/getEtaCorrection(myEle); 02106 h_ESCcorrEtrue_[loopFlag_]->Fill(corrSCenergy/mcEle[i]->momentum().e()); 02107 h_ESCcorrEtrueVsEta_[loopFlag_]->Fill(fabs(mySC->position().eta()),corrSCenergy/mcEle[i]->momentum().e()); 02108 02109 std::vector<DetId> mySCRecHits = mySC->seed()->getHitsByDetId(); 02110 02111 h1_seedOverSC_->Fill( mySC->seed()->energy() / mySC->energy() ); 02112 h1_preshowerOverSC_->Fill( mySC->preshowerEnergy() / mySC->energy() ); 02113 02114 } 02115 02116 } 02117 } 02118 }
void ZeeCalibration::fillMCInfo | ( | HepMC::GenParticle * | mcele | ) | [private] |
void ZeeCalibration::fillMCmap | ( | const std::vector< const reco::PixelMatchGsfElectron * > * | electronCollection, | |
const std::vector< HepMC::GenParticle * > & | mcEle, | |||
std::map< HepMC::GenParticle *, const reco::PixelMatchGsfElectron * > & | myMCmap | |||
) | [private] |
Definition at line 2033 of file ZeeCalibration.cc.
References eta, EvalDR(), i, j, and phi.
Referenced by duringLoop().
02034 { 02035 for (unsigned int i=0;i<mcEle.size();i++) 02036 { 02037 float minDR=0.1; 02038 const reco::PixelMatchGsfElectron* myMatchEle=0; 02039 for (unsigned int j=0;j<electronCollection->size();j++) 02040 { 02041 float dr=EvalDR(mcEle[i]->momentum().pseudoRapidity(),(*(*electronCollection)[j]).eta(),mcEle[i]->momentum().phi(),(*(*electronCollection)[j]).phi()); 02042 if (dr < minDR ) 02043 { 02044 myMatchEle = (*electronCollection)[j]; 02045 minDR = dr; 02046 } 02047 } 02048 myMCmap.insert(std::pair<HepMC::GenParticle*,const reco::PixelMatchGsfElectron*>(mcEle[i],myMatchEle)); 02049 02050 } 02051 }
double ZeeCalibration::getEtaCorrection | ( | const reco::PixelMatchGsfElectron * | ele | ) | [private] |
Definition at line 2148 of file ZeeCalibration.cc.
References reco::GsfElectron::classification(), fEtaBarrelBad(), fEtaBarrelGood(), fEtaEndcapBad(), fEtaEndcapGood(), and reco::GsfElectron::superCluster().
Referenced by duringLoop(), and fillEleInfo().
02148 { 02149 02150 double correction(1.); 02151 02152 if(ele->classification() ==0 || 02153 ele->classification() ==10 || 02154 ele->classification() ==20) 02155 correction = fEtaBarrelGood(ele->superCluster()->eta()); 02156 02157 if(ele->classification() ==100 || 02158 ele->classification() ==110 || 02159 ele->classification() ==120) 02160 correction = fEtaEndcapGood(ele->superCluster()->eta()); 02161 02162 if(ele->classification() ==30 || 02163 ele->classification() ==31 || 02164 ele->classification() ==32 || 02165 ele->classification() ==33 || 02166 ele->classification() ==34) 02167 correction = fEtaBarrelBad(ele->superCluster()->eta()); 02168 02169 02170 if(ele->classification() ==130 || 02171 ele->classification() ==131 || 02172 ele->classification() ==132 || 02173 ele->classification() ==133 || 02174 ele->classification() ==134) 02175 correction = fEtaEndcapBad(ele->superCluster()->eta()); 02176 02177 return correction; 02178 }
std::pair< DetId, double > ZeeCalibration::getHottestDetId | ( | std::vector< DetId > | mySCRecHits, | |
const EBRecHitCollection * | ebhits, | |||
const EERecHitCollection * | eehits | |||
) | [private] |
Definition at line 2180 of file ZeeCalibration.cc.
References GenMuonPlsPt100GeV_cfg::cout, EcalBarrel, EcalEndcap, edm::SortedCollection< T, SORT >::end(), lat::endl(), CaloRecHit::energy(), edm::SortedCollection< T, SORT >::find(), and EcalRecHit::id().
Referenced by duringLoop().
02180 { 02181 02182 02183 double maxEnergy = -9999.; 02184 const EcalRecHit* hottestRecHit; 02185 02186 std::pair<DetId, double> myPair (DetId(0), -9999.); 02187 02188 02189 for( std::vector<DetId>::const_iterator idIt=mySCRecHits.begin(); idIt != mySCRecHits.end(); idIt++){ 02190 02191 if (idIt->subdetId() == EcalBarrel ) 02192 { 02193 hottestRecHit = & (* ( ebhits->find(*idIt) ) ); 02194 02195 if( hottestRecHit == & (*( ebhits->end())) ) 02196 { 02197 std::cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@ NO RECHIT FOUND SHOULD NEVER HAPPEN"<<std::endl; 02198 continue; 02199 } 02200 } 02201 else if (idIt->subdetId() == EcalEndcap ) 02202 { 02203 hottestRecHit = & (* ( eehits->find(*idIt) ) ); 02204 if( hottestRecHit == & (*( eehits->end())) ) 02205 { 02206 std::cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@ NO RECHIT FOUND SHOULD NEVER HAPPEN"<<std::endl; 02207 continue; 02208 } 02209 } 02210 02211 //std::cout<<"[getHottestDetId] hottestRecHit->energy() "<<hottestRecHit->energy()<<endl; 02212 02213 if(hottestRecHit && hottestRecHit->energy() > maxEnergy){ 02214 02215 maxEnergy = hottestRecHit->energy(); 02216 02217 myPair.first = hottestRecHit ->id(); 02218 myPair.second = maxEnergy; 02219 02220 } 02221 02222 }//end loop to find hottest RecHit 02223 02224 //std::cout<<"[ZeeCalibration::getHottestDetId] going to return..."<<std::endl; 02225 02226 return myPair; 02227 02228 }
void ZeeCalibration::printStatistics | ( | ) | [private] |
Definition at line 2371 of file ZeeCalibration.cc.
References BARREL_ELECTRONS_AFTER_BORDER_CUT, BARREL_ELECTRONS_BEFORE_BORDER_CUT, BBZN, BBZN_gg, BBZN_t0, BBZN_tt, GenMuonPlsPt100GeV_cfg::cout, CRACK_ELECTRONS_IN_BARREL, CRACK_ELECTRONS_IN_ENDCAP, EBZN, EBZN_gg, EBZN_t0, EBZN_tt, EEZN, EEZN_gg, EEZN_t0, EEZN_tt, lat::endl(), GOLDEN_ELECTRONS_IN_BARREL, GOLDEN_ELECTRONS_IN_ENDCAP, MCZBB, MCZEB, MCZEE, NEVT, SHOWER_ELECTRONS_IN_BARREL, SHOWER_ELECTRONS_IN_ENDCAP, SILVER_ELECTRONS_IN_BARREL, SILVER_ELECTRONS_IN_ENDCAP, TOTAL_ELECTRONS_IN_BARREL, and TOTAL_ELECTRONS_IN_ENDCAP.
Referenced by endOfJob().
02371 { 02372 02373 02374 std::cout<< "[ CHECK ON BARREL ELECTRON NUMBER ]"<<" first "<<BARREL_ELECTRONS_BEFORE_BORDER_CUT<<" second "<<TOTAL_ELECTRONS_IN_BARREL << std::endl; 02375 02376 02377 std::cout<< "[ EFFICIENCY OF THE BORDER SELECTION ]" << (float)BARREL_ELECTRONS_AFTER_BORDER_CUT / (float) BARREL_ELECTRONS_BEFORE_BORDER_CUT << endl; 02378 02379 std::cout<< "[ EFFICIENCY OF THE GOLDEN SELECTION ] BARREL: " << (float)GOLDEN_ELECTRONS_IN_BARREL / (float) TOTAL_ELECTRONS_IN_BARREL << " ENDCAP: "<< (float)GOLDEN_ELECTRONS_IN_ENDCAP / (float) TOTAL_ELECTRONS_IN_ENDCAP << endl; 02380 02381 std::cout<< "[ EFFICIENCY OF THE SILVER SELECTION ] BARREL: " << (float)SILVER_ELECTRONS_IN_BARREL / (float) TOTAL_ELECTRONS_IN_BARREL << " ENDCAP: "<< (float)SILVER_ELECTRONS_IN_ENDCAP / (float) TOTAL_ELECTRONS_IN_ENDCAP << endl; 02382 02383 std::cout<< "[ EFFICIENCY OF THE SHOWER SELECTION ] BARREL: " << (float)SHOWER_ELECTRONS_IN_BARREL / (float) TOTAL_ELECTRONS_IN_BARREL << " ENDCAP: "<< (float)SHOWER_ELECTRONS_IN_ENDCAP / (float) TOTAL_ELECTRONS_IN_ENDCAP << endl; 02384 02385 std::cout<< "[ EFFICIENCY OF THE CRACK SELECTION ] BARREL: " << (float)CRACK_ELECTRONS_IN_BARREL / (float) TOTAL_ELECTRONS_IN_BARREL << " ENDCAP: "<< (float)CRACK_ELECTRONS_IN_ENDCAP / (float) TOTAL_ELECTRONS_IN_ENDCAP << endl; 02386 02387 02388 02389 ofstream fout("ZeeStatistics.txt"); 02390 02391 if(!fout) { 02392 std::cout << "Cannot open output file.\n"; 02393 } 02394 02395 fout<<"ZeeStatistics"<<std::endl; 02396 02397 fout<<"##########################RECO#########################"<<std::endl; 02398 fout<<"##################Zee with Barrel-Barrel electrons: "<<BBZN<<std::endl; 02399 02400 fout<<"Golden-Golden fraction: "<<(float)BBZN_gg/BBZN<<" 3-3 fraction is "<<(float)BBZN_tt/BBZN<<" 3-whatever fraction is "<<(float)BBZN_t0/BBZN<<std::endl; 02401 fout<<"##################Zee with Barrel-Endcap electrons: "<<EBZN<<std::endl; 02402 fout<<"Golden-Golden fraction: "<<(float)EBZN_gg/EBZN<<" 3-3 fraction is "<<(float)EBZN_tt/EBZN<<" 3-whatever fraction is "<<(float)EBZN_t0/EBZN<<std::endl; 02403 fout<<"##################Zee with Endcap-Endcap electrons: "<<EEZN<<std::endl; 02404 fout<<"Golden-Golden fraction: "<<(float)EEZN_gg/EEZN<<" 3-3 fraction is "<<(float)EEZN_tt/EEZN<<" 3-whatever fraction is "<<(float)EEZN_t0/EEZN<<std::endl; 02405 02406 fout<<"\n"<<std::endl; 02407 02408 fout<<"##########################GEN#########################"<<std::endl; 02409 fout<<"##################Zee with Barrel-Barrel electrons: "<<(float)MCZBB/NEVT<<std::endl; 02410 fout<<"##################Zee with Barrel-Endcap electrons: "<<(float)MCZEB/NEVT<<std::endl; 02411 fout<<"##################Zee with Endcap-Endcap electrons: "<<(float)MCZEE/NEVT<<std::endl; 02412 02413 fout.close(); 02414 02415 02416 02417 }
virtual void ZeeCalibration::produce | ( | edm::Event & | , | |
const edm::EventSetup & | ||||
) | [inline, virtual] |
boost::shared_ptr< EcalIntercalibConstants > ZeeCalibration::produceEcalIntercalibConstants | ( | const EcalIntercalibConstantsRcd & | iRecord | ) | [virtual] |
Produce Ecal interCalibrations.
Definition at line 193 of file ZeeCalibration.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), and ical.
Referenced by ZeeCalibration().
00194 { 00195 std::cout << "@SUB=ZeeCalibration::produceEcalIntercalibConstants" << std::endl; 00196 return ical; 00197 }
void ZeeCalibration::resetHistograms | ( | ) | [private] |
Definition at line 2323 of file ZeeCalibration.cc.
References h1_eleClasses_, h1_electronCosTheta_SC_, h1_electronCosTheta_SC_TK_, h1_electronCosTheta_TK_, h1_eleEtaResol_, h1_elePhiResol_, h1_eventsAfterBorderSelection_, h1_eventsAfterEWKSelection_, h1_eventsBeforeBorderSelection_, h1_eventsBeforeEWKSelection_, h1_occupancy_, h1_occupancyBarrel_, h1_occupancyEndcap_, h1_occupancyVsEta_, h1_preshowerOverSC_, h1_reco_ZMass_, h1_reco_ZMassCorr_, h1_reco_ZMassCorrBB_, h1_reco_ZMassCorrEE_, h1_seedOverSC_, h1_ZCandMult_, h1_zMassResol_, h2_fEtaBarrelBad_, h2_fEtaBarrelGood_, h2_fEtaEndcapBad_, h2_fEtaEndcapGood_, h_eleEffEta_, h_eleEffPhi_, h_eleEffPt_, and i.
Referenced by startingNewLoop().
02323 { 02324 02325 h1_eventsBeforeEWKSelection_ ->Reset(); 02326 h1_eventsAfterEWKSelection_ ->Reset(); 02327 02328 h1_eventsBeforeBorderSelection_ ->Reset(); 02329 h1_eventsAfterBorderSelection_ ->Reset(); 02330 02331 for (int i=0;i<2;i++) 02332 { 02333 h_eleEffEta_[i] ->Reset(); 02334 h_eleEffPhi_[i] ->Reset(); 02335 h_eleEffPt_[i] ->Reset(); 02336 } 02337 02338 h1_seedOverSC_ ->Reset(); 02339 h1_preshowerOverSC_ ->Reset(); 02340 02341 h1_eleEtaResol_->Reset(); 02342 h1_elePhiResol_->Reset(); 02343 02344 h1_zMassResol_->Reset(); 02345 02346 h1_electronCosTheta_TK_->Reset(); 02347 h1_electronCosTheta_SC_->Reset(); 02348 h1_electronCosTheta_SC_TK_->Reset(); 02349 02350 h2_fEtaBarrelGood_->Reset(); 02351 h2_fEtaBarrelBad_->Reset(); 02352 h2_fEtaEndcapGood_->Reset(); 02353 h2_fEtaEndcapBad_->Reset(); 02354 h1_eleClasses_->Reset(); 02355 02356 h1_ZCandMult_-> Reset(); 02357 h1_reco_ZMass_-> Reset(); 02358 h1_reco_ZMassCorr_-> Reset(); 02359 h1_reco_ZMassCorrBB_-> Reset(); 02360 h1_reco_ZMassCorrEE_-> Reset(); 02361 h1_occupancyVsEta_-> Reset(); 02362 h1_occupancy_-> Reset(); 02363 h1_occupancyBarrel_-> Reset(); 02364 h1_occupancyEndcap_-> Reset(); 02365 02366 return; 02367 02368 }
void ZeeCalibration::resetVariables | ( | ) | [private] |
Definition at line 2285 of file ZeeCalibration.cc.
References BARREL_ELECTRONS_AFTER_BORDER_CUT, BARREL_ELECTRONS_BEFORE_BORDER_CUT, BBZN, BBZN_gg, BBZN_t0, BBZN_tt, CRACK_ELECTRONS_IN_BARREL, CRACK_ELECTRONS_IN_ENDCAP, EBZN, EBZN_gg, EBZN_t0, EBZN_tt, EEZN, EEZN_gg, EEZN_t0, EEZN_tt, GOLDEN_ELECTRONS_IN_BARREL, GOLDEN_ELECTRONS_IN_ENDCAP, SHOWER_ELECTRONS_IN_BARREL, SHOWER_ELECTRONS_IN_ENDCAP, SILVER_ELECTRONS_IN_BARREL, SILVER_ELECTRONS_IN_ENDCAP, TOTAL_ELECTRONS_IN_BARREL, and TOTAL_ELECTRONS_IN_ENDCAP.
Referenced by startingNewLoop().
02285 { 02286 02287 BBZN=0; 02288 EBZN=0; 02289 EEZN=0; 02290 BBZN_gg=0; 02291 EBZN_gg=0; 02292 EEZN_gg=0; 02293 02294 BBZN_tt=0; 02295 EBZN_tt=0; 02296 EEZN_tt=0; 02297 02298 BBZN_t0=0; 02299 EBZN_t0=0; 02300 EEZN_t0=0; 02301 02302 TOTAL_ELECTRONS_IN_BARREL=0; 02303 TOTAL_ELECTRONS_IN_ENDCAP=0; 02304 02305 GOLDEN_ELECTRONS_IN_BARREL=0; 02306 GOLDEN_ELECTRONS_IN_ENDCAP=0; 02307 SILVER_ELECTRONS_IN_BARREL=0; 02308 SILVER_ELECTRONS_IN_ENDCAP=0; 02309 SHOWER_ELECTRONS_IN_BARREL=0; 02310 SHOWER_ELECTRONS_IN_ENDCAP=0; 02311 CRACK_ELECTRONS_IN_BARREL=0; 02312 CRACK_ELECTRONS_IN_ENDCAP=0; 02313 02314 02315 BARREL_ELECTRONS_BEFORE_BORDER_CUT = 0; 02316 BARREL_ELECTRONS_AFTER_BORDER_CUT = 0; 02317 02318 return; 02319 02320 }
Definition at line 2120 of file ZeeCalibration.cc.
References calibMode_, and index.
Referenced by computeCoefficientDistanceAtIteration(), endOfJob(), and endOfLoop().
02121 { 02122 02123 int index=-999; 02124 02125 if( calibMode_ == "RING"){ 02126 if(k>=0 && k<=84)index = k - 85; 02127 02128 if(k>=85 && k<=169)index = k - 84; 02129 02130 if(k>=170 && k<=208)index = - k + 84; 02131 02132 if(k>=209 && k<=247)index = k - 123; 02133 02134 } 02135 02136 else if( calibMode_ == "MODULE"){ 02137 02138 if(k>=0 && k<=71)index = k - 72; 02139 02140 if(k>=72 && k<=143)index = k - 71; 02141 02142 } 02143 return index; 02144 02145 }
Called at beginning of loop.
Implements edm::EDLooper.
Definition at line 1494 of file ZeeCalibration.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), resetHistograms(), ZIterativeAlgorithmWithFit::resetIteration(), resetVariables(), and theAlgorithm_.
01495 { 01496 01497 std::cout<< "[ZeeCalibration] Starting loop number " << iLoop<<std::endl; 01498 01499 theAlgorithm_->resetIteration(); 01500 01501 resetVariables(); 01502 01503 resetHistograms(); 01504 01505 #ifdef DEBUG 01506 std::cout<< "[ZeeCalibration] exiting from startingNewLoop" << std::endl; 01507 #endif 01508 01509 }
Definition at line 2231 of file ZeeCalibration.cc.
References funct::abs(), i, EBDetId::ieta(), and EBDetId::iphi().
Referenced by duringLoop().
02231 { 02232 02233 bool myBool(false); 02234 02235 short ieta = myEBDetId.ieta(); 02236 short iphi = myEBDetId.iphi(); 02237 02238 // std::cout<<"[xtalIsOnModuleBorder] ieta: "<<ieta<<" iphi "<<iphi<<std::endl; 02239 02240 myBool = ( abs( ieta ) == 1 || abs( ieta ) == 25 02241 || abs( ieta ) ==26 || abs( ieta ) == 45 02242 || abs( ieta ) ==46 || abs( ieta ) == 65 02243 || abs( ieta ) ==66 || abs( ieta ) == 85 ); 02244 02245 for(int i = 0; i < 19; i++){ 02246 02247 if(iphi == ( 20*i + 1 ) || iphi == 20*i ) 02248 myBool = true; 02249 02250 } 02251 02252 return myBool; 02253 }
char ZeeCalibration::aHLTNames[6000] [private] |
Definition at line 369 of file ZeeCalibration.h.
bool ZeeCalibration::aHLTResults[200] [private] |
TString ZeeCalibration::aNames[200] [private] |
Definition at line 371 of file ZeeCalibration.h.
char ZeeCalibration::aTriggerNames[200][30] [private] |
Definition at line 365 of file ZeeCalibration.h.
bool ZeeCalibration::aTriggerResults[200] [private] |
Definition at line 366 of file ZeeCalibration.h.
Definition at line 330 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Definition at line 329 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
std::string ZeeCalibration::barrelfile_ [private] |
Int_t ZeeCalibration::BBZN [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::BBZN_gg [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::BBZN_t0 [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::BBZN_tt [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
float ZeeCalibration::calibCoeff[nMaxChannels] [private] |
Definition at line 192 of file ZeeCalibration.h.
Referenced by beginOfJob(), endOfJob(), and endOfLoop().
float ZeeCalibration::calibCoeffError[nMaxChannels] [private] |
Definition at line 194 of file ZeeCalibration.h.
Referenced by beginOfJob(), endOfJob(), and endOfLoop().
std::string ZeeCalibration::calibMode_ [private] |
Definition at line 163 of file ZeeCalibration.h.
Referenced by beginOfJob(), computeCoefficientDistanceAtIteration(), endOfJob(), endOfLoop(), ringNumberCorrector(), and ZeeCalibration().
double ZeeCalibration::coefficientDistanceAtIteration[50] [private] |
Definition at line 327 of file ZeeCalibration.h.
Referenced by endOfJob(), endOfLoop(), and ZeeCalibration().
int ZeeCalibration::CRACK_ELECTRONS_IN_BARREL [private] |
Definition at line 344 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
int ZeeCalibration::CRACK_ELECTRONS_IN_ENDCAP [private] |
Definition at line 345 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::EBZN [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::EBZN_gg [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::EBZN_t0 [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::EBZN_tt [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::EEZN [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::EEZN_gg [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::EEZN_t0 [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::EEZN_tt [private] |
Definition at line 313 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
std::string ZeeCalibration::electronCollection_ [private] |
std::string ZeeCalibration::electronProducer_ [private] |
unsigned int ZeeCalibration::electronSelection_ [private] |
std::string ZeeCalibration::endcapfile_ [private] |
std::string ZeeCalibration::erechitCollection_ [private] |
std::string ZeeCalibration::erechitProducer_ [private] |
unsigned int ZeeCalibration::etaBins_ [private] |
double ZeeCalibration::etaMax_ [private] |
double ZeeCalibration::etaMin_ [private] |
unsigned int ZeeCalibration::etBins_ [private] |
double ZeeCalibration::etMax_ [private] |
double ZeeCalibration::etMin_ [private] |
Definition at line 335 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Definition at line 336 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
TH1F* ZeeCalibration::h1_borderElectronClassification_ [private] |
Definition at line 310 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), and endOfJob().
TH1F* ZeeCalibration::h1_eleClasses_ [private] |
Definition at line 222 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_electronCosTheta_SC_ [private] |
Definition at line 307 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_electronCosTheta_SC_TK_ [private] |
Definition at line 308 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_electronCosTheta_TK_ [private] |
Definition at line 306 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_eleERecoOverEtrue_ [private] |
Definition at line 244 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h1_eleEtaResol_ [private] |
Definition at line 246 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), fillEleInfo(), and resetHistograms().
TH1F* ZeeCalibration::h1_elePhiResol_ [private] |
Definition at line 247 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), fillEleInfo(), and resetHistograms().
TH1F* ZeeCalibration::h1_eventsAfterBorderSelection_ [private] |
Definition at line 214 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_eventsAfterEWKSelection_ [private] |
Definition at line 211 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_eventsBeforeBorderSelection_ [private] |
Definition at line 213 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_eventsBeforeEWKSelection_ [private] |
Definition at line 210 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_mc_ [private] |
TH1F* ZeeCalibration::h1_mcEB_ [private] |
TH1F* ZeeCalibration::h1_mcEBParz_[25] [private] |
TH1F* ZeeCalibration::h1_mcEE_ [private] |
TH1F* ZeeCalibration::h1_mcEEParz_[25] [private] |
TH1F* ZeeCalibration::h1_mcParz_[25] [private] |
TH1F* ZeeCalibration::h1_nEleReco_ [private] |
TH1F* ZeeCalibration::h1_occupancy_ [private] |
Definition at line 302 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_occupancyBarrel_ [private] |
Definition at line 303 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_occupancyEndcap_ [private] |
Definition at line 304 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_occupancyVsEta_ [private] |
Definition at line 297 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_occupancyVsEtaCrack_ [private] |
Definition at line 300 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h1_occupancyVsEtaGold_ [private] |
Definition at line 298 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h1_occupancyVsEtaShower_ [private] |
Definition at line 301 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h1_occupancyVsEtaSilver_ [private] |
Definition at line 299 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h1_preshowerOverSC_ [private] |
Definition at line 229 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), fillEleInfo(), and resetHistograms().
TH1F* ZeeCalibration::h1_reco_ZMass_ [private] |
Definition at line 234 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), endOfLoop(), and resetHistograms().
TH1F* ZeeCalibration::h1_reco_ZMassBad_ [private] |
Definition at line 240 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h1_reco_ZMassCorr_ [private] |
Definition at line 236 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_reco_ZMassCorrBB_ [private] |
Definition at line 237 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_reco_ZMassCorrEE_ [private] |
Definition at line 238 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_reco_ZMassGood_ [private] |
Definition at line 239 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h1_RMin_ [private] |
Definition at line 242 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h1_RMinZ_ [private] |
Definition at line 243 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h1_seedOverSC_ [private] |
Definition at line 228 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), fillEleInfo(), and resetHistograms().
TH1F* ZeeCalibration::h1_weightSumMeanBarrel_ [private] |
TH1F* ZeeCalibration::h1_weightSumMeanEndcap_ [private] |
TH1F* ZeeCalibration::h1_ZCandMult_ [private] |
Definition at line 241 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_zEtaResol_ [private] |
TH1F* ZeeCalibration::h1_zMassResol_ [private] |
Definition at line 231 of file ZeeCalibration.h.
Referenced by bookHistograms(), duringLoop(), endOfJob(), and resetHistograms().
TH1F* ZeeCalibration::h1_zPhiResol_ [private] |
TH2F* ZeeCalibration::h2_chi2_[25] [private] |
Definition at line 283 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and endOfLoop().
TH2F* ZeeCalibration::h2_coeffVsEta_ [private] |
TH2F* ZeeCalibration::h2_coeffVsEtaGrouped_ [private] |
TH2F* ZeeCalibration::h2_coeffVsLoop_ [private] |
TH2F* ZeeCalibration::h2_fEtaBarrelBad_ [private] |
Definition at line 218 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and resetHistograms().
TH2F* ZeeCalibration::h2_fEtaBarrelGood_ [private] |
Definition at line 217 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and resetHistograms().
TH2F* ZeeCalibration::h2_fEtaEndcapBad_ [private] |
Definition at line 220 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and resetHistograms().
TH2F* ZeeCalibration::h2_fEtaEndcapGood_ [private] |
Definition at line 219 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and resetHistograms().
TH2F* ZeeCalibration::h2_iterations_[25] [private] |
Definition at line 284 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and endOfLoop().
TH2F* ZeeCalibration::h2_miscalRecal_ [private] |
TH2F* ZeeCalibration::h2_miscalRecalEB_ [private] |
TH2F* ZeeCalibration::h2_miscalRecalEE_ [private] |
TH2F* ZeeCalibration::h2_residualSigma_ [private] |
Definition at line 273 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and endOfLoop().
TH2F* ZeeCalibration::h2_xtalMiscalibCoeffBarrel_ [private] |
Definition at line 290 of file ZeeCalibration.h.
Referenced by beginOfJob(), bookHistograms(), and endOfJob().
TH2F* ZeeCalibration::h2_xtalMiscalibCoeffEndcapMinus_ [private] |
Definition at line 291 of file ZeeCalibration.h.
Referenced by beginOfJob(), bookHistograms(), and endOfJob().
TH2F* ZeeCalibration::h2_xtalMiscalibCoeffEndcapPlus_ [private] |
Definition at line 292 of file ZeeCalibration.h.
Referenced by beginOfJob(), bookHistograms(), and endOfJob().
TH2F* ZeeCalibration::h2_xtalRecalibCoeffBarrel_[25] [private] |
TH2F* ZeeCalibration::h2_xtalRecalibCoeffEndcapMinus_[25] [private] |
TH2F* ZeeCalibration::h2_xtalRecalibCoeffEndcapPlus_[25] [private] |
TH2F* ZeeCalibration::h2_zMassDiffVsLoop_ [private] |
Definition at line 261 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and endOfLoop().
TH2F* ZeeCalibration::h2_zMassVsLoop_ [private] |
Definition at line 260 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and endOfLoop().
TH2F* ZeeCalibration::h2_zWidthVsLoop_ [private] |
Definition at line 262 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and endOfLoop().
TH1F* ZeeCalibration::h_eleEffEta[2] [private] |
Definition at line 224 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h_eleEffEta_[2] [private] |
Definition at line 249 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), fillEleInfo(), and resetHistograms().
TH1F* ZeeCalibration::h_eleEffPhi[2] [private] |
Definition at line 225 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h_eleEffPhi_[2] [private] |
Definition at line 250 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), fillEleInfo(), and resetHistograms().
TH1F* ZeeCalibration::h_eleEffPt[2] [private] |
Definition at line 226 of file ZeeCalibration.h.
TH1F* ZeeCalibration::h_eleEffPt_[2] [private] |
Definition at line 251 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), fillEleInfo(), and resetHistograms().
TH1F* ZeeCalibration::h_ESCcorrEtrue_[25] [private] |
Definition at line 255 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and fillEleInfo().
TH2F* ZeeCalibration::h_ESCcorrEtrueVsEta_[25] [private] |
Definition at line 256 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and fillEleInfo().
TH1F* ZeeCalibration::h_ESCEtrue_[25] [private] |
Definition at line 252 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and fillEleInfo().
TH2F* ZeeCalibration::h_ESCEtrueVsEta_[25] [private] |
Definition at line 253 of file ZeeCalibration.h.
Referenced by bookHistograms(), endOfJob(), and fillEleInfo().
std::vector<unsigned int> ZeeCalibration::hlAccept_ [private] |
Definition at line 358 of file ZeeCalibration.h.
std::vector<unsigned int> ZeeCalibration::hlErrors_ [private] |
Definition at line 359 of file ZeeCalibration.h.
std::vector<std::string> ZeeCalibration::hlNames_ [private] |
Definition at line 361 of file ZeeCalibration.h.
Int_t ZeeCalibration::hltCount [private] |
Int_t ZeeCalibration::hltNamesLen [private] |
Definition at line 370 of file ZeeCalibration.h.
std::vector<unsigned int> ZeeCalibration::hlWasRun_ [private] |
Definition at line 357 of file ZeeCalibration.h.
boost::shared_ptr<EcalIntercalibConstants> ZeeCalibration::ical [private] |
Definition at line 197 of file ZeeCalibration.h.
Referenced by beginOfJob(), endOfJob(), endOfLoop(), and produceEcalIntercalibConstants().
bool ZeeCalibration::init_ [private] |
float ZeeCalibration::initCalibCoeff[nMaxChannels] [private] |
Definition at line 195 of file ZeeCalibration.h.
Referenced by beginOfJob(), endOfJob(), and endOfLoop().
double ZeeCalibration::loopArray[50] [private] |
Definition at line 324 of file ZeeCalibration.h.
Referenced by endOfJob(), endOfLoop(), and ZeeCalibration().
int ZeeCalibration::loopFlag_ [private] |
Definition at line 190 of file ZeeCalibration.h.
Referenced by beginOfJob(), duringLoop(), endOfLoop(), and fillEleInfo().
double ZeeCalibration::mass [private] |
float ZeeCalibration::mass4tree [private] |
float ZeeCalibration::massDiff4tree [private] |
double ZeeCalibration::maxInvMassCut_ [private] |
std::string ZeeCalibration::mcProducer_ [private] |
Int_t ZeeCalibration::MCZBB [private] |
Int_t ZeeCalibration::MCZEB [private] |
Int_t ZeeCalibration::MCZEE [private] |
double ZeeCalibration::minInvMassCut_ [private] |
TTree* ZeeCalibration::myTree [private] |
Definition at line 148 of file ZeeCalibration.h.
Referenced by duringLoop(), endOfJob(), and ZeeCalibration().
ZeePlots* ZeeCalibration::myZeePlots_ [private] |
Definition at line 201 of file ZeeCalibration.h.
Referenced by beginOfJob(), bookHistograms(), duringLoop(), and endOfJob().
Definition at line 202 of file ZeeCalibration.h.
unsigned int ZeeCalibration::nAccept_ [private] |
Definition at line 354 of file ZeeCalibration.h.
unsigned int ZeeCalibration::nErrors_ [private] |
Definition at line 355 of file ZeeCalibration.h.
unsigned int ZeeCalibration::nEvents_ [private] |
Definition at line 351 of file ZeeCalibration.h.
Int_t ZeeCalibration::NEVT [private] |
float ZeeCalibration::NewCalibCoeff[nMaxChannels] [private] |
unsigned int ZeeCalibration::nWasRun_ [private] |
Definition at line 353 of file ZeeCalibration.h.
TFile* ZeeCalibration::outputFile_ [private] |
Definition at line 316 of file ZeeCalibration.h.
Referenced by beginOfJob(), endOfJob(), endOfLoop(), and ZeeCalibration().
std::string ZeeCalibration::outputFileName_ [private] |
int ZeeCalibration::read_events [private] |
std::string ZeeCalibration::RecalibBarrelHits_ [private] |
Definition at line 168 of file ZeeCalibration.h.
std::string ZeeCalibration::rechitCollection_ [private] |
std::string ZeeCalibration::rechitProducer_ [private] |
std::string ZeeCalibration::scCollection_ [private] |
std::string ZeeCalibration::scIslandCollection_ [private] |
std::string ZeeCalibration::scIslandProducer_ [private] |
std::string ZeeCalibration::scProducer_ [private] |
Definition at line 341 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Definition at line 342 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
double ZeeCalibration::sigmaArray[50] [private] |
Definition at line 325 of file ZeeCalibration.h.
Referenced by endOfJob(), endOfLoop(), and ZeeCalibration().
double ZeeCalibration::sigmaErrorArray[50] [private] |
Definition at line 326 of file ZeeCalibration.h.
Referenced by endOfJob(), endOfLoop(), and ZeeCalibration().
Definition at line 338 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Definition at line 339 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Definition at line 199 of file ZeeCalibration.h.
Referenced by beginOfJob(), duringLoop(), endOfJob(), endOfLoop(), startingNewLoop(), and ZeeCalibration().
unsigned int ZeeCalibration::theMaxLoops [private] |
Definition at line 318 of file ZeeCalibration.h.
Referenced by endOfJob(), endOfLoop(), and ZeeCalibration().
int ZeeCalibration::TOTAL_ELECTRONS_IN_BARREL [private] |
Definition at line 332 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
int ZeeCalibration::TOTAL_ELECTRONS_IN_ENDCAP [private] |
Definition at line 333 of file ZeeCalibration.h.
Referenced by duringLoop(), printStatistics(), and resetVariables().
Int_t ZeeCalibration::triggerCount [private] |
Definition at line 364 of file ZeeCalibration.h.
Definition at line 349 of file ZeeCalibration.h.
bool ZeeCalibration::wantEtaCorrection_ [private] |