-#if !defined( __CINT__) || defined(__MAKECINT__)
-#include <AliRun.h>
-#include <AliStack.h>
-#include <AliLoader.h>
-#include <AliRunLoader.h>
-
-#include "AliRICH.h"
-#include "AliRICHDisplFast.h"
-#endif
-
-//globals for easy manual manipulations
-AliRun *a; AliStack *s; AliRunLoader *al;
-AliRICH *r; AliLoader *rl,*vl;
-
-
-//__________________________________________________________________________________________________
-void pp(int tid)
-{
- if(!al) return;
- al->LoadHeader(); al->LoadKinematics();
-
- if(tid<0||tid>=al->Stack()->GetNtrack())
- cout<<"Valid tid number is 0-"<<al->Stack()->GetNtrack()-1<<" for this event.\n";
- else
- PrintParticleInfo(tid);
-
- al->UnloadKinematics(); al->UnloadHeader();
-}
-//__________________________________________________________________________________________________
-void PrintParticleInfo(int tid)
-{
-// Prints particle info for a given TID
- TParticle *p=al->Stack()->Particle(tid);
- cout<<p->GetName()<<"("<<tid<<")";
- if(!p->IsPrimary()){cout<<" from "; PrintParticleInfo(p->GetFirstMother());}
- else {cout<<endl;}
-}
-//__________________________________________________________________________________________________
-Int_t mother(Int_t tid)
-{
-// Who is the mother of given track TID?
- al->LoadHeader(); al->LoadKinematics();
-
- if(tid<0||tid>=al->Stack()->GetNtrack())
- cout<<"Valid tid number is 0-"<<al->Stack()->GetNtrack()-1<<" for this event.\n";
- else
- while(1){
- TParticle *p=al->Stack()->Particle(tid);
- if(p->IsPrimary()) break;
- tid=p->GetFirstMother();
- }
-
- al->UnloadKinematics(); al->UnloadHeader();
- return tid;
-}
-//__________________________________________________________________________________________________
+AliRun *a; AliStack *s; AliRunLoader *al; //globals for easy manual manipulations
+AliRICH *r; AliLoader *rl;
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bool_t AliceRead()
{
Info("ReadAlice","Tring to read ALICE from SIMULATED FILE...");
//__________________________________________________________________________________________________
void RichGet()
{
- if(!(r=r())) Warning("RICH/menu.C::ReadAlice","No RICH in file");
- if(!(rl=rl())) Warning("RICH/menu.C::ReadAlice","No RICH loader in file");
+ if(!(r=(AliRICH*)al->GetAliRun()->GetDetector("RICH"))) Warning("RICH/menu.C::ReadAlice","No RICH in file");
+ if(!(rl=al->GetDetectorLoader("RICH"))) Warning("RICH/menu.C::ReadAlice","No RICH loader in file");
}
-//__________________________________________________________________________________________________
-void MenuRich()
-{
- TControlBar *pMenu = new TControlBar("vertical","RICH");
- pMenu->AddButton("Display single chambers" ,"r->Display();" , "Display Fast");
- pMenu->AddButton("Display ALL chambers" ,"r->DisplayEvent(0,0);" , "Display Fast");
- pMenu->AddButton("Print hits" ,"r->HitsPrint();" ,"????");
- pMenu->AddButton("Print sdigits" ,"r->SDigitsPrint();" ,"????");
- pMenu->AddButton("Print digits" ,"r->DigitsPrint();" ,"????");
- pMenu->AddButton("Print clusters" ,"r->ClustersPrint();" ,"????");
- pMenu->AddButton("Print occupancy" ,"r->OccupancyPrint(-1);" ,"????");
- pMenu->AddButton("Event Summary " ,"r->SummaryOfEvent();" ,"????");
- pMenu->AddButton("Hits plots" ,"r->ControlPlots()" ,"????");
- pMenu->AddButton("Recon with stack" ,"r->CheckPR()", "Create RSR.root with ntuple hn");
- pMenu->AddButton("RichAna" ,"r->RichAna()", "Create RichAna.root with ntuple hn");
- pMenu->Show();
-}//TestMenu()
//__________________________________________________________________________________________________
void RichMenu()
{
TControlBar *pMenu = new TControlBar("vertical","MAIN");
if(AliceRead()){//it's from file, show some info
- if(r) pMenu->AddButton("RICH submenu" , "MenuRich()" , "Show RICH submenu" );
+ pMenu->AddButton("Display single chambers" ,"r->Display();" , "Display Fast");
+ pMenu->AddButton("Display ALL chambers" ,"r->DisplayEvent(0,0);" , "Display Fast");
+ pMenu->AddButton("Recon with stack" ,"AliRICHReconstructor::CheckPR( )","Create RSR.root with ntuple hn");
+ pMenu->AddButton("RichAna no Recon" ,"AliRICHReconstructor::RichAna(0,0,kFALSE)","Create RichAna.root with ntuple hn without PatRec");
+ pMenu->AddButton("RichAna with Recon" ,"AliRICHReconstructor::RichAna(0,0,kTRUE )","Create RichAna.root with ntuple hn with PatRec");
+ pMenu->AddButton("HITS Print" ,"h();" ,"To print hits: h()");
+ pMenu->AddButton("HITS QA" ,"hqa()" ,"QA plots for hits: hqa()");
+ pMenu->AddButton("Print sdigits" ,"s();" ,"To print sdigits: s()");
+ pMenu->AddButton("Print digits" ,"d();" ,"To print digits: d()");
+ pMenu->AddButton("Clusters print" ,"c();" ,"To print clusters: c()");
+ pMenu->AddButton("Clusters QA" ,"cqa();" ,"Clusters QA: cqa() or AliRICHReconstructor::CluQA(al)");
+ pMenu->AddButton("Print ESD" ,"e();" ,"To print ESD status");
+ pMenu->AddButton("Print Matrix" ,"m();" ,"To print probability matrix");
+ pMenu->AddButton("Print occupancy" ,"r->OccupancyPrint(-1);" ,"To print occupancy");
+ pMenu->AddButton("Print event summary " ,"r->SummaryOfEvent();" ,"To print a summary of the event");
}else{//it's aliroot, simulate
pMenu->AddButton("Debug ON", "DebugON();", "Switch debug on-off");
pMenu->AddButton("Debug OFF", "DebugOFF();", "Switch debug on-off");
- pMenu->AddButton("Run", "a()->Run(1)", "Process!");
+ pMenu->AddButton("Run", "a->Run(1)", "Process!");
}
pMenu->AddButton("Test segmentation" ,"rp->TestSeg()" ,"Test AliRICHParam segmentation methods" );
pMenu->AddButton("Test response" ,"rp->TestResp()" ,"Test AliRICHParam response methods" );
pMenu->AddButton("Test transformation","rp->TestTrans()","Test AliRICHParam transformation methods" );
- pMenu->AddButton("Test opticals" ,".x Opticals.h" ,"Test optical properties" );
- pMenu->AddButton("Geo GUI" ,"GeomGui()" ,"Shows geometry" );
- pMenu->AddButton("Browser" ,"new TBrowser;" ,"Start ROOT TBrowser" );
- pMenu->AddButton("Quit" ,".q" ,"Close session" );
+ pMenu->AddButton("Geo GUI" ,"geo();" ,"Shows geometry" );
+ pMenu->AddButton("Debug ON" ,"AliLog::SetGlobalDebugLevel(AliLog::kDebug);" ,"Switch debug on" );
+ pMenu->AddButton("Debug OFF" ,"AliLog::SetGlobalDebugLevel(0);" ,"Switch debug off" );
+ pMenu->AddButton("Browser" ,"new TBrowser;" ,"Start ROOT TBrowser" );
+ pMenu->AddButton("Quit" ,".q" ,"Close session" );
pMenu->Show();
}//menu()
//__________________________________________________________________________________________________
void DebugOFF(){ Info("DebugOFF",""); AliLog::SetGlobalDebugLevel(0);}
void DebugON() { Info("DebugON",""); AliLog::SetGlobalDebugLevel(AliLog::kDebug);}
-//__________________________________________________________________________________________________
-void GeomGui()
-{
- if(gGeoManager){
- gGeoManager->GetTopVolume()->Draw();
- AliRICHParam::DrawAxis();
- }else
- new G3GeometryGUI;
-}
+//void geo ( ) { gGeoManager->SetVisOption(0);gGeoManager->GetTopVolume()->Draw(); AliRICHParam::DrawAxis();}
+void geo() { if(!gGeoManager) TGeoManager::Import("geometry.root");gGeoManager->GetTopVolume()->Draw();AliRICHParam::DrawAxis();}
+
+void dis (Int_t evt=-1) {r->Display (evt);} //utility display
+void dum ( ) {r->Dump ( );} //utility display
+
+void h (Int_t evt=0 ) {r->HitPrint (evt);} //print hits for requested event
+void hqa ( ) {r->HitQA ( );} //hits QA plots for all events
+
+void s (Int_t evt=0 ) {r->SDigPrint (evt);} //print sdigits for requested event
+
+void d (Int_t evt=0 ) {r->DigPrint (evt);} //print digits for requested event
+void dqa ( ) {AliRICHReconstructor::DigQA (al );} //digits QA plots for all events
+
+
+void c (Int_t evt=0 ) {r->CluPrint (evt);} //print clusters for requested event
+void cqa ( ) {AliRICHReconstructor::CluQA (al );} //clusters QA plots for all events
+void ct ( ) {AliRICHReconstructor::Test ( );} //test clusters by predifined list of digits
-AliRun *a() {return al->GetAliRun();} //provides pointer to main AliRun object (aka gAlice)
-AliRICH *r() {return (AliRICH*) a()->GetDetector("RICH");} //provides pointer to RICH detector
-AliLoader *rl(){return al->GetLoader("RICHLoader");}
+void t (Int_t evt=0 ) {AliRICHParam::Stack(evt);}
+void tid (Int_t tid,Int_t evt=0) {AliRICHParam::Stack(evt,tid);}
+void e ( ) {AliRICHTracker::EsdPrint();}
+void m (Double_t probCut=0.7 ) {AliRICHTracker::MatrixPrint(probCut);}
-void rt(Int_t event=0) {r->PrintTracks (event);} //utility print tracks
-Int_t nem(Int_t event=0) {AliRICH::Nparticles(kElectron ,event,al);} //utility number of electrons
-Int_t nep(Int_t event=0) {AliRICH::Nparticles(kPositron ,event,al);} //utility number of positrons
-Int_t nmup(Int_t event=0) {AliRICH::Nparticles(kMuonPlus ,event,al);} //utility number of positive muons
-Int_t nmum(Int_t event=0) {AliRICH::Nparticles(kMuonMinus ,event,al);} //utility number of negative muons
-Int_t npi0(Int_t event=0) {AliRICH::Nparticles(kPi0 ,event,al);} //utility number of neutral pions
-Int_t npip(Int_t event=0) {AliRICH::Nparticles(kPiPlus ,event,al);} //utility number of positive pions
-Int_t npim(Int_t event=0) {AliRICH::Nparticles(kPiMinus ,event,al);} //utility number of negative pions
-Int_t nk0(Int_t event=0) {AliRICH::Nparticles(kK0 ,event,al);} //utility number of neutral kaons
-Int_t nkp(Int_t event=0) {AliRICH::Nparticles(kKPlus ,event,al);} //utility number of positive kaons
-Int_t nkm(Int_t event=0) {AliRICH::Nparticles(kKMinus ,event,al);} //utility number of negative kaons
-Int_t npp(Int_t event=0) {AliRICH::Nparticles(kProton ,event,al);} //utility number of protons
-Int_t npm(Int_t event=0) {AliRICH::Nparticles(kProtonBar ,event,al);} //utility number of antiprotons
+Int_t nem (Int_t evt=0) {AliRICHParam::StackCount(kElectron ,evt);} //utility number of electrons
+Int_t nep (Int_t evt=0) {AliRICHParam::StackCount(kPositron ,evt);} //utility number of positrons
+Int_t nmup(Int_t evt=0) {AliRICHParam::StackCount(kMuonPlus ,evt);} //utility number of positive muons
+Int_t nmum(Int_t evt=0) {AliRICHParam::StackCount(kMuonMinus ,evt);} //utility number of negative muons
+Int_t npi0(Int_t evt=0) {AliRICHParam::StackCount(kPi0 ,evt);} //utility number of neutral pions
+Int_t npip(Int_t evt=0) {AliRICHParam::StackCount(kPiPlus ,evt);} //utility number of positive pions
+Int_t npim(Int_t evt=0) {AliRICHParam::StackCount(kPiMinus ,evt);} //utility number of negative pions
+Int_t nk0 (Int_t evt=0) {AliRICHParam::StackCount(kK0 ,evt);} //utility number of neutral kaons
+Int_t nkp (Int_t evt=0) {AliRICHParam::StackCount(kKPlus ,evt);} //utility number of positive kaons
+Int_t nkm (Int_t evt=0) {AliRICHParam::StackCount(kKMinus ,evt);} //utility number of negative kaons
+Int_t npp (Int_t evt=0) {AliRICHParam::StackCount(kProton ,evt);} //utility number of protons
+Int_t npm (Int_t evt=0) {AliRICHParam::StackCount(kProtonBar ,evt);} //utility number of antiprotons