#include int xft_fiducialcheck(Char_t* filename="119632.hbk") { //Clear out variables on the stack (avoids much grief) gROOT->Reset(); gROOT->LoadMacro("xft_effCalc.C"); gStyle->SetHistLineWidth(1); gStyle->SetPadGridX(true); gStyle->SetPadGridY(true); gStyle->SetLabelSize(0.07,"XY"); gStyle->SetTitleSize(0.08, "XY"); gStyle->SetTitleOffset(0.3, "XY"); gStyle->SetFuncColor(6); gStyle->SetFuncWidth(6.); gStyle->SetOptStat(0); //Integral, Overflow, Underflow, RMS, Mean, Nent, Name gStyle->SetOptFit(11); //probability, Chi2, errors, name/values of parameters //Open histogram file cout << "filename is "<< filename << endl; TFile* f= new TFile(filename); //Open file in which to store pictures TPostScript *ps = new TPostScript("XFT_fiducialcheck.ps",111); //Open Canvas TCanvas *myc = new TCanvas("MyC","Test Canvas",700,700); ps->NewPage(); myc->Clear(); myc->Divide(1,3); myc->cd(1); gPad->SetLogy(true); allPt->SetXTitle("L3 pT (GeV/c)"); allPt->SetYTitle("L3 tracks"); allPt->SetLineColor(6); allPt->SetMarkerColor(6); allPt->Draw("e0"); qallPt->SetLineColor(4); qallPt->SetMarkerColor(4); qallPt->Draw("e0same"); // offPt->GetXaxis()->SetRange(0,200); offPt->Draw("e0same"); offPtMissed->SetFillColor(2); offPtMissed->Draw("same"); leg= new TLegend(.6,0.5,.9,0.8,""); leg->AddEntry(allPt,"Tracks with pt above 1.5 GeV/c"); leg->AddEntry(qallPt,"+ COT hits > 20 in Ax and St"); leg->AddEntry(offPt,"+ Fiducial and max pt"); leg->AddEntry(offPtMissed,"+ xft missed"); leg->SetFillColor(0); leg->Draw(); myc->cd(2); allPhi->SetXTitle("L3 #phi (radians)"); allPhi->SetYTitle("L3 tracks"); allPhi->SetLineColor(6); allPhi->SetMarkerColor(6); allPhi->Draw("e0"); qallPhi->SetLineColor(4); qallPhi->SetMarkerColor(4); qallPhi->Draw("e0same"); offPhi->Draw("e0same"); offPhiMissed->SetFillColor(2); offPhiMissed->Draw("same"); myc->cd(3); allEta->SetXTitle("L3 #eta"); allEta->SetYTitle("L3 tracks"); allEta->SetLineColor(6); allEta->SetMarkerColor(6); allEta->Draw("e0"); qallEta->SetLineColor(4); qallEta->SetMarkerColor(4); qallEta->Draw("e0same"); offEta->Draw("e0same"); offEtaMissed->SetFillColor(2); offEtaMissed->Draw("same"); myc->Update(); char *ch = new char[1]; printf(" Hit Enter to continue \n"); gets(ch); ps->NewPage(); myc->Clear(); myc->Divide(1,3); myc->cd(1); TH1F* fidPt = offPt->Clone(); xft_effCalc(qallPt,allPt,fidPt); fidPt->SetXTitle("L3 pT (GeV/c)"); fidPt->SetYTitle("Fiducial cut effect "); fidPt->SetMaximum(1.01); fidPt->GetXaxis()->SetRange(0,200); fidPt->Draw("e0"); TH1F* qfidPt = offPt->Clone(); xft_effCalc(offPt,allPt,qfidPt); qfidPt->SetLineColor(2); qfidPt->Draw("e0same"); TH1F* qqfidPt = offPt->Clone(); xft_effCalc(offPt,qallPt,qqfidPt); qqfidPt->SetLineColor(3); qqfidPt->Draw("e0same"); leg= new TLegend(.6,0.2,.9,0.5,""); leg->AddEntry(fidPt,"COT hits > 20 in Ax and St"); leg->AddEntry(qfidPt,"+ Fiducial and maxpt"); leg->AddEntry(qqfidPt,"Fiducial and maxpt only"); leg->SetFillColor(0); leg->Draw(); myc->cd(2); TH1F* fidPhi = offPhi->Clone(); xft_effCalc(qallPhi,allPhi,fidPhi); fidPhi->SetXTitle("L3 Phi (radians)"); fidPhi->SetYTitle("Fiducial cut effect "); fidPhi->SetMaximum(1.01); fidPhi->Draw("e0"); TH1F* qfidPhi = offPhi->Clone(); xft_effCalc(offPhi,allPhi,qfidPhi); qfidPhi->SetLineColor(2); qfidPhi->Draw("e0same"); TH1F* qqfidPhi = offPhi->Clone(); xft_effCalc(offPhi,qallPhi,qqfidPhi); qqfidPhi->SetLineColor(3); qqfidPhi->Draw("e0same"); myc->cd(3); TH1F* fidEta = offEta->Clone(); xft_effCalc(qallEta,allEta,fidEta); fidEta->SetXTitle("L3 #eta "); fidEta->SetYTitle("Fiducial cut effect "); fidEta->SetMaximum(1.01); fidEta->Draw("e0"); TH1F* qfidEta= offEta->Clone(); xft_effCalc(offEta,allEta,qfidEta); qfidEta->SetLineColor(2); qfidEta->Draw("e0same"); TH1F* qqfidEta = offEta->Clone(); xft_effCalc(offEta,qallEta,qqfidEta); qqfidEta->SetLineColor(3); qqfidEta->Draw("e0same"); myc->Update(); char *ch = new char[1]; printf(" Hit Enter to continue \n"); gets(ch); ps->NewPage(); myc->Clear(); myc->Divide(1,3); myc->cd(1); alld0->SetXTitle("L3 d0 (cm)"); alld0->SetYTitle("L3 tracks"); alld0->SetLineColor(6); alld0->SetMarkerColor(6); alld0->Draw("e0"); qalld0->SetLineColor(4); qalld0->SetMarkerColor(4); qalld0->Draw("e0same"); offd0->Draw("e0same"); offd0Missed->SetFillColor(2); offd0Missed->Draw("same"); leg= new TLegend(.6,0.5,.9,0.8,""); leg->AddEntry(alld0,"Tracks with pt above 1.5 GeV/c"); leg->AddEntry(qalld0,"+ COT hits > 20 in Ax and St"); leg->AddEntry(offd0,"+ Fiducial and max pt"); leg->SetFillColor(0); leg->Draw(); myc->cd(2); allz0->SetXTitle("L3 z0 (cm)"); allz0->SetYTitle("L3 tracks"); allz0->SetLineColor(6); allz0->SetMarkerColor(6); allz0->Draw("e0"); qallz0->SetLineColor(4); qallz0->SetMarkerColor(4); qallz0->Draw("e0same"); offz0->Draw("e0same"); offz0Missed->SetFillColor(2); offz0Missed->Draw("same"); myc->cd(3); allCotan->SetXTitle("L3 Cotan #theta "); allCotan->SetYTitle("L3 tracks"); allCotan->SetLineColor(6); allCotan->SetMarkerColor(6); allCotan->Draw("e0"); qallCotan->SetLineColor(4); qallCotan->SetMarkerColor(4); qallCotan->Draw("e0same"); offCotan->Draw("e0same"); offCotanMissed->SetFillColor(2); offCotanMissed->Draw("same"); myc->Update(); char *ch = new char[1]; printf(" Hit Enter to continue \n"); gets(ch); ps->NewPage(); myc->Clear(); myc->Divide(1,3); myc->cd(1); TH1F* fidd0 = offd0->Clone(); xft_effCalc(qalld0,alld0,fidd0); fidd0->SetXTitle("L3 d0 (cm)"); fidd0->SetYTitle("Fiducial cut effect "); fidd0->SetMaximum(1.01); fidd0->Draw("e0"); TH1F* qfidd0 = offd0->Clone(); xft_effCalc(offd0,alld0,qfidd0); qfidd0->SetLineColor(2); qfidd0->Draw("e0same"); TH1F* qqfidd0 = offd0->Clone(); xft_effCalc(offd0,qalld0,qqfidd0); qqfidd0->SetLineColor(3); qqfidd0->Draw("e0same"); leg= new TLegend(.6,0.2,.9,0.5,""); leg->AddEntry(fidd0,"COT hits > 20 in Ax and St"); leg->AddEntry(qfidd0,"+ Fiducial and maxpt"); leg->AddEntry(qqfidd0,"Fiducial and maxpt only"); leg->SetFillColor(0); leg->Draw(); myc->cd(2); TH1F* fidz0 = offz0->Clone(); xft_effCalc(qallz0,allz0,fidz0); fidz0->SetXTitle("L3 z0 (cm)"); fidz0->SetYTitle("Fiducial cut effect "); fidz0->SetMaximum(1.01); fidz0->Draw("e0"); TH1F* qfidz0 = offz0->Clone(); xft_effCalc(offz0,allz0,qfidz0); qfidz0->SetLineColor(2); qfidz0->Draw("e0same"); TH1F* qqfidz0 = offz0->Clone(); xft_effCalc(offz0,qallz0,qqfidz0); qqfidz0->SetLineColor(3); qqfidz0->Draw("e0same"); myc->cd(3); TH1F* fidCotan = offCotan->Clone(); xft_effCalc(qallCotan,allCotan,fidCotan); fidCotan->SetXTitle("L3 Cotan #theta "); fidCotan->SetYTitle("Fiducial cut effect "); fidCotan->SetMaximum(1.01); fidCotan->Draw("e0"); TH1F* qfidCotan = offCotan->Clone(); xft_effCalc(offCotan,allCotan,qfidCotan); qfidCotan->SetLineColor(2); qfidCotan->Draw("e0same"); TH1F* qqfidCotan = offCotan->Clone(); xft_effCalc(offCotan,qallCotan,qqfidCotan); qqfidCotan->SetLineColor(3); qqfidCotan->Draw("e0same"); myc->Update(); char *ch = new char[1]; printf(" Hit Enter to continue \n"); gets(ch); ps->NewPage(); myc->Clear(); myc->Divide(1,4); myc->cd(1); allZSl0->SetXTitle("L3 Z position at sl0 (cm)"); allZSl0->SetYTitle("L3 tracks"); allZSl0->SetLineColor(6); allZSl0->SetMarkerColor(6); allZSl0->Draw("e0"); qallZSl0->SetLineColor(4); qallZSl0->SetMarkerColor(4); qallZSl0->Draw("e0same"); offZSl0->Draw("e0same"); offZSl0Missed->SetFillColor(2); offZSl0Missed->Draw("same"); leg= new TLegend(.6,0.5,.9,0.8,""); leg->AddEntry(allZSl0,"Tracks with pt above 1.5 GeV/c"); leg->AddEntry(qallZSl0,"+ COT hits > 20 in Ax and St"); leg->AddEntry(offZSl0,"+ Fiducial and max pt"); leg->SetFillColor(0); leg->Draw(); myc->cd(2); allZSl1->SetXTitle("L3 Z position at sl1 (cm)"); allZSl1->SetYTitle("L3 tracks"); allZSl1->SetLineColor(6); allZSl1->SetMarkerColor(6); allZSl1->Draw("e0"); qallZSl1->SetLineColor(4); qallZSl1->SetMarkerColor(4); qallZSl1->Draw("e0same"); offZSl1->Draw("e0same"); offZSl1Missed->SetFillColor(2); offZSl1Missed->Draw("same"); myc->cd(3); allZSl2->SetXTitle("L3 Z position at sl2 (cm)"); allZSl2->SetYTitle("L3 tracks"); allZSl2->SetLineColor(6); allZSl2->SetMarkerColor(6); allZSl2->Draw("e0"); qallZSl2->SetLineColor(4); qallZSl2->SetMarkerColor(4); qallZSl2->Draw("e0same"); offZSl2->Draw("e0same"); offZSl2Missed->SetFillColor(2); offZSl2Missed->Draw("same"); myc->cd(4); allZSl3->SetXTitle("L3 Z position at sl3 (cm)"); allZSl3->SetYTitle("L3 tracks"); allZSl3->SetLineColor(6); allZSl3->SetMarkerColor(6); allZSl3->Draw("e0"); qallZSl3->SetLineColor(4); qallZSl3->SetMarkerColor(4); qallZSl3->Draw("e0same"); offZSl3->Draw("e0same"); offZSl3Missed->SetFillColor(2); offZSl3Missed->Draw("same"); myc->Update(); char *ch = new char[1]; printf(" Hit Enter to continue \n"); gets(ch); ps->NewPage(); myc->Clear(); myc->Divide(1,4); myc->cd(1); TH1F* fidZSl0 = offZSl0->Clone(); xft_effCalc(qallZSl0,allZSl0,fidZSl0); fidZSl0->SetXTitle("L3 ZSl0 (cm)"); fidZSl0->SetYTitle("Fiducial cut effect "); fidZSl0->SetMaximum(1.01); fidZSl0->Draw("e0"); TH1F* qfidZSl0 = offZSl0->Clone(); xft_effCalc(offZSl0,allZSl0,qfidZSl0); qfidZSl0->SetLineColor(2); qfidZSl0->Draw("e0same"); TH1F* qqfidZSl0 = offZSl0->Clone(); xft_effCalc(offZSl0,qallZSl0,qqfidZSl0); qqfidZSl0->SetLineColor(3); qqfidZSl0->Draw("e0same"); leg= new TLegend(.6,0.2,.9,0.5,""); leg->AddEntry(fidZSl0,"COT hits > 20 in Ax and St"); leg->AddEntry(qfidZSl0,"+ Fiducial and maxpt"); leg->AddEntry(qqfidZSl0,"Fiducial and maxpt only"); leg->SetFillColor(0); leg->Draw(); myc->cd(2); TH1F* fidZSl1 = offZSl1->Clone(); xft_effCalc(qallZSl1,allZSl1,fidZSl1); fidZSl1->SetXTitle("L3 ZSl1 (cm)"); fidZSl1->SetYTitle("Fiducial cut effect "); fidZSl1->SetMaximum(1.01); fidZSl1->Draw("e0"); TH1F* qfidZSl1 = offZSl1->Clone(); xft_effCalc(offZSl1,allZSl1,qfidZSl1); qfidZSl1->SetLineColor(2); qfidZSl1->Draw("e0same"); TH1F* qqfidZSl1 = offZSl1->Clone(); xft_effCalc(offZSl1,qallZSl1,qqfidZSl1); qqfidZSl1->SetLineColor(3); qqfidZSl1->Draw("e0same"); myc->cd(3); TH1F* fidZSl2 = offZSl2->Clone(); xft_effCalc(qallZSl2,allZSl2,fidZSl2); fidZSl2->SetXTitle("L3 ZSl2 (cm)"); fidZSl2->SetYTitle("Fiducial cut effect "); fidZSl2->SetMaximum(1.01); fidZSl2->Draw("e0"); TH1F* qfidZSl2 = offZSl2->Clone(); xft_effCalc(offZSl2,allZSl2,qfidZSl2); qfidZSl2->SetLineColor(2); qfidZSl2->Draw("e0same"); TH1F* qqfidZSl2 = offZSl2->Clone(); xft_effCalc(offZSl2,qallZSl2,qqfidZSl2); qqfidZSl2->SetLineColor(3); qqfidZSl2->Draw("e0same"); myc->cd(4); TH1F* fidZSl3 = offZSl3->Clone(); xft_effCalc(qallZSl3,allZSl3,fidZSl3); fidZSl3->SetXTitle("L3 ZSl3 (cm)"); fidZSl3->SetYTitle("Fiducial cut effect "); fidZSl3->SetMaximum(1.01); fidZSl3->Draw("e0"); TH1F* qfidZSl3 = offZSl3->Clone(); xft_effCalc(offZSl3,allZSl3,qfidZSl3); qfidZSl3->SetLineColor(2); qfidZSl3->Draw("e0same"); TH1F* qqfidZSl3 = offZSl3->Clone(); xft_effCalc(offZSl3,qallZSl3,qqfidZSl3); qqfidZSl3->SetLineColor(3); qqfidZSl3->Draw("e0same"); myc->Update(); ps->Close(); char *ch = new char[1]; printf(" Hit Enter to continue \n"); gets(ch); return 0; }