1 // Authors : M.Gheata, A.Gheata 09/10/00
2 #ifndef MUON_RECDISPLAY
3 #define MUON_RECDISPLAY
5 //////////////////////////////////////////////////////////////////////
7 // AliMUONRecoDisplay //
9 // This class subclasses AliDisplay and provides display of //
10 // reconstructed tracks with following functionality : //
11 // - front/top/side/3D display of MUON reconstructed tracks //
13 // - context menu activated when the main pad is right-clicked //
14 // The context menu contains following functions : //
15 // * SetDrawHits() - switches on or off Geant hits ; //
16 // * CutMomentum() - displays only tracks within Pmin - Pmax //
17 // * ListTracks() - prints ID and momentum info. for all //
18 // tracks within momentum range Pmin,Pmax ; //
19 // * Highlight() - shows only one selected reco. track //
20 // and its best matching Geant track; //
21 // * UnHighlight() - self explaining; //
22 // * RecoEfficiency() - compute reco. efficiency for all events//
23 // from galice.root file; also fake track percentage; make //
24 // plots for momentum precision //
25 // * XYPlot() - make X-Y plots of reconstructed and //
26 // generated tracks in all chambers //
28 // Starting : generate and reconstruct events, then use the //
29 // MUONrecodisplay.C macro //
31 //////////////////////////////////////////////////////////////////////
33 #include <TApplication.h>
36 #include <TPolyLine3D.h>
37 #include <TParticle.h>
38 #include <AliDisplay.h>
44 #include <AliDetector.h>
45 #include "AliMUONHit.h"
48 class AliMUONRecoDisplay:public AliDisplay {
52 Int_t GetBestMatch(Int_t indr, Float_t tolerance=3.0);
53 TClonesArray* MakePolyLines3D(TClonesArray *tracklist);
54 void MapEvent(Int_t nevent);
55 Bool_t IsReconstructible(Int_t track);
57 AliMUONRecoEvent *fEvGen; // Geant event
58 AliMUONRecoEvent *fEvReco; // reconstructed event
59 TFile *fFile; // file with reco. event tree
60 TTree *fTree; // tree with reco. events
61 TClonesArray *fPolyRecoList; // list of TPolyLine3D's for reco. tracks
62 TClonesArray *fPolyGenList; // list of TPolyLine3D's for generated tracks
63 TClonesArray *fRecoTracks; // list of reco tracks
64 TClonesArray *fGenTracks; // list of GEANT tracks
65 Int_t fHighlited; // index of current highlited track
66 Double_t fMinMomentum; // min. cut of momentum
67 Double_t fMaxMomentum; // max. cut of momentum
68 Bool_t fPrinted; // tracks info switch
71 AliMUONRecoDisplay(Int_t nevent=0);
72 virtual ~AliMUONRecoDisplay();
73 virtual void DrawHits();
74 virtual void DrawView(Float_t theta, Float_t phi, Float_t psi = 0);
75 virtual void SetDrawHits(Bool_t hits = kTRUE); // *MENU*
76 virtual void ShowNextEvent(Int_t delta = 1);
77 void ListTracks(); // *MENU*
78 void Highlight(Int_t track=0); // *MENU*
79 void UnHighlight(); // *MENU*
80 void CutMomentum(Double_t min=0, Double_t max=999); // *MENU*
81 void PolyLineInfo(TClonesArray *line3Dlist);
82 void RecoEfficiency(Int_t first=0, Int_t last=10000); // *MENU*
83 void XYPlot(); // *MENU*
85 ClassDef(AliMUONRecoDisplay,0) // MUON reco. event display