2 // Main authors: Paraskevi Ganoti: 2009
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 **************************************************************************/
12 #include <TEvePointSet.h>
15 class TEveTrackPropagator;
22 //------------------------------------------------------------------------------
25 // Graphical representation of a kink.
26 //------------------------------------------------------------------------------
28 class AliEveKink : public TEvePointSet
30 friend class AliEveKinkList;
31 friend class AliEveKinkEditor;
35 AliEveKink(TEveRecTrack* tMoth, TEveRecTrack* tDaug, TEveRecKink* kink, TEveTrackPropagator* rsMoth, TEveTrackPropagator* rsDaugh);
36 virtual ~AliEveKink();
40 virtual void SetMainColor(Color_t col)
42 TEvePointSet::SetMainColor(col);
45 void SetRnrStyleMother(TEveTrackPropagator* rsMoth) { fRnrStyleMoth = rsMoth; }
46 void SetRnrStyleDaughter(TEveTrackPropagator* rsDaugh) { fRnrStyleDaugh = rsDaugh; }
47 Double_t GetKinkAngle(Int_t i) const { return fKinkAngle[i]; }
48 void SetKinkAngle(Int_t i, Double_t anglekink) { fKinkAngle[i] = anglekink; }
50 Float_t GetKinkRadius() const { return fRecKinkPosition.Perp(); }
52 Float_t GetKinkPMother() const { return fMotherMomentum.Mag(); }
53 Float_t GetKinkPMotherPerp() const { return fMotherMomentum.Perp(); }
54 Float_t GetKinkPDaughter() const { return fDaughterMomentum.Mag(); }
56 Float_t GetInvMass(Int_t dPdgCode) const;
57 Float_t GetQt() const;
59 void SetMaxProbPdgPid(Int_t rPdg, Float_t rPid);
60 Int_t GetDaugMaxProbPdg() const { return fDaugMaxProbPdg; }
61 Float_t GetDaugMaxProbPid() const { return fDaugMaxProbPid; }
63 Int_t GetESDKinkIndex() const { return fESDKinkIndex; }
64 void SetESDKinkIndex(Int_t ind) { fESDKinkIndex = ind;}
66 virtual const Text_t* GetName() const { return Form("ESDkink_%i",fESDKinkIndex); }
67 virtual const Text_t* GetTitle() const { return Form("ESDkink_%i",fESDKinkIndex); }
69 TEveTrack* GetMotherTrack() const { return fMotherTrack; }
70 TEveTrack* GetDaughterTrack() const { return fDaughterTrack; }
73 TEveVector fRecKinkPosition; // Reconstructed position of kink.
74 TEveVector fMotherMomentum; // Momentum of mother track.
75 TEveVector fDaughterMomentum; // Momentum of daugter track.
77 TEveTrack *fMotherTrack; // Graphical representation of mother track.
78 TEveTrack *fDaughterTrack; // Graphical representation of daughter track.
80 TEveTrackPropagator *fRnrStyleMoth; // Track-propagator for mother track.
81 TEveTrackPropagator *fRnrStyleDaugh; // Track-propagator for daughter track.
83 Int_t fESDKinkIndex; // Index in ESD Kink array.
84 Double_t fKinkAngle[3]; // TODO
86 Int_t fDaugMaxProbPdg; // Maximum PDG probability for the daughter
87 Float_t fDaugMaxProbPid; // Maximum PID probability for the daughter
90 AliEveKink(const AliEveKink&); // Not implemented
91 AliEveKink& operator=(const AliEveKink&); // Not implemented
93 ClassDef(AliEveKink, 0); // Visual representation of a AliEveKink.
97 //------------------------------------------------------------------------------
100 // Container for AliEveKink objects
101 // Provides managmenet methods for setting cuts and common visualization
103 //------------------------------------------------------------------------------
105 class AliEveKinkList : public TEveElementList
107 friend class AliEveKinkListEditor;
111 AliEveKinkList(TEveTrackPropagator* rsMoth, TEveTrackPropagator* rsDaugh);
112 AliEveKinkList(const Text_t* name, TEveTrackPropagator* rsMoth=0, TEveTrackPropagator* rsDaugh=0);
113 virtual ~AliEveKinkList() {}
115 virtual void SetTracksColor(Color_t cMoth, Color_t cDaug)
116 { fMothColor = cMoth; fDaugColor = cDaug; }
118 virtual Bool_t CanEditMainColor() const { return kTRUE; }
120 void SetRnrStyleMoth(TEveTrackPropagator* rstMoth) { fRnrStyleMoth = rstMoth; }
121 TEveTrackPropagator* GetPropagatorMoth() const { return fRnrStyleMoth; }
123 void SetRnrStyleDaugh(TEveTrackPropagator* rstDaugh) { fRnrStyleDaugh = rstDaugh; }
124 TEveTrackPropagator* GetPropagatorDaugh() const { return fRnrStyleDaugh; }
126 Bool_t GetRnrKinkvtx() const { return fRnrKinkvtx; }
127 Bool_t GetRnrKinkDaughter() const { return fRnrKinkDaughter; } //not yet be sure about this!!!
131 void FilterByRadius(Float_t minR, Float_t maxR);
132 void FilterByKinkAngle(Float_t minKinkAngle, Float_t maxKinkAngle);
133 void FilterByPt(Float_t minPt, Float_t maxPt);
134 void FilterByInvariantMass(Float_t minPt, Float_t maxPt, Int_t dPdgCode);
136 void FilterByCheckedPidMinProb(Int_t rFlag, Int_t rPid, Float_t rProb);
137 void SetDaugCheckedPid(Int_t dcpid) { fDaugCheckedPid = dcpid; }
138 Int_t GetDaugCheckedPid() const { return fDaugCheckedPid; }
140 void SetDaugCheckedProb(Float_t dcprob) { fDaugCheckedProb = dcprob; }
141 Float_t GetDaugCheckedProb() const { return fDaugCheckedProb; }
145 TEveTrackPropagator *fRnrStyleMoth; // Default track-propagator for mother tracks.
146 TEveTrackPropagator *fRnrStyleDaugh; // Default track-propagator for daughter tracks.
148 Bool_t fRnrKinkDaughter; // Flag - show daughter tracks.
149 Bool_t fRnrKinkvtx; // Flag - show kink vertex.
151 Color_t fMothColor; // Color of mother tracks.
152 Color_t fDaugColor; // Color of daughter tracks.
154 Float_t fMinRCut; // Cut - minimum kink radius.
155 Float_t fMaxRCut; // Cut - maximum kink radius.
157 Float_t fMinKinkAngle; // Cut - minimum kink angle.
158 Float_t fMaxKinkAngle; // Cut - maximum kink angle.
160 Float_t fMinPt; // Cut - minimum pT of mother track.
161 Float_t fMaxPt; // Cut - maximum pT of mother track.
163 Float_t fMinInvariantMass; // Cut - minimum invariant mass.
164 Float_t fMaxInvariantMass; // Cut - maximum invariant mass.
166 Int_t fDaugCheckedPid; // Cut - PID of daughter track.
167 Float_t fDaugCheckedProb; // Cut - min PID probability of the daughter track.
172 AliEveKinkList(const AliEveKinkList&); // Not implemented
173 AliEveKinkList& operator=(const AliEveKinkList&); // Not implemented
175 ClassDef(AliEveKinkList, 0); // A list of AliEveKink objecs.