2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
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
12 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
13 * See cxx source for full Copyright notice */
16 /***********************************************************************
17 * This code defines the reconstructed cascade visualized with EVE
19 * Boris Hippolyte, IPHC (hippolyt@in2p3.fr)
20 ************************************************************************/
22 #include <TEveVSDStructs.h>
23 #include <TEveElement.h>
24 #include <TEveTrack.h>
26 #include <TPolyMarker3D.h>
27 #include <TPolyLine3D.h>
33 class AliEveCascadeList;
35 class AliEveCascade : public TEvePointSet
37 friend class AliEveCascadeList;
41 AliEveCascade(TEveRecTrack* tBac, TEveRecV0* v0, TEveRecCascade* cascade, TEveTrackPropagator* rs);
42 virtual ~AliEveCascade();
46 virtual void SetMainColor(Color_t col)
48 TEvePointSet::SetMainColor(col);
49 fPointingCurve->SetLineColor(fMarkerColor);
50 fV0Path->SetLineColor(fMarkerColor);
53 void SetRnrStyle(TEveTrackPropagator* rs) { fRnrStyle = rs; }
55 Float_t GetDaughterDCA() const { return fDaughterDCA; }
56 void SetDaughterDCA(Float_t dca) { fDaughterDCA = dca; }
58 Float_t GetRadius() const { return fRecDecayV.Perp(); }
59 Float_t GetPt() const { return fRecDecayP.Perp(); }
61 Int_t GetESDIndex() const { return fESDIndex; }
62 void SetESDIndex(Int_t ind) { fESDIndex = ind;}
64 virtual const Text_t* GetName() const { return Form("ESDcascade_%i",fESDIndex); }
65 virtual const Text_t* GetTitle() const { return Form("ESDcascade_%i",fESDIndex); }
67 TEveTrackPropagator* GetPropagator() const { return fRnrStyle; }
69 TEveTrack* GetBacTrack() { return fBacTrack; }
71 TEveLine* GetPointingCurve() { return fPointingCurve; }
72 TEveLine* GetV0Path() { return fV0Path; }
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
82 TEveTrackPropagator *fRnrStyle;
84 TEveLine *fPointingCurve;
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.
92 AliEveCascade(const AliEveCascade&); // Not implemented
93 AliEveCascade& operator=(const AliEveCascade&); // Not implemented
95 ClassDef(AliEveCascade, 0); // Visual representation of a AliEveCascade.
99 /******************************************************************************/
101 /******************************************************************************/
103 class AliEveCascadeList : public TEveElementList
105 friend class AliEveCascadeListEditor;
109 AliEveCascadeList(TEveTrackPropagator* rs);
110 AliEveCascadeList(const Text_t* name, TEveTrackPropagator* rs=0);
111 virtual ~AliEveCascadeList() {}
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;}
117 virtual Bool_t CanEditMainColor() const { return kTRUE; }
119 void SetRnrStyle(TEveTrackPropagator* rst) { fRnrStyle = rst; }
120 TEveTrackPropagator* GetPropagator() { return fRnrStyle; }
122 Bool_t GetRnrCascadevtx() const { return fRnrCascadevtx; }
123 Bool_t GetRnrCascadepath() const { return fRnrCascadepath; }
124 Bool_t GetRnrDaughters() const { return fRnrDaughters; }
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);
135 TEveTrackPropagator *fRnrStyle;
137 Bool_t fRnrDaughters;
138 Bool_t fRnrCascadevtx;
139 Bool_t fRnrCascadepath;
146 Float_t fMinDaughterDCA;
147 Float_t fMaxDaughterDCA;
155 AliEveCascadeList(const AliEveCascadeList&); // Not implemented
156 AliEveCascadeList& operator=(const AliEveCascadeList&); // Not implemented
158 ClassDef(AliEveCascadeList, 0); // A list of AliEveCascade objecs.