]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RICH/RichMenu.C
START positions
[u/mrichter/AliRoot.git] / RICH / RichMenu.C
CommitLineData
ef210ba6 1#if !defined( __CINT__) || defined(__MAKECINT__)
2#include <AliRun.h>
3#include <AliStack.h>
4#include <AliLoader.h>
5#include <AliRunLoader.h>
6
7#include "AliRICH.h"
8#include "AliRICHDisplFast.h"
9#endif
10
473cb33a 11//globals for easy manual manipulations
8493d0aa 12AliRun *a; AliStack *s; AliRunLoader *al;
122efc54 13AliRICH *r; AliLoader *rl;
8493d0aa 14
473cb33a 15
473cb33a 16//__________________________________________________________________________________________________
17void pp(int tid)
18{
19 if(!al) return;
20 al->LoadHeader(); al->LoadKinematics();
21
22 if(tid<0||tid>=al->Stack()->GetNtrack())
23 cout<<"Valid tid number is 0-"<<al->Stack()->GetNtrack()-1<<" for this event.\n";
24 else
25 PrintParticleInfo(tid);
26
27 al->UnloadKinematics(); al->UnloadHeader();
28}
29//__________________________________________________________________________________________________
30void PrintParticleInfo(int tid)
31{
32// Prints particle info for a given TID
33 TParticle *p=al->Stack()->Particle(tid);
34 cout<<p->GetName()<<"("<<tid<<")";
8493d0aa 35 if(!p->IsPrimary()){cout<<" from "; PrintParticleInfo(p->GetFirstMother());}
473cb33a 36 else {cout<<endl;}
37}
38//__________________________________________________________________________________________________
8493d0aa 39Int_t mother(Int_t tid)
473cb33a 40{
ef210ba6 41// Who is the mother of given track TID?
473cb33a 42 al->LoadHeader(); al->LoadKinematics();
43
44 if(tid<0||tid>=al->Stack()->GetNtrack())
45 cout<<"Valid tid number is 0-"<<al->Stack()->GetNtrack()-1<<" for this event.\n";
46 else
47 while(1){
48 TParticle *p=al->Stack()->Particle(tid);
8493d0aa 49 if(p->IsPrimary()) break;
50 tid=p->GetFirstMother();
473cb33a 51 }
52
53 al->UnloadKinematics(); al->UnloadHeader();
54 return tid;
55}
473cb33a 56//__________________________________________________________________________________________________
57
8493d0aa 58Bool_t AliceRead()
473cb33a 59{
8493d0aa 60 Info("ReadAlice","Tring to read ALICE from SIMULATED FILE...");
473cb33a 61 if(gAlice){
62 delete gAlice->GetRunLoader();
63 delete gAlice;
64 }
8493d0aa 65
66 if(gSystem->Exec("ls galice.root>/dev/null")==256){//there is no galice.root in current directory
67 AliceNew();
68 RichGet();
69 return kFALSE; //new session
70 }else{
71 if(!(al=AliRunLoader::Open())){//if not possible to read from galice.root, then remove grabage and reinvoke AliceRead()
72 gSystem->Exec("rm -rf *.root *.dat");
73 AliceRead();
74 }
75 al->LoadgAlice();//before this gAlice is 0;
76 if(!gAlice) Fatal("menu.C::ReadAlice","No gAlice in file");
77 a=al->GetAliRun();//provides pointer to AliRun object
78 Info("AliceRead","Run contains %i event(s)",a->GetEventsPerRun());
79 RichGet();
80 return kTRUE; //old session opened from file
81 }
82}//AliceRead()
83//__________________________________________________________________________________________________
84void AliceNew()
85{
86 Info("AliceNew","Init new session");
87 new AliRun("gAlice","Alice experiment system"); gAlice->Init(); a=gAlice; al=gAlice->GetRunLoader();
88}//AliceNew()
89//__________________________________________________________________________________________________
90void RichGet()
91{
92 if(!(r=r())) Warning("RICH/menu.C::ReadAlice","No RICH in file");
93 if(!(rl=rl())) Warning("RICH/menu.C::ReadAlice","No RICH loader in file");
473cb33a 94}
8493d0aa 95
473cb33a 96//__________________________________________________________________________________________________
8493d0aa 97void MenuRich()
98{
99 TControlBar *pMenu = new TControlBar("vertical","RICH");
8493d0aa 100 pMenu->Show();
101}//TestMenu()
102//__________________________________________________________________________________________________
473cb33a 103void RichMenu()
8493d0aa 104{
105 TControlBar *pMenu = new TControlBar("vertical","MAIN");
473cb33a 106
8493d0aa 107 if(AliceRead()){//it's from file, show some info
122efc54 108 pMenu->AddButton("Display single chambers" ,"r->Display();" , "Display Fast");
109 pMenu->AddButton("Display ALL chambers" ,"r->DisplayEvent(0,0);" , "Display Fast");
01c81d9d 110 pMenu->AddButton("Hits QA" ,"hqa()" ,"QA plots for hits: hqa()");
122efc54 111 pMenu->AddButton("Recon with stack" ,"AliRICHReconstructor::CheckPR( )","Create RSR.root with ntuple hn");
01c81d9d 112 pMenu->AddButton("RichAna no Recon" ,"AliRICHReconstructor::RichAna(0,0,kFALSE)","Create RichAna.root with ntuple hn without PatRec");
113 pMenu->AddButton("RichAna with Recon" ,"AliRICHReconstructor::RichAna(0,0,kTRUE )","Create RichAna.root with ntuple hn with PatRec");
114 pMenu->AddButton("Print hits" ,"h();" ,"To print hits: h()");
115 pMenu->AddButton("Print sdigits" ,"s();" ,"To print sdigits: s()");
116 pMenu->AddButton("Print digits" ,"d();" ,"To print digits: d()");
117 pMenu->AddButton("Print clusters" ,"c();" ,"To print clusters: c()");
118 pMenu->AddButton("Print occupancy" ,"r->OccupancyPrint(-1);" ,"To print occupancy");
119 pMenu->AddButton("Print event summary " ,"r->SummaryOfEvent();" ,"To print a summary of the event");
473cb33a 120 }else{//it's aliroot, simulate
121 pMenu->AddButton("Debug ON", "DebugON();", "Switch debug on-off");
8493d0aa 122 pMenu->AddButton("Debug OFF", "DebugOFF();", "Switch debug on-off");
123 pMenu->AddButton("Run", "a()->Run(1)", "Process!");
473cb33a 124 }
8493d0aa 125 pMenu->AddButton("Test segmentation" ,"rp->TestSeg()" ,"Test AliRICHParam segmentation methods" );
126 pMenu->AddButton("Test response" ,"rp->TestResp()" ,"Test AliRICHParam response methods" );
127 pMenu->AddButton("Test transformation","rp->TestTrans()","Test AliRICHParam transformation methods" );
122efc54 128 pMenu->AddButton("Optics" ,"opt()" ,"Shows optical properties");
129 pMenu->AddButton("Geo GUI" ,"geo();" ,"Shows geometry" );
130 pMenu->AddButton("Debug ON" ,"AliLog::SetGlobalDebugLevel(AliLog::kDebug);" ,"Switch debug on" );
131 pMenu->AddButton("Debug OFF" ,"AliLog::SetGlobalDebugLevel(0);" ,"Switch debug off" );
132 pMenu->AddButton("Browser" ,"new TBrowser;" ,"Start ROOT TBrowser" );
133 pMenu->AddButton("Quit" ,".q" ,"Close session" );
473cb33a 134 pMenu->Show();
135}//menu()
136//__________________________________________________________________________________________________
137void DebugOFF(){ Info("DebugOFF",""); AliLog::SetGlobalDebugLevel(0);}
138void DebugON() { Info("DebugON",""); AliLog::SetGlobalDebugLevel(AliLog::kDebug);}
473cb33a 139//__________________________________________________________________________________________________
140void GeomGui()
141{
142 if(gGeoManager){
143 gGeoManager->GetTopVolume()->Draw();
8493d0aa 144 AliRICHParam::DrawAxis();
473cb33a 145 }else
146 new G3GeometryGUI;
147}
d3eb6079 148
8493d0aa 149AliRun *a() {return al->GetAliRun();} //provides pointer to main AliRun object (aka gAlice)
150AliRICH *r() {return (AliRICH*) a()->GetDetector("RICH");} //provides pointer to RICH detector
151AliLoader *rl(){return al->GetLoader("RICHLoader");}
d3eb6079 152
122efc54 153
154void geo ( ) { gGeoManager->SetVisOption(0);gGeoManager->GetTopVolume()->Draw(); AliRICHParam::DrawAxis();}
155void opt ( ) { AliRICHParam::Materials(); } //draw optical properties
156void dis (Int_t evt=-1) {r->Display (evt);} //utility display
157void dum ( ) {r->Dump ( );} //utility display
158
159void h (Int_t evt=0 ) {r->HitsPrint (evt);} //print hits for requested event
160void s (Int_t evt=0 ) {r->SDigitsPrint (evt);} //print sdigits for requested event
161void d (Int_t evt=0 ) {r->DigitsPrint (evt);} //print digits for requested event
162void c (Int_t evt=0 ) {r->ClustersPrint(evt);} //print clusters for requested event
163
164void hqa ( ) {r->HitsQA ( );} //hits QA plots for all events
165void dqa ( ) {r->DigitsQA ( );} //digits QA plots for all events
166void cqa ( ) {r->ClustersQA ( );} //clusters QA plots for all events
167
168
169Int_t t (Int_t pid,Int_t evt=0) {return (AliRICH*)v())->TrackPrint(pid,evt);} //print track
170
0fe8fa07 171void rt(Int_t event=0) {r->PrintTracks (event);} //utility print tracks
172Int_t nem(Int_t event=0) {AliRICH::Nparticles(kElectron ,event,al);} //utility number of electrons
173Int_t nep(Int_t event=0) {AliRICH::Nparticles(kPositron ,event,al);} //utility number of positrons
174Int_t nmup(Int_t event=0) {AliRICH::Nparticles(kMuonPlus ,event,al);} //utility number of positive muons
175Int_t nmum(Int_t event=0) {AliRICH::Nparticles(kMuonMinus ,event,al);} //utility number of negative muons
176Int_t npi0(Int_t event=0) {AliRICH::Nparticles(kPi0 ,event,al);} //utility number of neutral pions
177Int_t npip(Int_t event=0) {AliRICH::Nparticles(kPiPlus ,event,al);} //utility number of positive pions
178Int_t npim(Int_t event=0) {AliRICH::Nparticles(kPiMinus ,event,al);} //utility number of negative pions
179Int_t nk0(Int_t event=0) {AliRICH::Nparticles(kK0 ,event,al);} //utility number of neutral kaons
180Int_t nkp(Int_t event=0) {AliRICH::Nparticles(kKPlus ,event,al);} //utility number of positive kaons
181Int_t nkm(Int_t event=0) {AliRICH::Nparticles(kKMinus ,event,al);} //utility number of negative kaons
182Int_t npp(Int_t event=0) {AliRICH::Nparticles(kProton ,event,al);} //utility number of protons
183Int_t npm(Int_t event=0) {AliRICH::Nparticles(kProtonBar ,event,al);} //utility number of antiprotons