]>
Commit | Line | Data |
---|---|---|
2991d609 | 1 | // $Id$ |
2 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |
3 | ||
4 | /************************************************************************** | |
5 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * | |
6 | * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * | |
7 | * full copyright notice. * | |
8 | **************************************************************************/ | |
9 | #ifndef ALIEVECASCADE_H | |
10 | #define ALIEVECASCADE_H | |
11 | ||
12 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
13 | * See cxx source for full Copyright notice */ | |
14 | ||
15 | ||
16 | /*********************************************************************** | |
17 | * This code defines the reconstructed cascade visualized with EVE | |
18 | * | |
19 | * Boris Hippolyte, IPHC (hippolyt@in2p3.fr) | |
20 | ************************************************************************/ | |
21 | ||
0e33c639 | 22 | #include "AliEveTrack.h" |
2991d609 | 23 | #include <TEveVSDStructs.h> |
2991d609 | 24 | |
0e33c639 | 25 | class AliEveCascadeList; |
2991d609 | 26 | |
27 | class TH1F; | |
28 | class TH2F; | |
29 | ||
2991d609 | 30 | class AliEveCascade : public TEvePointSet |
31 | { | |
32 | friend class AliEveCascadeList; | |
33 | ||
34 | public: | |
35 | AliEveCascade(); | |
73ce6137 | 36 | AliEveCascade(TEveRecTrack* tBac, TEveRecV0* v0, TEveRecCascade* cascade, TEveTrackPropagator* rs); |
2991d609 | 37 | virtual ~AliEveCascade(); |
38 | ||
39 | void MakeCascade(); | |
40 | ||
41 | virtual void SetMainColor(Color_t col) | |
42 | { | |
43 | TEvePointSet::SetMainColor(col); | |
73ce6137 | 44 | fPointingCurve->SetLineColor(fMarkerColor); |
45 | fV0Path->SetLineColor(fMarkerColor); | |
2991d609 | 46 | } |
47 | ||
48 | void SetRnrStyle(TEveTrackPropagator* rs) { fRnrStyle = rs; } | |
49 | ||
50 | Float_t GetDaughterDCA() const { return fDaughterDCA; } | |
51 | void SetDaughterDCA(Float_t dca) { fDaughterDCA = dca; } | |
52 | ||
53 | Float_t GetRadius() const { return fRecDecayV.Perp(); } | |
54 | Float_t GetPt() const { return fRecDecayP.Perp(); } | |
55 | ||
56 | Int_t GetESDIndex() const { return fESDIndex; } | |
57 | void SetESDIndex(Int_t ind) { fESDIndex = ind;} | |
58 | ||
59 | virtual const Text_t* GetName() const { return Form("ESDcascade_%i",fESDIndex); } | |
60 | virtual const Text_t* GetTitle() const { return Form("ESDcascade_%i",fESDIndex); } | |
61 | ||
62 | TEveTrackPropagator* GetPropagator() const { return fRnrStyle; } | |
63 | ||
0e33c639 | 64 | AliEveTrack* GetBacTrack() { return fBacTrack; } |
2991d609 | 65 | |
73ce6137 | 66 | TEveLine* GetPointingCurve() { return fPointingCurve; } |
67 | TEveLine* GetV0Path() { return fV0Path; } | |
2991d609 | 68 | |
69 | protected: | |
73ce6137 | 70 | TEveVector fRecBirthV; // Assumed birth point of cascade |
2991d609 | 71 | TEveVector fRecDecayV; // Point of closest approach |
73ce6137 | 72 | TEveVector fRecDecayP; // Reconstructed momentum at the decay |
73 | TEveVector fRecDecayV0; // Reconstructed birth point of neutral daughter | |
2991d609 | 74 | |
0e33c639 | 75 | AliEveTrack *fBacTrack; |
2991d609 | 76 | |
77 | TEveTrackPropagator *fRnrStyle; | |
78 | ||
73ce6137 | 79 | TEveLine *fPointingCurve; |
80 | TEveLine *fV0Path; | |
2991d609 | 81 | |
82 | Int_t fESDIndex; // Index in ESD V0 array. | |
83 | Float_t fDaughterDCA; // Distance at the point of closest approach. | |
84 | Float_t fChi2Cascade; // Some Chi-square. | |
85 | ||
86 | private: | |
87 | AliEveCascade(const AliEveCascade&); // Not implemented | |
88 | AliEveCascade& operator=(const AliEveCascade&); // Not implemented | |
89 | ||
90 | ClassDef(AliEveCascade, 0); // Visual representation of a AliEveCascade. | |
91 | }; | |
92 | ||
93 | ||
94 | /******************************************************************************/ | |
95 | // AliEveCascadeList | |
96 | /******************************************************************************/ | |
97 | ||
98 | class AliEveCascadeList : public TEveElementList | |
99 | { | |
100 | friend class AliEveCascadeListEditor; | |
101 | ||
102 | public: | |
103 | AliEveCascadeList(); | |
104 | AliEveCascadeList(TEveTrackPropagator* rs); | |
105 | AliEveCascadeList(const Text_t* name, TEveTrackPropagator* rs=0); | |
106 | virtual ~AliEveCascadeList() {} | |
107 | ||
108 | virtual const Text_t* GetTitle() const { return fTitle; } | |
109 | virtual void SetTitle(const Text_t* t) { fTitle = t; } | |
110 | virtual void SetTracksColor(Color_t cBac) { fBacColor = cBac;} | |
111 | ||
112 | virtual Bool_t CanEditMainColor() const { return kTRUE; } | |
113 | ||
114 | void SetRnrStyle(TEveTrackPropagator* rst) { fRnrStyle = rst; } | |
115 | TEveTrackPropagator* GetPropagator() { return fRnrStyle; } | |
116 | ||
117 | Bool_t GetRnrCascadevtx() const { return fRnrCascadevtx; } | |
118 | Bool_t GetRnrCascadepath() const { return fRnrCascadepath; } | |
119 | Bool_t GetRnrDaughters() const { return fRnrDaughters; } | |
120 | ||
121 | void MakeCascades(); | |
122 | ||
123 | void FilterByRadius(Float_t minR, Float_t maxR); | |
124 | void FilterByDaughterDCA(Float_t minDaughterDCA, Float_t maxDaughterDCA); | |
125 | void FilterByPt(Float_t minPt, Float_t maxPt); | |
126 | ||
127 | protected: | |
128 | TString fTitle; | |
129 | ||
130 | TEveTrackPropagator *fRnrStyle; | |
131 | ||
132 | Bool_t fRnrDaughters; | |
133 | Bool_t fRnrCascadevtx; | |
134 | Bool_t fRnrCascadepath; | |
135 | ||
136 | Color_t fBacColor; | |
137 | ||
138 | Float_t fMinRCut; | |
139 | Float_t fMaxRCut; | |
140 | ||
141 | Float_t fMinDaughterDCA; | |
142 | Float_t fMaxDaughterDCA; | |
143 | ||
144 | Float_t fMinPt; | |
145 | Float_t fMaxPt; | |
146 | ||
147 | private: | |
148 | void Init(); | |
149 | ||
150 | AliEveCascadeList(const AliEveCascadeList&); // Not implemented | |
151 | AliEveCascadeList& operator=(const AliEveCascadeList&); // Not implemented | |
152 | ||
153 | ClassDef(AliEveCascadeList, 0); // A list of AliEveCascade objecs. | |
154 | }; | |
155 | ||
156 | ||
157 | #endif |