* See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
* full copyright notice. *
**************************************************************************/
+
#ifndef AliEveV0_H
#define AliEveV0_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
+//------------------------------------------------------------------------------
+// AliEveV0
+//------------------------------------------------------------------------------
+//
+// Representation of a reconstructed V0.
+//
+//
+//------------------------------------------------------------------------------
+// AliEveV0List
+//------------------------------------------------------------------------------
+//
+// Container for AliEveV0s.
+//
+// Allows runtime selection by pT and DCA of daughters, radius of V0
+// creation and PID priobabilities
-/***********************************************************************
-* This code defines the reconstructed v0 visualized with EVE
-*
-* Ludovic Gaudichet (gaudichet@to.infn.it)
-************************************************************************/
+//==============================================================================
+#include "AliEveTrack.h"
#include <TEveVSDStructs.h>
-#include <TEveElement.h>
-#include <TEveTrack.h>
-#include <TPolyMarker3D.h>
#include <TPolyLine3D.h>
+#include <TPDGCode.h>
+
class TH1F;
class TH2F;
class AliEveV0 : public TEvePointSet
{
friend class AliEveV0List;
+ friend class AliEveV0Editor;
public:
AliEveV0();
Float_t GetDaughterDCA() const { return fDaughterDCA; }
void SetDaughterDCA(Float_t dca) { fDaughterDCA = dca; }
+ Float_t GetPhi() const { return fRecDecayP.Phi(); }
+ Float_t GetEta() const { return fRecDecayP.Eta(); }
Float_t GetRadius() const { return fRecDecayV.Perp(); }
+ Float_t GetPt() const { return fRecDecayP.Perp(); }
+
+ Float_t GetInvMass(Int_t nPdgCode, Int_t pPdgCode) const;
+ Float_t GetK0sInvMass() const { return GetInvMass(kPiMinus,kPiPlus); }
+ Float_t GetLambdaInvMass() const { return GetInvMass(kPiMinus,kProton); }
+ Float_t GetAntiLambdaInvMass() const { return GetInvMass(kProton,kPiPlus); }
Bool_t GetOnFlyStatus() const { return fOnFlyStatus; }
void SetOnFlyStatus(Bool_t fs) { fOnFlyStatus = fs; }
+ void SetMaxProbPdgPid(Int_t iDaughter, Int_t rPdg, Float_t rPid);
+ Int_t GetNegMaxProbPdg() const { return fNegMaxProbPdg; }
+ Int_t GetPosMaxProbPdg() const { return fPosMaxProbPdg; }
+ Float_t GetNegMaxProbPid() const { return fNegMaxProbPid; }
+ Float_t GetPosMaxProbPid() const { return fPosMaxProbPid; }
+
Int_t GetESDIndex() const { return fESDIndex; }
void SetESDIndex(Int_t ind) { fESDIndex = ind;}
- virtual const Text_t* GetName() const { return Form("ESDv0_%i",fESDIndex); }
- virtual const Text_t* GetTitle() const { return Form("ESDv0_%i",fESDIndex); }
+ virtual const Text_t* GetName() const { return Form("ESDv0_%i",fESDIndex); }
+ virtual const Text_t* GetTitle() const { return Form("ESDv0_%i",fESDIndex); }
TEveTrackPropagator* GetPropagator() const { return fRnrStyle; }
- TEveTrack* GetNegTrack() { return fNegTrack; }
- TEveTrack* GetPosTrack() { return fPosTrack; }
+ AliEveTrack* GetNegTrack() const { return fNegTrack; }
+ AliEveTrack* GetPosTrack() const { return fPosTrack; }
- TEveLine* GetPointingLine() { return fPointingLine; }
+ TEveLine* GetPointingLine() const { return fPointingLine; }
protected:
TEveVector fRecBirthV; // Reconstucted birth point of neutral particle
TEveVector fRecDecayV; // Point of closest approach
- TEveVector fRecDecayP;
+ TEveVector fRecDecayP; // Reconstructed momentum of decayed particle.
- TEveTrack *fNegTrack;
- TEveTrack *fPosTrack;
+ AliEveTrack *fNegTrack; // Representation of negative track.
+ AliEveTrack *fPosTrack; // Representation of positive track.
- TEveTrackPropagator *fRnrStyle;
+ TEveTrackPropagator *fRnrStyle; // Track propagator for neg/pos track.
- TEveLine *fPointingLine;
+ TEveLine *fPointingLine; // Representation of pointing line.
Int_t fESDIndex; // Index in ESD V0 array.
Bool_t fOnFlyStatus; // Reconstructed during tracking.
Float_t fDaughterDCA; // Distance at the point of closest approach.
Float_t fChi2V0; // Some Chi-square.
+ Int_t fNegMaxProbPdg; // Maximum PDG probability for the negative daughter
+ Int_t fPosMaxProbPdg; // Maximum PDG probability for the positive daughter
+ Float_t fNegMaxProbPid; // Maximum PID probability for the negative daughter
+ Float_t fPosMaxProbPid; // Maximum PID probability for the positive daughter
+
private:
AliEveV0(const AliEveV0&); // Not implemented
AliEveV0& operator=(const AliEveV0&); // Not implemented
void MakeV0s();
void FilterByRadius(Float_t minR, Float_t maxR);
+ void FilterByDaughterDCA(Float_t minDaughterDCA, Float_t maxDaughterDCA);
+ void FilterByPt(Float_t minPt, Float_t maxPt);
+ void FilterByCheckedPidMinProb(Int_t rFlag, Int_t rDaughter, Int_t rPid, Float_t rProb);
+ void SetNegCheckedPid(Int_t rNegCheckedPid) {fNegCheckedPid = rNegCheckedPid;}
+ void SetPosCheckedPid(Int_t rPosCheckedPid) {fPosCheckedPid = rPosCheckedPid;}
+ Int_t GetNegCheckedPid() const { return fNegCheckedPid; }
+ Int_t GetPosCheckedPid() const { return fPosCheckedPid; }
+
+ void SetNegCheckedProb(Float_t rNegCheckedProb) {fNegCheckedProb = rNegCheckedProb;}
+ void SetPosCheckedProb(Float_t rPosCheckedProb) {fPosCheckedProb = rPosCheckedProb;}
+ Float_t GetNegCheckedProb() const { return fNegCheckedProb; }
+ Float_t GetPosCheckedProb() const { return fPosCheckedProb; }
+
+ void FilterByInvariantMass(Float_t minPt, Float_t maxPt, Int_t nPdgCode, Int_t pPdgCode);
protected:
- TString fTitle;
+ TString fTitle; // Title of the object.
+
+ TEveTrackPropagator *fRnrStyle; // Track propagator to be passed do conteined V0s.
+
+ Bool_t fRnrDaughters; // Flag - display daughter tracks.
+ Bool_t fRnrV0vtx; // Flag - display V0 vertex.
+ Bool_t fRnrV0path; // Flag - display V0 path.
+
+ Color_t fNegColor; // Color for negative tracks.
+ Color_t fPosColor; // Color for positive tracks.
+
+ Float_t fMinRCut; // Minimum radius cut.
+ Float_t fMaxRCut; // Maximum radius cut.
+
+ Float_t fMinDaughterDCA; // Minimum daughter DCA cut.
+ Float_t fMaxDaughterDCA; // Maximum daughter DCA cut.
- TEveTrackPropagator *fRnrStyle;
+ Float_t fMinPt; // Minimum Pt cut.
+ Float_t fMaxPt; // Maximum Pt cut.
- Bool_t fRnrDaughters;
- Bool_t fRnrV0vtx;
- Bool_t fRnrV0path;
+ Int_t fNegCheckedPid; // BORIS ?
+ Int_t fPosCheckedPid; // BORIS ?
- Color_t fNegColor;
- Color_t fPosColor;
+ Float_t fNegCheckedProb; // BORIS ?
+ Float_t fPosCheckedProb; // BORIS ?
- Float_t fMinRCut;
- Float_t fMaxRCut;
+ Float_t fMinInvariantMass; // Minimum invariant mass cut.
+ Float_t fMaxInvariantMass; // Maximum invariant mass cut.
private:
void Init();