]>
Commit | Line | Data |
---|---|---|
c7ba256d | 1 | // Authors : M.Gheata, A.Gheata 09/10/00 |
2 | #ifndef MUON_RECDISPLAY | |
3 | #define MUON_RECDISPLAY | |
4 | ||
5 | ////////////////////////////////////////////////////////////////////// | |
6 | // // | |
7 | // AliMUONRecoDisplay // | |
8 | // // | |
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 // | |
12 | // as polylines ; // | |
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 // | |
27 | // // | |
28 | // Starting : generate and reconstruct events, then use the // | |
29 | // MUONrecodisplay.C macro // | |
30 | // // | |
31 | ////////////////////////////////////////////////////////////////////// | |
32 | ||
33 | #include <TApplication.h> | |
34 | #include <TROOT.h> | |
35 | #include <TFile.h> | |
36 | #include <TPolyLine3D.h> | |
37 | #include <TParticle.h> | |
38 | #include <AliDisplay.h> | |
39 | #include <TTree.h> | |
40 | #include <TH1.h> | |
41 | #include <TH2.h> | |
42 | #include <TCanvas.h> | |
43 | #include <TProfile.h> | |
44 | #include <AliDetector.h> | |
45 | #include "AliMUONHit.h" | |
46 | ||
47 | ||
48 | class AliMUONRecoDisplay:public AliDisplay { | |
49 | ||
50 | private: | |
51 | //methods | |
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); | |
56 | //data members | |
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 | |
69 | ||
70 | public: | |
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* | |
84 | ||
85 | ClassDef(AliMUONRecoDisplay,0) // MUON reco. event display | |
86 | }; | |
87 | ||
88 | #endif |