]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/CalibMacros/CalibEdge.C
handle trigger FORs correctly
[u/mrichter/AliRoot.git] / TPC / CalibMacros / CalibEdge.C
CommitLineData
5de0955b 1/*
2
3.x ~/rootlogon.C
4
5gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
6gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+")
7AliXRDPROOFtoolkit tool;
8gSystem->Load("libSTAT.so");
9
10
11// Load - Calibration using the CE
12.L $ALICE_ROOT/TPC/CalibMacros/AnalyzeLaser.C+
13LoadViewer();
14tree->SetAlias("dedgePI","tan(10*pi/180.)*lx.fElements-ly.fElements+0.5*0.4");
15tree->SetAlias("dedgeMI","ly.fElements+tan(10*pi/180.)*lx.fElements-0.5*0.4");
16tree->SetAlias("dedgePO","tan(10*pi/180.)*lx.fElements-ly.fElements+0.5*0.6");
17tree->SetAlias("dedgeMO","ly.fElements+tan(10*pi/180.)*lx.fElements-0.5*0.6");
18
19// Load -Calibration using laser tracks
20// PROOF neccessary
21
22
23TChain * chainFit=0;
24TChain * chainTrack=0;
25TChain * chain=0;
26//
27gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
28gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+");
29AliXRDPROOFtoolkit tool;
30chainTrack = tool.MakeChain("laser.txt","Track",0,10200);
31chainTrack->Lookup();
32chainTrack->SetProof(kTRUE);
33chain = tool.MakeChain("laser.txt","Residuals",0,10200);
34chain->Lookup();
35chainFit = tool.MakeChain("laser.txt","FitModels",0,10200);
36chainFit->Lookup();
37chainFit->SetProof(kTRUE);
38chain->SetProof(kTRUE);
39chainDrift = tool.MakeChain("laser.txt","driftv",0,10200);
40chainDrift->Lookup();
41chainDrift->SetProof(kTRUE);
42
43 TCut cutChi2YOut("sqrt(chi2y2Out*dEdx)<5");
44 TCut cutChi2ZOut("sqrt(chi2z2Out*dEdx)<5");
45 TCut cutChi2YIn("sqrt(chi2y2In*dEdx)<5");
46 TCut cutChi2ZIn("sqrt(chi2z2In*dEdx)<5");
47 //
48 TCut cutdEdx("sqrt(dEdx)<30&&sqrt(dEdx)>3");
49 TCut cutDY("abs(yPol2In.fElements[2]*nclO*nclO/4.)<3");
50 TCut cutN("nclO>20&&nclI>20");
51 TCut cutA = cutChi2YOut+cutChi2ZOut+cutChi2YIn+cutChi2ZIn+cutN+cutdEdx;
52 //
53 // Cluster cuts
54 //
55 TCut cutClY("Cl[].fY!=0&&abs(Cl[].fY-TrYpol2.fElements)<1.");
56 TCut cutClZ("abs(Cl[].fZ-TrZpol2.fElements)<1.0");
57 TCut cutClX("abs(Cl[].fX)>10");
58 TCut cutE("abs(Cl[].fY/Cl[].fX)<0.14");
59 TCut cutSY("sqrt(Cl[].fSigmaY2)>0.05");
60 TCut cutSZ("sqrt(Cl[].fSigmaZ2)>0.05");
61 TCut cutQ("sqrt(Cl[].fMax)>4");
62 TCut cutCl=cutClY+cutClZ+cutClX+cutE+cutSY+cutSZ+cutQ;
63
64
65
66*/
67
68
69
70
71void CalibEdgeQPad(){
72 //
73 // Get the Mean charge on pad as function of pad number
74 //
75 TH2* hisQPadPShort= 0;
76 TH2* hisQPadMMiddle= 0;
77 TH2* hisQPadMLong= 0;
78 //
79 tree->Draw("qIn.fElements/qF2.fElements:pad.fElements>>hisQPadPShort(10,0,10,50,0.1,2)","abs(qIn.fElements/qF2.fElements-1)<0.9&&sector%36>17&&sector<36","");
80 hisQPadPShort = (TH2*)gROOT->FindObject("hisQPadPShort");
81 hisQPadPShort->FitSlicesY();
82 TH1 * hisQPadPShortM = (TH1*)(gROOT->FindObject("hisQPadPShort_1")->Clone());
83 //
84 tree->Draw("qIn.fElements/qF2.fElements:pad.fElements>>hisQPadPMiddle(10,0,10,50,0.1,2)","abs(qIn.fElements/qF2.fElements-1)<0.9&&sector%36>17&&sector>36&&lx.fElements<197","");
85 hisQPadPMiddle = (TH2*)gROOT->FindObject("hisQPadPMiddle");
86 hisQPadPMiddle->FitSlicesY();
87 TH1 * hisQPadPMiddleM = (TH1*)(gROOT->FindObject("hisQPadPMiddle_1")->Clone());
88 //
89 tree->Draw("qIn.fElements/qF2.fElements:pad.fElements>>hisQPadPLong(10,0,10,50,0.1,2)","abs(qIn.fElements/qF2.fElements-1)<0.9&&sector%36>17&&sector>36&&lx.fElements>197","");
90 hisQPadPLong = (TH2*)gROOT->FindObject("hisQPadPLong");
91 hisQPadPLong->FitSlicesY();
92 TH1 * hisQPadPLongM = (TH1*)(gROOT->FindObject("hisQPadPLong_1")->Clone());
93 //
94 hisQPadPShortM->SetLineColor(2);
95 hisQPadPMiddleM->SetLineColor(4);
96 hisQPadPLongM->SetLineColor(6);
97 hisQPadPShortM->SetMarkerStyle(23);
98 hisQPadPMiddleM->SetMarkerStyle(24);
99 hisQPadPLongM->SetMarkerStyle(25);
100
101 hisQPadPShortM->Draw();
102 hisQPadPShortM->SetMinimum(0);
103 hisQPadPShortM->SetMaximum(1.4);
104 hisQPadPMiddleM->Draw("same");
105 hisQPadPLongM->Draw("same");
106 TLegend *legend = new TLegend(0.45,0.12,0.85,0.55, "Mean charge vs Pad number");
107 legend->SetBorderSize(1);
108 legend->AddEntry(hisQPadPShortM,"Short pads");
109 legend->AddEntry(hisQPadPMiddleM,"Medium pads");
110 legend->AddEntry(hisQPadPLongM,"Long pads");
111 legend->Draw();
112
113}
114
115void CalibEdgeTPad(){
116 //
117 // Get the Mean charge on pad as function of pad number
118 //
119 TH2* hisTPadPShort= 0;
120 TH2* hisTPadMMiddle= 0;
121 TH2* hisTPadMLong= 0;
122 //
123 tree->Draw("(timeIn.fElements-timeF2.fElements)*2.64:pad.fElements>>hisTPadPShort(10,0,10,50,-1,1)","timeIn.fElements!=0&&sector%36>17&&sector<36","");
124 hisTPadPShort = (TH2*)gROOT->FindObject("hisTPadPShort");
125 hisTPadPShort->FitSlicesY();
126 TH1 * hisTPadPShortM = (TH1*)(gROOT->FindObject("hisTPadPShort_1")->Clone());
127 //
128 tree->Draw("(timeIn.fElements-timeF2.fElements)*2.64:pad.fElements>>hisTPadPMiddle(10,0,10,50,-1,1)","timeIn.fElements!=0&&sector%36>17&&sector>36&&lx.fElements<197","");
129 hisTPadPMiddle = (TH2*)gROOT->FindObject("hisTPadPMiddle");
130 hisTPadPMiddle->FitSlicesY();
131 TH1 * hisTPadPMiddleM = (TH1*)(gROOT->FindObject("hisTPadPMiddle_1")->Clone());
132 //
133 tree->Draw("(timeIn.fElements-timeF2.fElements)*2.64:pad.fElements>>hisTPadPLong(10,0,10,50,-1,1)","timeIn.fElements!=0&&sector%36>17&&sector>36&&lx.fElements>197","");
134 hisTPadPLong = (TH2*)gROOT->FindObject("hisTPadPLong");
135 hisTPadPLong->FitSlicesY();
136 TH1 * hisTPadPLongM = (TH1*)(gROOT->FindObject("hisTPadPLong_1")->Clone());
137 //
138
139
140
141 //
142 hisTPadPShortM->SetLineColor(2);
143 hisTPadPMiddleM->SetLineColor(4);
144 hisTPadPLongM->SetLineColor(6);
145 hisTPadPShortM->SetMarkerStyle(23);
146 hisTPadPMiddleM->SetMarkerStyle(24);
147 hisTPadPLongM->SetMarkerStyle(25);
148
149 hisTPadPShortM->Draw();
150 hisTPadPShortM->SetMinimum(-0.3);
151 hisTPadPShortM->SetMaximum(0.2);
152 hisTPadPMiddleM->Draw("same");
153 hisTPadPLongM->Draw("same");
154 TLegend *legend = new TLegend(0.45,0.12,0.85,0.35, "Mean charge vs Pad number");
155 legend->SetBorderSize(1);
156 legend->AddEntry(hisTPadPShortM,"Short pads");
157 legend->AddEntry(hisTPadPMiddleM,"Medium pads");
158 legend->AddEntry(hisTPadPLongM,"Long pads");
159 legend->Draw();
160
161}
162
163
164
165
166void CalibEdgeQ(){
167 //
168 //
169 //
170 TH1* hisQedgePInner= 0;
171 TH1* hisQedgeMInner= 0;
172 TH1* hisQedgePOuter= 0;
173 TH1* hisQedgeMOuter= 0;
174
175 tree->Draw("qIn.fElements/qF2.fElements:dedgePI>>hisQedgePInner(50,0,5)","abs(qIn.fElements/qF2.fElements-1)<0.9&&sector%36>17&&sector<36","prof");
176 tree->Draw("qIn.fElements/qF2.fElements:dedgeMI>>hisQedgeMInner(50,0,5)","abs(qIn.fElements/qF2.fElements-1)<0.9&&sector%36>17&&sector<36","prof");
177
178 hisQedgePInner = (TH1*)gROOT->FindObject("hisQedgePInner");
179 hisQedgeMInner = (TH1*)gROOT->FindObject("hisQedgeMInner");
180 hisQedgePInner->SetLineColor(2);
181 hisQedgeMInner->SetLineColor(4);
182 hisQedgePInner->Draw();
183 hisQedgeMInner->Draw("same");
184 //
185 //
186 //
187 tree->Draw("qIn.fElements/qF2.fElements:dedgePO>>hisQedgePOuter(50,0,5)","abs(qIn.fElements/qF2.fElements-1)<0.9&&sector%36>17&&sector>36&&lx.fElements<200","prof");
188 tree->Draw("qIn.fElements/qF2.fElements:dedgeMO>>hisQedgeMOuter(50,0,5)","abs(qIn.fElements/qF2.fElements-1)<0.9&&sector%36>17&&sector>36&&lx.fElements<200","prof");
189 hisQedgePOuter = (TH1*)gROOT->FindObject("hisQedgePOuter");
190 hisQedgeMOuter = (TH1*)gROOT->FindObject("hisQedgeMOuter");
191 hisQedgePOuter->SetLineColor(2);
192 hisQedgeMOuter->SetLineColor(4);
193 hisQedgePOuter->Draw();
194 hisQedgeMOuter->Draw("same");
195}
196
197
198
199
200
201
202void EdgeLaserZ(){
203
204
205 TH2* hisZedgePInnerA = 0;
206 TH2* hisZedgePMiddleA = 0;
207 TH2* hisZedgePLongA = 0;
208 TObjArray farray(100);
209 delete gROOT->FindObject("hisEdge");
210 chain->Draw("Cl[].fZ-TrZpol1.fElements:Cl[].fPad>>hisEdge1(50,0,10,50, -0.5,0.5)",cutA+cutClZ+"Cl[].fDetector<36&&Cl[].fDetector<18&&Cl[].fPad>0","",50000);
211 hisZedgePInnerA = (TH2*)(gROOT->FindObject("hisEdge"));
212
213 hisZedgePInnerA->FitSlicesY(0,0,-1,0,"QNR",&farray);
214 farray->At(1)->Draw();
215
216}