]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveBase/AliEveCascade.h
updates from trying things out at WSU
[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
22#include <TEveVSDStructs.h>
23#include <TEveElement.h>
24#include <TEveTrack.h>
25
26#include <TPolyMarker3D.h>
27#include <TPolyLine3D.h>
28
29class TH1F;
30class TH2F;
31
32
33class AliEveCascadeList;
34
35class AliEveCascade : public TEvePointSet
36{
37 friend class AliEveCascadeList;
38
39public:
40 AliEveCascade();
41 AliEveCascade(TEveRecTrack* tBac, TEveRecCascade* cascade,
42 TEveTrackPropagator* rs);
43 virtual ~AliEveCascade();
44
45 void MakeCascade();
46
47 virtual void SetMainColor(Color_t col)
48 {
49 TEvePointSet::SetMainColor(col);
50 fPointingLine->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* GetPointingLine() { return fPointingLine; }
72
73protected:
74 TEveVector fRecBirthV; // Reconstucted birth point of neutral particle
75 TEveVector fRecDecayV; // Point of closest approach
76 TEveVector fRecDecayP;
77
78 TEveTrack *fBacTrack;
79
80 TEveTrackPropagator *fRnrStyle;
81
82 TEveLine *fPointingLine;
83
84 Int_t fESDIndex; // Index in ESD V0 array.
85 Float_t fDaughterDCA; // Distance at the point of closest approach.
86 Float_t fChi2Cascade; // Some Chi-square.
87
88private:
89 AliEveCascade(const AliEveCascade&); // Not implemented
90 AliEveCascade& operator=(const AliEveCascade&); // Not implemented
91
92 ClassDef(AliEveCascade, 0); // Visual representation of a AliEveCascade.
93};
94
95
96/******************************************************************************/
97// AliEveCascadeList
98/******************************************************************************/
99
100class AliEveCascadeList : public TEveElementList
101{
102 friend class AliEveCascadeListEditor;
103
104public:
105 AliEveCascadeList();
106 AliEveCascadeList(TEveTrackPropagator* rs);
107 AliEveCascadeList(const Text_t* name, TEveTrackPropagator* rs=0);
108 virtual ~AliEveCascadeList() {}
109
110 virtual const Text_t* GetTitle() const { return fTitle; }
111 virtual void SetTitle(const Text_t* t) { fTitle = t; }
112 virtual void SetTracksColor(Color_t cBac) { fBacColor = cBac;}
113
114 virtual Bool_t CanEditMainColor() const { return kTRUE; }
115
116 void SetRnrStyle(TEveTrackPropagator* rst) { fRnrStyle = rst; }
117 TEveTrackPropagator* GetPropagator() { return fRnrStyle; }
118
119 Bool_t GetRnrCascadevtx() const { return fRnrCascadevtx; }
120 Bool_t GetRnrCascadepath() const { return fRnrCascadepath; }
121 Bool_t GetRnrDaughters() const { return fRnrDaughters; }
122
123 void MakeCascades();
124
125 void FilterByRadius(Float_t minR, Float_t maxR);
126 void FilterByDaughterDCA(Float_t minDaughterDCA, Float_t maxDaughterDCA);
127 void FilterByPt(Float_t minPt, Float_t maxPt);
128
129protected:
130 TString fTitle;
131
132 TEveTrackPropagator *fRnrStyle;
133
134 Bool_t fRnrDaughters;
135 Bool_t fRnrCascadevtx;
136 Bool_t fRnrCascadepath;
137
138 Color_t fBacColor;
139
140 Float_t fMinRCut;
141 Float_t fMaxRCut;
142
143 Float_t fMinDaughterDCA;
144 Float_t fMaxDaughterDCA;
145
146 Float_t fMinPt;
147 Float_t fMaxPt;
148
149private:
150 void Init();
151
152 AliEveCascadeList(const AliEveCascadeList&); // Not implemented
153 AliEveCascadeList& operator=(const AliEveCascadeList&); // Not implemented
154
155 ClassDef(AliEveCascadeList, 0); // A list of AliEveCascade objecs.
156};
157
158
159#endif