]>
Commit | Line | Data |
---|---|---|
2d2409b3 | 1 | #include <iostream.h> |
2 | #include <fstream.h> | |
3 | ||
4 | void ITSPlotFakeTracks(){ | |
5 | ||
6 | ifstream in ("AliITSTra.out"); | |
7 | ||
8 | TVector DataOut(10); | |
9 | ||
10 | ///////////////////////////////// Histograms definition /////////////////////////////////////////// | |
11 | ||
12 | ||
13 | TH1F *hp=new TH1F("hp","PHI resolution",25,-80.,80.); hp->SetFillColor(4); | |
14 | TH1F *hl=new TH1F("hl","LAMBDA resolution",25,-80.,80.); hl->SetFillColor(4); | |
15 | ||
16 | // TH1F *hp=new TH1F("hp","PHI resolution",50,-5.,5.); hp->SetFillColor(4); | |
17 | //TH1F *hl=new TH1F("hl","LAMBDA resolution",50,-5.,5.); hl->SetFillColor(4); | |
18 | ||
19 | // TH1F *hpt=new TH1F("hpt","Relative Pt resolution",50,-5.,5.); | |
20 | TH1F *hpt=new TH1F("hpt","Relative Pt resolution",40,-20.,20.); | |
21 | hpt->SetFillColor(2); | |
22 | TH1F *hd=new TH1F("hd","Impact parameter distribution ",100,0,2000); | |
23 | hd->SetFillColor(6); | |
24 | ||
25 | TH1F *hdr=new TH1F("hdr","Dr ",50,-1000,1000); | |
26 | hdr->SetFillColor(kGreen); | |
27 | TH1F *hdz=new TH1F("hdz","Dz ",50,-1000,1000); | |
28 | hdz->SetFillColor(kBlue); | |
29 | ||
30 | /* | |
31 | TH1F *hdr=new TH1F("hdr","Dr ",50,-100,100); | |
32 | hdr->SetFillColor(kGreen); | |
33 | TH1F *hdz=new TH1F("hdz","Dz ",50,-1000,1000); | |
34 | hdz->SetFillColor(kBlue); | |
35 | */ | |
36 | ||
37 | TH1F *hgood=new TH1F("hgood","Good tracks",10,0,2); | |
38 | hgood->Sumw2(); // aggiunto il 15-01-01 | |
39 | TH1F *hfound=new TH1F("hfound","Found tracks",10,0,2); | |
40 | hfound->Sumw2(); // aggiunto il 15-01-01 | |
41 | TH1F *hfake=new TH1F("hfake","Fake tracks",10,0,2); | |
42 | hfake->Sumw2(); | |
43 | TH1F *hg=new TH1F("hg","",10,0,2); //efficiency for good tracks | |
44 | hg->SetLineColor(4); hg->SetLineWidth(2); | |
45 | TH1F *hf=new TH1F("hf","Efficiency for fake tracks",10,0,2); | |
46 | /*hf->SetFillColor(1); hf->SetFillStyle(3013);*/ hf->SetLineColor(4); hf->SetLineWidth(2); | |
47 | ||
48 | /////////////////////////////////////////////////////////////////////////////////////////////////// | |
49 | ||
50 | ifstream in1 ("AliITSTrag.out"); | |
51 | Double_t ptg; | |
52 | for(;;) { | |
53 | in1 >> ptg; | |
54 | if( in1.eof() ) break; | |
55 | hgood->Fill(ptg); | |
56 | } | |
57 | in1.close(); | |
58 | ||
59 | Int_t neglabs=0; // provvisoria | |
60 | for (;;){ | |
61 | for (int r=0; r<9; r++) in>>DataOut(r); | |
62 | if( in.eof() ) break; | |
63 | ||
64 | Double_t ptg=DataOut(0); Double_t labITS=DataOut(1); Double_t labTPC=DataOut(2); | |
65 | Double_t ptperc=DataOut(3); | |
66 | Double_t deltalam=DataOut(4); Double_t deltaphi=DataOut(5); | |
67 | Double_t Dtot=DataOut(6); Double_t Dr=DataOut(7); Double_t Dz=DataOut(8); | |
68 | ||
69 | if(labITS<0) neglabs++; // provvisoria | |
70 | if(labITS>=0) hfound->Fill(ptg); else { hfake->Fill(ptg);} | |
71 | ||
72 | if(labITS<0 ) { // >= | |
73 | hpt->Fill(ptperc); | |
74 | hl->Fill(deltalam); | |
75 | hp->Fill(deltaphi); | |
76 | hd->Fill(Dtot); | |
77 | hdr->Fill(Dr); | |
78 | hdz->Fill(Dz); | |
79 | } | |
80 | } | |
81 | ||
82 | ||
83 | in.close(); | |
84 | Stat_t ngood=hgood->GetEntries(); cerr<<"Good tracks "<<ngood<<endl; | |
85 | Stat_t nfound=hfound->GetEntries(); cerr<<"Found tracks "<<nfound<<endl; | |
86 | Stat_t nfake=hfake->GetEntries(); cerr<<"Fake tracks "<<nfake<<endl; | |
87 | gStyle->SetOptStat(111110); | |
88 | gStyle->SetOptFit(1); | |
89 | TCanvas *c1=new TCanvas("c1","",0,0,700,700); | |
90 | TPad *p1=new TPad("p1","",0,0.5,0.5,1); p1->Draw(); hp->SetXTitle("(mrad)"); | |
91 | p1->cd(); hp->Draw(); hp->Fit("gaus"); c1->cd(); | |
92 | TPad *p2=new TPad("p2","",0.5,0.5,1,1); p2->Draw(); hl->SetXTitle("(mrad)"); | |
93 | p2->cd(); hl->Draw(); hl->Fit("gaus"); c1->cd(); | |
94 | TPad *p3=new TPad("p3","",0,0,0.5,0.5); p3->Draw(); hpt->SetXTitle("(%)"); | |
95 | p3->cd(); hpt->Draw(); hpt->Fit("gaus"); c1->cd(); | |
96 | TPad *p4=new TPad("p4","",0.5,0,1,0.5); p4->Draw(); hd->SetXTitle("(micron)"); | |
97 | p4->cd(); hd->Draw(); c1->cd(); | |
98 | ||
99 | TCanvas *c3=new TCanvas("c3","",200,200,800,500); | |
100 | hfound->Print("all"); // aggiunto il 16-01-01 | |
101 | hgood->Print("all"); // aggiunto il 16-01-01 | |
102 | TPad *p7=new TPad("p7","",0,0,0.333,1); p7->Draw(); p7->cd(); hfound->Draw(); c3->cd(); | |
103 | TPad *p8=new TPad("p8","",0.333,0,0.666,1); p8->Draw(); p8->cd(); hfake->Draw(); c3->cd(); | |
104 | TPad *p9=new TPad("p9","",0.666,0,1,1); p9->Draw(); p9->cd(); hgood->Draw(); c3->cd(); | |
105 | ||
106 | TCanvas *c4=new TCanvas("c4","",300,300,800,500); | |
107 | hg->Divide(hfound,hgood,1.,1.); //,"b"); | |
108 | hf->Divide(hfake,hgood,1.,1.); //,"b"); | |
109 | hg->SetMaximum(1.4); | |
110 | hg->SetYTitle("Tracking efficiency"); | |
111 | hg->SetXTitle("Pt (GeV/c)"); | |
112 | hg->Print("all"); // aggiunto il 16-01-01 | |
113 | hg->Draw(); // to not plot the erro bars hg->Draw("histo"); | |
114 | TLine *line1 = new TLine(0,1.0,2,1.0); line1->SetLineStyle(4); | |
115 | line1->Draw("same"); | |
116 | TLine *line2 = new TLine(0,0.9,2,0.9); line2->SetLineStyle(4); | |
117 | line2->Draw("histosame"); | |
118 | ||
119 | ||
120 | hf->SetFillColor(1); | |
121 | hf->SetFillStyle(3013); | |
122 | hf->SetLineColor(2); | |
123 | hf->SetLineWidth(2); | |
124 | hf->Draw("same"); // to not plot the error bars hf->Draw("histosame"); | |
125 | ||
126 | TText *text = new TText(0.461176,0.248448,"Fake tracks"); | |
127 | text->SetTextSize(0.05); | |
128 | text->Draw(); | |
129 | text = new TText(0.453919,1.11408,"Good tracks"); | |
130 | text->SetTextSize(0.05); | |
131 | text->Draw(); | |
132 | ||
133 | TCanvas *c2=new TCanvas("c2","",100,100,700,400); | |
134 | TPad *p5=new TPad("p5","",0,0,0.5,1); p5->Draw(); hdr->SetXTitle("(micron)"); | |
135 | p5->cd(); hdr->Draw(); hdr->Fit("gaus"); c2->cd(); | |
136 | TPad *p6=new TPad("p6","",0.5,0,1,1); p6->Draw(); hdz->SetXTitle("(micron)"); | |
137 | p6->cd(); hdz->Draw(); hdz->Fit("gaus"); c2->cd(); | |
138 | ||
139 | cout<<"neglabs = "<<neglabs<<"\n"; // provvisoria | |
140 | } |