]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveBase/AliEveCascade.h
Remove information printout.
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveCascade.h
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
22 #include <TEveVSDStructs.h>
23 #include <TEveElement.h>
24 #include <TEveTrack.h>
25
26 #include <TPolyMarker3D.h>
27 #include <TPolyLine3D.h>
28
29 class TH1F;
30 class TH2F;
31
32
33 class AliEveCascadeList;
34
35 class AliEveCascade : public TEvePointSet
36 {
37   friend class AliEveCascadeList;
38
39 public:
40   AliEveCascade();
41   AliEveCascade(TEveRecTrack* tBac, TEveRecV0* v0, TEveRecCascade* cascade, TEveTrackPropagator* rs);
42   virtual ~AliEveCascade();
43
44   void MakeCascade();
45
46   virtual void  SetMainColor(Color_t col)
47   {
48     TEvePointSet::SetMainColor(col);
49     fPointingCurve->SetLineColor(fMarkerColor);
50     fV0Path->SetLineColor(fMarkerColor);
51   }
52
53   void SetRnrStyle(TEveTrackPropagator* rs) { fRnrStyle = rs; }
54
55   Float_t GetDaughterDCA() const { return fDaughterDCA; }
56   void SetDaughterDCA(Float_t dca) { fDaughterDCA = dca; }
57
58   Float_t GetRadius() const { return fRecDecayV.Perp(); }
59   Float_t GetPt()     const { return fRecDecayP.Perp(); }
60
61   Int_t GetESDIndex() const { return fESDIndex; }
62   void  SetESDIndex(Int_t ind) { fESDIndex = ind;}
63
64   virtual const Text_t* GetName() const    { return Form("ESDcascade_%i",fESDIndex); }
65   virtual const Text_t* GetTitle() const   { return Form("ESDcascade_%i",fESDIndex); }
66
67   TEveTrackPropagator* GetPropagator() const  { return fRnrStyle; }
68
69   TEveTrack* GetBacTrack() { return fBacTrack; }
70
71   TEveLine*  GetPointingCurve() { return fPointingCurve; }
72   TEveLine*  GetV0Path() { return fV0Path; }
73
74 protected:
75   TEveVector fRecBirthV;    // Assumed birth point of cascade
76   TEveVector fRecDecayV;    // Point of closest approach
77   TEveVector fRecDecayP;    // Reconstructed momentum at the decay
78   TEveVector fRecDecayV0;   // Reconstructed birth point of neutral daughter
79
80   TEveTrack        *fBacTrack;
81
82   TEveTrackPropagator *fRnrStyle;
83
84   TEveLine         *fPointingCurve;
85   TEveLine         *fV0Path;
86
87   Int_t             fESDIndex;    // Index in ESD V0 array.
88   Float_t           fDaughterDCA; // Distance at the point of closest approach. 
89   Float_t           fChi2Cascade; // Some Chi-square.
90
91 private:
92   AliEveCascade(const AliEveCascade&);            // Not implemented
93   AliEveCascade& operator=(const AliEveCascade&); // Not implemented
94
95   ClassDef(AliEveCascade, 0); // Visual representation of a AliEveCascade.
96 };
97
98
99 /******************************************************************************/
100 // AliEveCascadeList
101 /******************************************************************************/
102
103 class AliEveCascadeList : public TEveElementList
104 {
105   friend class AliEveCascadeListEditor;
106
107 public:
108   AliEveCascadeList();
109   AliEveCascadeList(TEveTrackPropagator* rs);
110   AliEveCascadeList(const Text_t* name, TEveTrackPropagator* rs=0);
111   virtual ~AliEveCascadeList() {}
112
113   virtual const Text_t* GetTitle() const { return fTitle; }
114   virtual void SetTitle(const Text_t* t) { fTitle = t; }
115   virtual void SetTracksColor(Color_t cBac) { fBacColor = cBac;}
116
117   virtual Bool_t CanEditMainColor() const { return kTRUE; }
118
119   void  SetRnrStyle(TEveTrackPropagator* rst) { fRnrStyle = rst; }
120   TEveTrackPropagator* GetPropagator()        { return fRnrStyle; }
121
122   Bool_t GetRnrCascadevtx()     const { return fRnrCascadevtx; }
123   Bool_t GetRnrCascadepath()    const { return fRnrCascadepath; }
124   Bool_t GetRnrDaughters()      const { return fRnrDaughters; }
125
126   void   MakeCascades();
127
128   void   FilterByRadius(Float_t minR, Float_t maxR);
129   void   FilterByDaughterDCA(Float_t minDaughterDCA, Float_t maxDaughterDCA);
130   void   FilterByPt(Float_t minPt, Float_t maxPt);
131
132 protected:
133   TString              fTitle;
134
135   TEveTrackPropagator *fRnrStyle;
136
137   Bool_t               fRnrDaughters;
138   Bool_t               fRnrCascadevtx;
139   Bool_t               fRnrCascadepath;
140
141   Color_t              fBacColor;
142
143   Float_t              fMinRCut;
144   Float_t              fMaxRCut;
145
146   Float_t              fMinDaughterDCA;
147   Float_t              fMaxDaughterDCA;
148
149   Float_t              fMinPt;
150   Float_t              fMaxPt;
151
152 private:
153   void Init();
154
155   AliEveCascadeList(const AliEveCascadeList&);            // Not implemented
156   AliEveCascadeList& operator=(const AliEveCascadeList&); // Not implemented
157
158   ClassDef(AliEveCascadeList, 0); // A list of AliEveCascade objecs.
159 };
160
161
162 #endif