]>
Commit | Line | Data |
---|---|---|
59280a5a | 1 | AliRun *a; AliRunLoader *al; TGeoManager *g; //globals for easy manual manipulations |
2 | AliHMPID *h; AliLoader *hl; AliHMPIDParam *hp; | |
594d861b | 3 | Bool_t isGeomType=kFALSE; |
4 | ||
1d4857c5 | 5 | Int_t nCurEvt=0; |
6 | Int_t nMaxEvt=0; | |
7 | TControlBar *pMenu=0; | |
594d861b | 8 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
9 | void GetParam() | |
10 | { | |
11 | isGeomType=!isGeomType; | |
59280a5a | 12 | if(g) delete g; if(hp) delete hp; //delete current TGeoManager and AliHMPIDParam |
594d861b | 13 | if(isGeomType) g=TGeoManager::Import("geometry.root"); |
14 | else g=TGeoManager::Import("misaligned_geometry.root"); | |
59280a5a | 15 | hp=AliHMPIDParam::Instance(); |
d1bf51e1 | 16 | }//GetParam() |
594d861b | 17 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
18 | void Hmenu() | |
19 | { | |
20 | TString status="Status: "; | |
21 | if(gSystem->IsFileInIncludePath("galice.root")){ | |
1d4857c5 | 22 | status+="galice.root: "; |
594d861b | 23 | al=AliRunLoader::Open(); //try to open galice.root from current dir |
24 | if(gAlice) delete gAlice; //in case we execute this in aliroot delete default AliRun object | |
25 | al->LoadgAlice(); a=al->GetAliRun(); //take new AliRun object from galice.root | |
59280a5a | 26 | hl=al->GetDetectorLoader("HMPID"); h=(AliHMPID*)a->GetDetector("HMPID"); //get HMPID object from galice.root |
594d861b | 27 | |
1d4857c5 | 28 | status+=(h)? "HMPID": "PROBLEM PROBLEM PROBLEM- no HMPID"; |
29 | nMaxEvt=al->GetNumberOfEvents()-1; | |
30 | status+=Form(" Event(s) 0-%i",nMaxEvt); | |
594d861b | 31 | }else |
1d4857c5 | 32 | status+="PROBLEM PROBLEM PROBLEM no galice.root"; |
594d861b | 33 | |
1d4857c5 | 34 | status+=Form(" curent event %i",nCurEvt); |
594d861b | 35 | GetParam(); |
1d4857c5 | 36 | pMenu = new TControlBar("horizontal",status.Data(),0,0); |
594d861b | 37 | pMenu->AddButton(" ","",""); |
d1bf51e1 | 38 | pMenu->AddButton(" General ","General()" ,"general items which do not depend on any files"); |
594d861b | 39 | pMenu->AddButton(" ","" ,""); |
d1bf51e1 | 40 | pMenu->AddButton(" Sim data ","SimData()" ,"items which expect to have simulated files" ); |
594d861b | 41 | pMenu->AddButton(" ","" ,""); |
d1bf51e1 | 42 | pMenu->AddButton(" Raw data ","RawData()" ,"items which expect to have raw files" ); |
b03773cc | 43 | pMenu->AddButton(" "," " ,""); |
d1bf51e1 | 44 | pMenu->AddButton(" Test ","Test()" ,"all test utilities"); |
b03773cc | 45 | pMenu->AddButton(" PREV EVENT ","PrevEvent()" ,"Set the previous event" ); |
46 | pMenu->AddButton(" NEXT EVENT ","NextEvent()","Set the next event" ); | |
47 | pMenu->AddButton(" Quit ",".q" ,"close session" ); | |
594d861b | 48 | pMenu->Show(); |
d1bf51e1 | 49 | }//Menu() |
594d861b | 50 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
51 | void General() | |
52 | { | |
d1bf51e1 | 53 | TControlBar *pMenu = new TControlBar("vertical","General purpose",100,50); |
1d4857c5 | 54 | pMenu->AddButton("Debug ON","don();" ,"Switch debug on-off" ); |
55 | pMenu->AddButton("Debug OFF","doff();" ,"Switch debug on-off" ); | |
59280a5a | 56 | pMenu->AddButton("Geo GUI","geo();" ,"Shows geometry" ); |
57 | pMenu->AddButton("Browser","new TBrowser;" ,"Start ROOT TBrowser" ); | |
594d861b | 58 | pMenu->Show(); |
d1bf51e1 | 59 | }//General() |
594d861b | 60 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
61 | void SimData() | |
62 | { | |
1d4857c5 | 63 | TControlBar *pSim = new TControlBar("vertical","Sim data",310,50); |
64 | pSim->AddButton("Display ","hed();" ,"Display Fast"); | |
65 | pSim->AddButton("HITS QA" ,"hqa()" ,"QA plots for hits: hqa()"); | |
66 | pSim->AddButton("Print stack" ,"stack();" ,"To print hits: hp(evt)"); | |
67 | pSim->AddButton("Print hits" ,"hp(nCurEvt);" ,"To print hits: hp(evt)"); | |
68 | pSim->AddButton("Print sdigits" ,"sp(nCurEvt);" ,"To print sdigits: sp(evt)"); | |
69 | pSim->AddButton("Print digits" ,"dp(nCurEvt);" ,"To print digits: dp(evt)"); | |
70 | pSim->AddButton("Print clusters" ,"cp(nCurEvt);" ,"To print clusters: cp(evt)"); | |
71 | pSim->Show(); | |
d1bf51e1 | 72 | }//SimData() |
594d861b | 73 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
74 | void RawData() | |
75 | { | |
d1bf51e1 | 76 | TControlBar *pMenu = new TControlBar("vertical","Raw data",580,50); |
594d861b | 77 | pMenu->AddButton("ESD print" ,"ep();" ,"To print ESD info: ep()" ); |
78 | pMenu->AddButton("ESD QA" ,"eq();" ,"To draw ESD hists: eq()" ); | |
79 | pMenu->AddButton("Clusters print" ,"cp();" ,"To print clusters: cp()" ); | |
80 | pMenu->AddButton("Clusters QA" ,"cq();" ,"To draw clusters hists: cq()" ); | |
81 | pMenu->AddButton("Print Matrix" ,"mp();" ,"To print prob matrix: mp()" ); | |
82 | pMenu->AddButton("Print occupancy" ,"r->OccupancyPrint(-1);" ,"To print occupancy" ); | |
83 | pMenu->AddButton("Print event summary " ,"r->SummaryOfEvent();" ,"To print a summary of the event" ); | |
84 | pMenu->Show(); | |
d1bf51e1 | 85 | }//RawData() |
594d861b | 86 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
87 | void Test() | |
88 | { | |
1d4857c5 | 89 | TControlBar *pTst = new TControlBar("vertical","Test",625,50); |
90 | pTst->AddButton("TEST Display " ,"sed();" ,"Display Fast"); | |
91 | pTst->AddButton("Test all" ,"tst();" ,"test hits->sdigits->digits" ); | |
92 | pTst->AddButton("Segmentation" ,"ts()" ,"test segmentation methods" ); | |
93 | pTst->AddButton("Test response" ,"AliHMPIDParam::TestResp();","Test AliHMPIDParam response methods" ); | |
94 | pTst->AddButton("Print map" ,"PrintMap();" ,"Test AliHMPIDParam transformation methods" ); | |
95 | pTst->AddButton("Test Recon" ,"rec();" ,"Test AliHMPIDRecon" ); | |
96 | pTst->Show(); | |
594d861b | 97 | }//Test() |
98 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
99 | ||
100 | ||
101 | void doff(){ Printf("DebugOFF"); AliLog::SetGlobalDebugLevel(0);} | |
102 | void don() { Printf("DebugON"); AliLog::SetGlobalDebugLevel(AliLog::kDebug);} | |
103 | ||
104 | void geo ( ) {gGeoManager->GetTopVolume()->Draw("ogl");} | |
105 | ||
59280a5a | 106 | void du ( ) {h->Dump ( );} //utility display |
594d861b | 107 | |
1d4857c5 | 108 | void PrevEvent() {nCurEvt--;if(nCurEvt<0 )nCurEvt=0 ;pMenu->SetTitle(Form("Event(s): 0-%i Current event %i",nMaxEvt,nCurEvt));} |
109 | void NextEvent() {nCurEvt++;if(nCurEvt>=nMaxEvt)nCurEvt=nMaxEvt;pMenu->SetTitle(Form("Event(s): 0-%i Current event %i",nMaxEvt,nCurEvt));} | |
b03773cc | 110 | void stack( ) {AliHMPIDParam::Stack();} |
111 | void tid (Int_t tid,Int_t evt=0) {AliHMPIDParam::Stack(evt,tid);} | |
594d861b | 112 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
594d861b | 113 | void PrintMap() |
114 | { | |
115 | ||
116 | Double_t r2d=TMath::RadToDeg(); | |
117 | ||
118 | Double_t x=AliHMPIDDigit::SizeAllX(),y=AliHMPIDDigit::SizeAllY(); | |
119 | ||
120 | Printf("\n\n\n"); | |
121 | ||
122 | for(int ch=6;ch>=0;ch--){ | |
1d4857c5 | 123 | AliHMPIDDigit dL,dR; dL.Manual2(ch,2,0 ,24); |
124 | dR.Manual2(ch,3,79,24); | |
594d861b | 125 | TVector3 lt=rp->Lors2Mars(ch,0,y); TVector3 rt=rp->Lors2Mars(ch,x,y); |
126 | TVector3 ce=rp->Lors2Mars(ch,x/2,y/2); | |
127 | TVector3 lb=rp->Lors2Mars(ch,0,0); TVector3 rb=rp->Lors2Mars(ch,x,0); | |
128 | ||
129 | Printf(" ____________________________"); | |
130 | Printf("|%6.2fcm %6.2fcm|" ,lt.Mag() , rt.Mag() ); | |
131 | Printf("|%6.2fde %6.2fde|" ,lt.Theta()*r2d , rt.Theta()*r2d ); | |
132 | Printf("|%6.2fde %6.2fde|" ,lt.Phi()*r2d , rt.Phi()*r2d ); | |
133 | Printf("| |" ); | |
134 | Printf("|DDL %2i %7.2fcm DDL %2i|" ,dL.DdlIdx() , ce.Mag() , dR.DdlIdx() ); | |
135 | Printf("| 0x%x %7.2fdeg 0x%x|" ,dL.DdlId() , ce.Theta()*r2d , dR.DdlId() ); | |
136 | Printf("| %7.2fdeg |" , ce.Phi()*r2d ); | |
137 | Printf("| |"); | |
138 | Printf("|%6.2fcm %6.2fcm|" ,lb.Mag() , rb.Mag() ); | |
139 | Printf("|%6.2fde %6.2fde|" ,lb.Theta()*r2d , rb.Theta()*r2d ); | |
140 | Printf("|%6.2fde Ch%i %6.2fde|" ,lb.Phi()*r2d , ch , rb.Phi()*r2d ); | |
141 | Printf(" ----------------------------"); | |
142 | } | |
143 | ||
144 | Double_t m[3]; | |
145 | for(int i=0;i<1000;i++){ | |
146 | Float_t xout=0,xin=gRandom->Rndm()*130.60; | |
147 | Float_t yout=0,yin=gRandom->Rndm()*126.16; | |
148 | Int_t c=gRandom->Rndm()*6; | |
149 | rp->Lors2Mars(c,xin,yin,m); | |
150 | rp->Mars2Lors(c,m,xout,yout); | |
151 | if( (xin-xout) != 0) Printf("Problem in X"); | |
152 | if( (yin-yout) != 0) Printf("Problem in Y"); | |
153 | } | |
154 | ||
155 | Int_t ddl,r,d,a,ch,raw,pc,px,py; AliHMPIDDigit dd; | |
156 | ||
157 | ddl=0;raw=0x2214000;r= 8;d=8;a=20; | |
158 | ddl=1;raw=0x2214000;r= 8;d=8;a=20; | |
159 | ||
160 | ||
161 | ddl=2;raw=0x08d6000;r= 2;d=3;a=22; | |
162 | ddl=3;raw=0x08d6000;r= 2;d=3;a=22; | |
163 | ||
164 | ||
165 | ddl=6;raw=0x592e000;r=22;d=4;a=46;ch=3;pc=4;px=55;py=5;dd.Raw(ddl,raw); | |
166 | Printf("(ch=%i,pc=%i,x=%2i,y=%2i) ddl=%i raw=0x%h (r=%2i,d=%2i,a=%2i)", | |
167 | ch, pc, px, py, ddl, raw, r, d, a); dd.Print(); | |
168 | ddl=7;raw=0x592e000;r=22;d=4;a=46;ch=3;pc=1; | |
594d861b | 169 | }//PrintMap() |
1d4857c5 | 170 | |
d1bf51e1 | 171 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
d1bf51e1 | 172 | void t1(Int_t case=1) |
173 | { | |
174 | AliHMPIDDigit *d[10]; for(Int_t i=0;i<10;i++) d[i]=new AliHMPIDDigit; | |
175 | ||
176 | ||
177 | Int_t iNdig; | |
178 | ||
179 | if(case==1){ | |
180 | iNdig=9; | |
181 | ||
182 | d[0]->Manual2(1,2,67,26, 33); | |
183 | d[1]->Manual2(1,2,66,25,431); d[2]->Manual2(1,2,67,25, 21); | |
184 | d[3]->Manual2(1,2,65,24,127); d[4]->Manual2(1,2,66,24, 54); d[5]->Manual2(1,2,67,24, 5); | |
185 | d[6]->Manual2(1,2,65,23, 20); d[7]->Manual2(1,2,66,23, 5); d[8]->Manual2(1,2,67,23, 6); | |
186 | }else if(case==2){ | |
187 | iNdig=3; | |
188 | d[0]->Manual2(0,0,36,14, 8); | |
189 | d[1]->Manual2(0,0,36,13, 33); d[2]->Manual2(0,0,37,13, 22); | |
190 | } | |
191 | ||
192 | AliHMPIDCluster c; | |
193 | for(int i=0;i<iNdig;i++) c.DigAdd(d[i]); c.Print(); | |
194 | ||
195 | ||
196 | TClonesArray *cl=new TClonesArray("AliHMPIDCluster"); | |
197 | ||
198 | c.Solve(cl,kTRUE); | |
199 | Printf(""); | |
200 | ||
201 | cl->Print(); | |
202 | }//t1() | |
f3bae3e2 | 203 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1d4857c5 | 204 | |
205 | ||
206 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
207 | void hp(Int_t iEvt=0) | |
208 | { | |
209 | //Prints a list of HMPID hits for a given event. Default is event number 0. | |
210 | Printf("List of HMPID hits for event %i",iEvt); | |
211 | if(al->GetEvent(iEvt)) return; | |
212 | if(hl->LoadHits()) return; | |
213 | ||
214 | Int_t iTotHits=0; | |
215 | for(Int_t iPrim=0;iPrim<hl->TreeH()->GetEntries();iPrim++){//prims loop | |
216 | hl->TreeH()->GetEntry(iPrim); | |
217 | h->Hits()->Print(); | |
218 | iTotHits+=h->Hits()->GetEntries(); | |
219 | } | |
220 | hl->UnloadHits(); | |
221 | Printf("totally %i hits for event %i",iTotHits,iEvt); | |
222 | } | |
223 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
224 | void sp(Int_t iEvt=0) | |
225 | { | |
226 | //prints a list of HMPID sdigits for a given event | |
227 | Printf("List of HMPID sdigits for event %i",iEvt); | |
228 | if(al->GetEvent(iEvt)) return; | |
229 | if(hl->LoadSDigits()) return; | |
230 | ||
231 | hl->TreeS()->GetEntry(0); | |
232 | h->SdiLst()->Print(); | |
233 | hl->UnloadSDigits(); | |
234 | Printf("totally %i sdigits for event %i",h->SdiLst()->GetEntries(),iEvt); | |
59280a5a | 235 | } |
236 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
1d4857c5 | 237 | void dp(Int_t iEvt=0) |
238 | { | |
239 | //prints a list of HMPID digits for a given event | |
240 | Printf("List of HMPID digits for event %i",iEvt); | |
241 | if(al->GetEvent(iEvt)) return; | |
242 | if(hl->LoadDigits()) return; | |
243 | ||
244 | hl->TreeD()->GetEntry(0); | |
245 | h->DigLst()->Print(); | |
246 | Int_t totDigs=0; | |
247 | for(Int_t i=0;i<7;i++) {totDigs+=h->DigLst(i)->GetEntries();} | |
248 | hl->UnloadDigits(); | |
249 | Printf("totally %i digits for event %i",totDigs,iEvt); | |
250 | } | |
251 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
252 | void cp(Int_t iEvt=0) | |
253 | {//prints a list of HMPID clusters for a given event | |
254 | Printf("List of HMPID clusters for event %i",iEvt); | |
255 | if(al->GetEvent(iEvt)) return; | |
256 | if(hl->LoadRecPoints()) return; | |
257 | ||
258 | hl->TreeR()->GetEntry(0); | |
259 | h->CluLst()->Print(); | |
260 | ||
261 | Int_t iCluCnt=0; for(Int_t iCh=0;iCh<7;iCh++) iCluCnt+=h->CluLst(iCh)->GetEntries(); | |
262 | ||
263 | hl->UnloadRecPoints(); | |
264 | Printf("totally %i clusters for event %i",iCluCnt,iEvt); | |
265 | } | |
266 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
a1d55ff3 | 267 | |
268 | void ttt() | |
1d4857c5 | 269 | { |
a1d55ff3 | 270 | TClonesArray hits ("AliHMPIDDigit"); |
271 | TClonesArray sdigs("AliHMPIDDigit"); | |
272 | ||
273 | AliHMPIDHit hit(0,45e-9,kProton,33,0,0); | |
274 | hit.Hit2Sdi(&sdigs); | |
275 | sdigs.Print(); | |
276 | } | |
277 | ||
278 | ||
279 | #include "Hdisp.C" |