Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:37

0001 double scale( double energy, double eta = 0 )
0002 {
0003    if (fabs(eta)<1.3){ 
0004       // barrel
0005       return energy*113.2;
0006    } else {
0007       // endcap
0008       if (fabs(eta) <3) {
0009      return 167.2*energy;
0010       }
0011    }
0012    // for the rest return uncorrected energy
0013    return energy;
0014 }
0015 
0016 void makePlots(TString filename, bool fit = false)
0017 {
0018    TFile* file = new TFile(filename);
0019    TTree* tree = (TTree*)file->Get("calomatch");
0020    if (fit) gROOT->LoadMacro("CruijffPdf.cc++");
0021    if (fit) gROOT->LoadMacro("resolution_fit.cxx++");
0022    gROOT->SetStyle("Plain");
0023    gStyle->SetPalette(1);
0024 
0025    TCanvas* c = new TCanvas("matches","matches",600,900);
0026    // c->Print("calo_match.pdf[","pdf");
0027    // TPostScript *ps = new TPostScript("calo_match.ps",111);
0028    // ps->NewPage();
0029    
0030    TH1F* h1 = new TH1F("he1","Matched ECAL crystal energy",100,0,5);
0031    h1->SetFillColor(7);
0032    TH1F* h1_1 = new TH1F("he11","Matched ECAL crystal energy, pt<10",100,0,5);
0033    TH1F* h1_2 = new TH1F("he12","Matched ECAL crystal energy, 10<pt<30",100,0,5);
0034    TH1F* h1_3 = new TH1F("he13","Matched ECAL crystal energy, 30<pt",100,0,5);
0035    TH1F* h2 = new TH1F("he2","3x3 ECAL crystal energy",100,0,5);
0036    h2->SetFillColor(7);
0037    TH1F* h3 = new TH1F("he3","5x5 ECAL crystal energy",100,0,5);
0038    h3->SetFillColor(7);
0039    
0040    TH1F* h4 = new TH1F("he4","Matched HCAL crystal energy",100,0,25);
0041    h4->SetFillColor(3);
0042    TH1F* h5 = new TH1F("he5","3x3 HCAL crystal energy",100,0,25);
0043    h5->SetFillColor(3);
0044    TH1F* h6 = new TH1F("he6","5x5 HCAL crystal energy",100,0,25);
0045    h6->SetFillColor(3);
0046    tree->Draw("ecalCrossedEnergy>>he1");
0047    tree->Draw("ecal3x3Energy>>he2");
0048    tree->Draw("ecal5x5Energy>>he3");
0049    tree->Draw("hcalCrossedEnergy>>he4");
0050    tree->Draw("hcal3x3Energy>>he5");
0051    tree->Draw("hcal5x5Energy>>he6");
0052    // tree->Draw("ecalCrossedEnergy>>he11","trackPt<10");
0053    // tree->Draw("ecalCrossedEnergy>>he12","trackPt<30&&trackPt>10");
0054    // tree->Draw("ecalCrossedEnergy>>he13","trackPt>30");
0055    c->Clear();
0056    c->Divide(2,3);
0057    c->cd(1); h1->Draw();
0058    c->cd(2); h4->Draw();
0059    c->cd(3); h2->Draw();
0060    c->cd(4); h5->Draw();
0061    c->cd(5); h3->Draw();
0062    c->cd(6); h6->Draw();
0063    c->Update();
0064    c->Print("calo_match.pdf(","pdf");
0065    //ps->NewPage();
0066    std::cout << "NextPage" << std::endl;
0067    ////////////////////////////////////////////////////////////////////////////////////
0068     
0069    // TCanvas* c2 = new TCanvas("details","details",600,900);
0070    c->Clear();
0071    c->Divide(2,3);
0072    
0073    c->cd(1);
0074    TH1F* hh1 = new TH1F("hh1","ECAL dEta, energy deposition vs track propagatation",100,-0.1,0.1);
0075    tree->Draw("trkPosAtEcal[][0]-ecalMaxPos[][0]>>hh1");
0076    // resolution_fit(hh1,"ECAL dEta, energy deposition vs track propagatation");
0077    
0078    c->cd(2);
0079    TH1F* hh2 = new TH1F("hh2","ECAL dPhi, energy deposition vs track propagatation",100,-0.1,0.1);
0080    tree->Draw("trkPosAtEcal[][1]-ecalMaxPos[][1]>>hh2");
0081 
0082    c->cd(3);
0083    TH1F* hh3 = new TH1F("hh3","HCAL dEta, energy deposition vs track propagatation",100,-0.1,0.1);
0084    tree->Draw("trkPosAtHcal[][0]-hcalMaxPos[][0]>>hh3");
0085    
0086    c->cd(4);
0087    TH1F* hh4 = new TH1F("hh4","HCAL dPhi, energy deposition vs track propagatation",100,-0.1,0.1);
0088    tree->Draw("trkPosAtHcal[][1]-hcalMaxPos[][1]>>hh4");
0089 
0090    c->cd(5); 
0091    TH1F* hh5 = new TH1F("hh5","ECAL crystal Eta for failed matches",100,-3.5,3.5);
0092    tree->Draw("trkPosAtEcal[][0]>>hh5","fabs(ecalCrossedEnergy)<0.001");
0093 
0094    c->cd(6); 
0095    TH1F* hh6 = new TH1F("hh6","ECAL crystal Phi for failed matches",100,-3.5,3.5);
0096    tree->Draw("trkPosAtEcal[][1]>>hh6","fabs(ecalCrossedEnergy)<0.001");
0097    
0098    c->Update();
0099    c->Print("calo_match.pdf","pdf");
0100    // ps->NewPage();
0101    std::cout << "NextPage" << std::endl;
0102    ////////////////////////////////////////////////////////////////////////////////////
0103    
0104    // c = new TCanvas("ecal","ecal",600,900);
0105    c->Clear();
0106    c->Divide(2,3);
0107    c->cd(1);
0108    calomatch->Draw("ecal5x5Energy/ecalTrueEnergy:trkPosAtEcal[0][0]","ecal5x5Energy>0&&ecalTrueEnergy>0&&ecal5x5Energy/ecalTrueEnergy>0&&ecal5x5Energy/ecalTrueEnergy<5&&nTracks==1","colz");
0109    c->cd(2);
0110    calomatch->Draw("ecal5x5Energy/ecalTrueEnergy:trkPosAtEcal[0][1]","ecal5x5Energy>0&&ecalTrueEnergy>0&&ecal5x5Energy/ecalTrueEnergy>0&&ecal5x5Energy/ecalTrueEnergy<5&&nTracks==1","colz");
0111    c->cd(3);
0112    calomatch->Draw("ecal3x3Energy/ecalTrueEnergy:trkPosAtEcal[0][0]","ecal3x3Energy>0&&ecalTrueEnergy>0&&ecal3x3Energy/ecalTrueEnergy>0&&ecal3x3Energy/ecalTrueEnergy<5&&nTracks==1","colz");
0113    c->cd(4);
0114    calomatch->Draw("ecal3x3Energy/ecalTrueEnergy:trkPosAtEcal[0][1]","ecal3x3Energy>0&&ecalTrueEnergy>0&&ecal3x3Energy/ecalTrueEnergy>0&&ecal3x3Energy/ecalTrueEnergy<5&&nTracks==1","colz");
0115    c->cd(5);
0116    calomatch->Draw("ecalCrossedEnergy/ecalTrueEnergy:trkPosAtEcal[0][0]","ecalCrossedEnergy>0&&ecalTrueEnergy>0&&ecalCrossedEnergy/ecalTrueEnergy>0&&ecalCrossedEnergy/ecalTrueEnergy<5&&nTracks==1","colz");
0117    c->cd(6);
0118    calomatch->Draw("ecalCrossedEnergy/ecalTrueEnergy:trkPosAtEcal[0][1]","ecalCrossedEnergy>0&&ecalTrueEnergy>0&&ecalCrossedEnergy/ecalTrueEnergy>0&&ecalCrossedEnergy/ecalTrueEnergy<5&&nTracks==1","colz");
0119    
0120    c->Update();
0121    c->Print("calo_match.pdf","pdf");
0122    // ps->NewPage();
0123    std::cout << "NextPage" << std::endl;
0124    ////////////////////////////////////////////////////////////////////////////////////
0125 
0126    // c = new TCanvas("hcal","hcal",600,900);
0127    c->Clear();
0128    c->Divide(2,3);
0129    c->cd(1);
0130    calomatch->Draw("hcal5x5Energy/hcalTrueEnergyCorrected:trkPosAtHcal[0][0]",
0131            "hcalTrueEnergy>0&&hcal5x5Energy/hcalTrueEnergy>0&&hcal5x5Energy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0132    std::cout << "NextCD" << std::endl;
0133    c->cd(2);
0134    calomatch->Draw("hcal5x5Energy/hcalTrueEnergyCorrected:trkPosAtHcal[0][1]",
0135            "hcalTrueEnergy>0&&hcal5x5Energy/hcalTrueEnergy>0&&hcal5x5Energy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0136    std::cout << "NextCD" << std::endl;
0137    c->cd(3);
0138    calomatch->Draw("hcal3x3Energy/hcalTrueEnergyCorrected:trkPosAtHcal[0][0]",
0139            "hcal3x3Energy>0&&hcalTrueEnergy>0&&hcal3x3Energy/hcalTrueEnergy>0&&hcal3x3Energy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0140    std::cout << "NextCD" << std::endl;
0141    c->cd(4);
0142    calomatch->Draw("hcal3x3Energy/hcalTrueEnergyCorrected:trkPosAtHcal[0][1]",
0143            "hcal3x3Energy>0&&hcalTrueEnergy>0&&hcal3x3Energy/hcalTrueEnergy>0&&hcal3x3Energy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0144    std::cout << "NextCD" << std::endl;
0145    c->cd(5);
0146    calomatch->Draw("hcalCrossedEnergy/hcalTrueEnergyCorrected:trkPosAtHcal[0][0]",
0147            "hcalCrossedEnergy>0&&hcalTrueEnergy>0&&hcalCrossedEnergy/hcalTrueEnergy>0&&hcalCrossedEnergy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0148    std::cout << "NextCD" << std::endl;
0149    c->cd(6);
0150    calomatch->Draw("hcalCrossedEnergy/hcalTrueEnergyCorrected:trkPosAtHcal[0][1]",
0151            "hcalCrossedEnergy>0&&hcalTrueEnergy>0&&hcalCrossedEnergy/hcalTrueEnergy>0&&hcalCrossedEnergy/hcalTrueEnergyCorrected<5&&nTracks==1","colz");
0152 
0153    c->Update();
0154    // ps->NewPage();
0155    c->Print("calo_match.pdf","pdf");
0156    std::cout << "NextPage" << std::endl;
0157    ////////////////////////////////////////////////////////////////////////////////////
0158 
0159    // c = new TCanvas("energy_scale","energy scale",600,900);
0160    c->Clear();
0161    c->Divide(2,3);
0162    c->cd(1);
0163    calomatch->Draw("ecal5x5Energy/ecalTrueEnergy>>h11(50,0.2,3)","fabs(trkPosAtEcal[0][0])<1.48");
0164    if (fit) cruijff_fit(h11,"ecal5x5Energy/ecalTrueEnergy Barrel",0.5,1.5,0.1,10,0.1,10);
0165    c->cd(3);
0166    calomatch->Draw("ecal3x3Energy/ecalTrueEnergy>>h21(50,0.2,3)","fabs(trkPosAtEcal[0][0])<1.48");
0167    if (fit) cruijff_fit(h21,"ecal3x3Energy/ecalTrueEnergy Barrel",0.5,1.5,0.1,10,0.1,10);
0168    c->cd(5);
0169    calomatch->Draw("ecalCrossedEnergy/ecalTrueEnergy>>h31(50,0.2,3)","fabs(trkPosAtEcal[0][0])<1.48");
0170    if (fit) cruijff_fit(h31,"ecalCrossedEnergy/ecalTrueEnergy Barrel",0.5,1.5,0.1,10,0.1,10);
0171 
0172    c->cd(2);
0173    calomatch->Draw("hcal5x5Energy/hcalTrueEnergyCorrected>>h12(50,0.2,3.2)");
0174    if (fit) cruijff_fit(h12,"HCAL 5x5Energy/expectedEnergy",0.5,1.5,0.1,10,0.1,10);
0175    c->cd(4);
0176    calomatch->Draw("hcal3x3Energy/hcalTrueEnergyCorrected>>h22(50,0.2,3.2)");
0177    if (fit) cruijff_fit(h22,"HCAL 3x3Energy/expectedEnergy",0.5,1.5,0.1,10,0.1,10);
0178    c->cd(6);
0179    calomatch->Draw("hcalCrossedEnergy/hcalTrueEnergyCorrected>>h32(50,0.2,3.2)");
0180    if (fit) cruijff_fit(h32,"HCAL crossedEnergy/expectedEnergy",0.5,1.5,0.1,10,0.1,10);
0181    c->Print("calo_match.pdf)","pdf");
0182    // ps->Close();
0183    std::cout << "Done" << std::endl;
0184 
0185 }