]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveBase/AliEveCascade.h
update
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveCascade.h
CommitLineData
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 25class AliEveCascadeList;
2991d609 26
27class TH1F;
28class TH2F;
29
2991d609 30class AliEveCascade : public TEvePointSet
31{
32 friend class AliEveCascadeList;
33
34public:
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
69protected:
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
86private:
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
98class AliEveCascadeList : public TEveElementList
99{
100 friend class AliEveCascadeListEditor;
101
102public:
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
127protected:
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
147private:
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