#ifndef myAnalysis_cxx #define myAnalysis_cxx #include "myAnalysis.h" #include "FourMomentum.h" #include "DuplicateEvent.h" #include "ObjectCut.h" void myAnalysis::Loop() { //Histogram Settings: const int NBINS = 100; const float MAX = 150; const float MIN = -10; const int GEV = 1000; const float PI = 3.1415926; ObjectCut elSelection("el"); elSelection.AddCut("pt > 10000"); elSelection.AddCut("(author = 1) || (author = 3)"); elSelection.AddCut("(eta |< 1.37) || (eta |> 1.52)","Not In Crack"); elSelection.AddCut("eta |< 2.47","|eta| < 2.47"); ObjectCut elBasePlusDeltaR = elSelection; //ObjectCut elBaseSameSign = elBasePlusDeltaR; // elSelection.AddCut("charge |= 1"); //elBaseSameSign.AddComparison("charge = charge"); ObjectCut elLooseLooseNS = elBasePlusDeltaR; elLooseLooseNS.AddCut("loose = 0"); std::string ytitle = "pairs / 1.5 GeV"; if (fChain == 0) return; Activate("el_n"); Activate("el_eta"); Activate("el_phi"); Activate("el_Et"); Activate("el_pt"); Activate("el_Ethad1"); Activate("el_f1"); Activate("el_E233"); Activate("el_E237"); Activate("el_E277"); Activate("el_reta"); Activate("el_rphi"); Activate("el_wstot"); Activate("el_deltaEmax2"); Activate("el_deltaEs"); Activate("el_ws3"); Activate("el_fside"); Activate("el_Etcone20"); Activate("el_nTRTHits"); Activate("el_nSiHits"); Activate("el_nPixHits"); Activate("el_nBLHits"); Activate("el_TRTHighTHitsRatio"); Activate("el_deltaeta1"); //float pt1 = 0; //float Et1 = 0; //float En2 = 0; //float deltaR = 0; //float retal = 0; //float reta1 = 0; //float reta = 0; //float el_retal = 0; //float h_elLooseLooseNS_deltaR = 0; //float h_elLooseLooseNS_deltapt = 0; //float deltaphio = 0; float total = 0; Long64_t nentries = fChain->GetEntriesFast(); // ObjectCut elBaseSameSign = elBasePlusDeltaR; // elBaseSameSign.AddCut("charge |= 1"); elLooseLooseNS.AddCut("loose = 0"); // TH1F * h_elLooseLooseNS_pt1 = new TH1F("bkgnd(data)_pt1","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_pt1->SetXTitle("pt, GeV"); h_elLooseLooseNS_pt1->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_pt2 = new TH1F("bkgnd(data)_pt2","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_pt2->SetXTitle("pt, GeV"); h_elLooseLooseNS_pt2->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_Et1 = new TH1F("bkgnd(data)_Et1","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_Et1->SetXTitle("Et, GeV"); h_elLooseLooseNS_Et1->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_Et2 = new TH1F("bkgnd(data)_Et2","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_Et2->SetXTitle("Et, GeV"); h_elLooseLooseNS_Et2->SetYTitle(ytitle.c_str()); TH2F * h_elLooseLooseNS_phi_eta = new TH2F("bkgnd(data)_phi_eta","Electron pairs, both passing loose",NBINS,-4,4,NBINS,-4,4); h_elLooseLooseNS_phi_eta->SetXTitle("phi"); h_elLooseLooseNS_phi_eta->SetYTitle("eta"); TH1F * h_elLooseLooseNS_Mass = new TH1F("bkgnd(data)_Mass","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_Mass->SetXTitle("Invariant Mass, GeV"); h_elLooseLooseNS_Mass->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_px = new TH1F("bkgnd(data)_px","Electron pairs, both passing loose",NBINS,-MAX,MAX); h_elLooseLooseNS_px->SetXTitle("px, GeV"); h_elLooseLooseNS_px->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_py = new TH1F("bkgnd(data)_py","Electron pairs, both passing loose",NBINS,-MAX,MAX); h_elLooseLooseNS_py->SetXTitle("py, GeV"); h_elLooseLooseNS_py->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_pz = new TH1F("bkgnd(data)_pz","Electron pairs, both passing loose",NBINS,-MAX,MAX); h_elLooseLooseNS_pz->SetXTitle("pz, GeV"); h_elLooseLooseNS_pz->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_E = new TH1F("bkgnd(data)_E","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_E->SetXTitle("E, GeV"); h_elLooseLooseNS_E->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_pt = new TH1F("bkgnd(data)_pt","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_pt->SetXTitle("pt, GeV"); h_elLooseLooseNS_pt->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_eta = new TH1F("bkgnd(data)_eta","Electron pairs, both passing loose",NBINS,-6,6); h_elLooseLooseNS_eta->SetXTitle("eta"); h_elLooseLooseNS_eta->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_Ethad1 = new TH1F("bkgnd(data)_Ethad1","Electron pairs, both passing loose",NBINS,-2,2); h_elLooseLooseNS_Ethad1->SetXTitle("Ethad1, GeV"); h_elLooseLooseNS_Ethad1->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_Et = new TH1F("bkgnd(data)_Et","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_Et->SetXTitle("Et, GeV"); h_elLooseLooseNS_Et->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_E233 = new TH1F("bkgnd(data)_E233","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_E233->SetXTitle("E233, GeV"); h_elLooseLooseNS_E233->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_E237 = new TH1F("bkgnd(data)_E237","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_E237->SetXTitle("E237, GeV"); h_elLooseLooseNS_E237->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_E277 = new TH1F("bkgnd(data)_E277","Electron pairs, both passing loose",NBINS,MIN,MAX); h_elLooseLooseNS_E277->SetXTitle("E277, GeV"); h_elLooseLooseNS_E277->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_f1 = new TH1F("bkgnd(data)_f1","Electron pairs, both passing loose",NBINS,-1,1); h_elLooseLooseNS_f1->SetXTitle("f1"); h_elLooseLooseNS_f1->SetYTitle(ytitle.c_str()); cout << "marker 1" << endl; TH1F * h_elLooseLooseNS_reta = new TH1F("bkgnd(data)_reta","Electron pairs, both passing loose",NBINS,0.5,1); h_elLooseLooseNS_reta->SetXTitle("reta"); h_elLooseLooseNS_reta->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_rphi = new TH1F("bkgnd(data)_rphi","Electron pairs, both passing loose",NBINS,0.5,1); h_elLooseLooseNS_rphi->SetXTitle("rphi"); h_elLooseLooseNS_rphi->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_wstot = new TH1F("bkgnd(data)_wstot","Electron pairs, both passing loose",NBINS,-1,5); h_elLooseLooseNS_wstot->SetXTitle("wstot"); h_elLooseLooseNS_wstot->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_deltaEmax2 = new TH1F("bkgnd(data)_deltaEmax2","Electron pairs, both passing loose",NBINS,-1,1); h_elLooseLooseNS_deltaEmax2->SetXTitle("deltaEmax2"); h_elLooseLooseNS_deltaEmax2->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_deltaEs = new TH1F("bkgnd(data)_deltaEs","Electron pairs, both passing loose",NBINS,-10,20); h_elLooseLooseNS_deltaEs->SetXTitle("deltaEs"); h_elLooseLooseNS_deltaEs->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_ws3 = new TH1F("bkgnd(data)_ws3","Electron pairs, both passing loose",NBINS,-1,2); h_elLooseLooseNS_ws3->SetXTitle("ws3"); h_elLooseLooseNS_ws3->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_fside = new TH1F("bkgnd(data)_fside","Electron pairs, both passing loose",NBINS,-1,1); h_elLooseLooseNS_fside->SetXTitle("fside"); h_elLooseLooseNS_fside->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_Etcone20 = new TH1F("bkgnd(data)_Etcone20","Electron pairs, both passing loose",NBINS,-10,40); h_elLooseLooseNS_Etcone20->SetXTitle("Etcone20"); h_elLooseLooseNS_Etcone20->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_nTRTHits = new TH1F("bkgnd(data)_nTRTHits","Electron pairs, both passing loose",NBINS,-5,50); h_elLooseLooseNS_nTRTHits->SetXTitle("nTRTHits"); h_elLooseLooseNS_nTRTHits->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_nSiHits = new TH1F("bkgnd(data)_nSiHits","Electron pairs, both passing loose",NBINS,-2,10); h_elLooseLooseNS_nSiHits->SetXTitle("nSiHits"); h_elLooseLooseNS_nSiHits->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_nPixHits = new TH1F("bkgnd(data)_nPixHits","Electron pairs, both passing loose",NBINS,-2,10); h_elLooseLooseNS_nPixHits->SetXTitle("nPixHits"); h_elLooseLooseNS_nPixHits->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_nBLHits = new TH1F("bkgnd(data)_nBLHits","Electron pairs, both passing loose",NBINS,-2,10); h_elLooseLooseNS_nBLHits->SetXTitle("nBLHits"); h_elLooseLooseNS_nBLHits->SetYTitle(ytitle.c_str()); TH1F * h_elLooseLooseNS_TRTHighTHitsRatio = new TH1F("bkgnd(data)_TRTHighTHitsRatio","Electron pairs, both passing loose",NBINS,-1,1); h_elLooseLooseNS_TRTHighTHitsRatio->SetXTitle("TRTHighTHitsRatio"); h_elLooseLooseNS_TRTHighTHitsRatio->SetYTitle(ytitle.c_str()); cout << "marker 2" << endl; int tot_Loose=0; int n_elLooseLooseNS = 0; FourMomentum elKin_Loose1("el"); if(aPlot != 0) aPlot->Setup(); SetBranchAddresses(); SetupWriteLeaves(); fstream log_file; string log_name = OutputFileName() + ".log"; log_file.open ( log_name.c_str() ); for (Long64_t jentry=0; jentryFill(1); if( !aCut->Test() ) continue; } cout << "marker 3" << endl; vector * El_Loose; El_Loose = elLooseLooseNS.Indeces(); if( El_Loose->size() >= 1 ) { for( vector ::const_iterator itr = El_Loose->begin(); itr != El_Loose->end(); ++itr) { elKin_Loose1.GetEntry(*itr); float px1 = elKin_Loose1.Px(); h_elLooseLooseNS_px->Fill( px1 / GEV ); // float px_test = (*el_px)[itr->first]; // float comp = px1-px_test; float px_sq = (px1 ) * (px1 ); float py1 = elKin_Loose1.Py(); h_elLooseLooseNS_py->Fill( py1 / GEV ); float py_sq = (py1 ) * (py1 ); float pz1 = elKin_Loose1.Pz(); h_elLooseLooseNS_pz->Fill( pz1 / GEV ); float pz_sq = (pz1) * (pz1); float En1 = elKin_Loose1.E(); h_elLooseLooseNS_E->Fill( En1 / GEV ); cout << "marker 4" << endl; float En_sq = (En1) * (En1); float mass_Inva = (elKin_Loose1).M(); float eta = (*el_eta)[*itr]; //log_file << "deltaeta= " << deltaeta << endl; float phi = (*el_phi)[*itr]; float deltaphi; // if(fabs(deltaphio)=PI) deltaphi = 2*PI-fabs(deltaphio); log_file << "deltaphi= " << deltaphi << endl; //h_elLooseLooseNS->Fill( mass / GEV ); //float mass_Inva = sqrt(En_sq-px_sq-py_sq-pz_sq); h_elLooseLooseNS_Mass->Fill( mass_Inva / GEV ); float Et = (*el_Et)[*itr]; float pt = (*el_pt)[*itr]; //log_file << "deltapt= " << deltapt/GEV << endl; if( mass_Inva/GEV <10) { // h_elLooseLooseNS_pt1->Fill( pt1 / GEV ); // h_elLooseLooseNS_pt2->Fill( pt2 / GEV ); h_elLooseLooseNS_Et->Fill( Et / GEV ); // h_elLooseLooseNS_Et2->Fill( Et2 / GEV ); //log_file<< "deltaeta_10= " << deltaeta << endl; //log_file<< "deltaphi_10= " << deltaphi << endl; //log_file<< "deltapt_10= " << deltapt/GEV << endl; cout << "marker 5" << endl; } //if (((mass_Inva/GEV)>80)&&((mass_Inva/GEV)<100)) { float eta = (*el_eta)[*itr]; h_elLooseLooseNS_eta->Fill(eta); float phi1 = (*el_phi)[*itr]; h_elLooseLooseNS_phi_eta->Fill(phi1,eta); float Et = (*el_Et)[*itr]; h_elLooseLooseNS_Et->Fill(Et/GEV); // float pt = (*el_pt)[*itr]; // h_elLooseLooseNS_pt->Fill(pt1/GEV); float Ethad11 = (*el_Ethad1)[*itr]; h_elLooseLooseNS_Ethad1->Fill(Ethad11/GEV); float f11 = (*el_f1)[*itr]; h_elLooseLooseNS_f1->Fill(f11); float E2331 = (*el_E233)[*itr]; h_elLooseLooseNS_E233->Fill(E2331/GEV); float E2371 = (*el_E237)[*itr]; h_elLooseLooseNS_E237->Fill(E2371/GEV); float E2771 = (*el_E277)[*itr]; h_elLooseLooseNS_E277->Fill(E2771/GEV); float reta1 = (*el_reta)[*itr]; h_elLooseLooseNS_reta->Fill(reta1); float rphi1 = (*el_rphi)[*itr]; h_elLooseLooseNS_rphi->Fill(rphi1); float wstot1 = (*el_wstot)[*itr]; h_elLooseLooseNS_wstot->Fill(wstot1); float deltaEmax21 = (*el_deltaEmax2)[*itr]; h_elLooseLooseNS_deltaEmax2->Fill(deltaEmax21); cout << "marker 6" << endl; float deltaEs1 = (*el_deltaEs)[*itr]; h_elLooseLooseNS_deltaEs->Fill(deltaEs1/GEV); float ws31 = (*el_ws3)[*itr]; h_elLooseLooseNS_ws3->Fill(ws31); float fside1 = (*el_fside)[*itr]; h_elLooseLooseNS_fside->Fill(fside1); float Etcone201 = (*el_Etcone20)[*itr]; h_elLooseLooseNS_Etcone20->Fill(Etcone201/GEV); float nTRTHits1 = (*el_nTRTHits)[*itr]; h_elLooseLooseNS_nTRTHits->Fill(nTRTHits1); float nSiHits1 = (*el_nSiHits)[*itr]; h_elLooseLooseNS_nSiHits->Fill(nSiHits1); float nPixHits1 = (*el_nPixHits)[*itr]; h_elLooseLooseNS_nPixHits->Fill(nPixHits1); float nBLHits1 = (*el_nBLHits)[*itr]; h_elLooseLooseNS_nBLHits->Fill(nBLHits1); float TRTHighTHitsRatio1 = (*el_TRTHighTHitsRatio)[*itr]; h_elLooseLooseNS_TRTHighTHitsRatio->Fill(TRTHighTHitsRatio1); }//end of filling histograms for Loose ++n_elLooseLooseNS; } ++tot_Loose; } cout << "marker 7" << endl; if( aPlot != 0 ) { aPlot->Fill(); } if( writeTree != 0 ) { writeTree->Fill(); } } log_file << "No Sign Requirement" << endl; log_file << "Number of Loose pairs= " << n_elLooseLooseNS << endl; log_file << "Number of Loose events= " << tot_Loose << endl; log_file << "Number of total events= " << total << endl; //making log files log_file.close(); } #endif