Adding comments (Laurent)
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowV0.h
1 //////////////////////////////////////////////////////////////////////
2 //
3 // $Id$
4 //
5 // Author: Emanuele Simili
6 //
7 //////////////////////////////////////////////////////////////////////
8 //
9 // Description: an array of V0s is part of AliFlowEvent, 
10 //  this class allow flow study neutral secundary vertices (V0s)
11 //  as they are reconstructer by AliRoot at the ESD level .
12 //
13 //////////////////////////////////////////////////////////////////////
14
15 #ifndef ALIFLOWV0_H
16 #define ALIFLOWV0_H
17
18 #include <string.h>
19 #include <stdio.h>
20 #include <stdlib.h>
21 #include <iostream>
22 #include <TROOT.h>
23 #include "TMath.h"
24 #include "TNamed.h"
25
26 #include "AliFlowTrack.h"
27
28 class AliFlowV0 : public TNamed {
29
30 public:
31
32                 AliFlowV0();
33                 AliFlowV0(const Char_t* name);
34   virtual       ~AliFlowV0();
35
36  // Gets
37   const Char_t* Pid()          const ;
38   Float_t       P()            const ;   
39   Float_t       Y()            const ;
40   Float_t       Phi()          const { return fPhi; }  
41   Float_t       Eta()          const { return fEta; }  
42   Float_t       Pt()           const { return fPt; }   
43   Short_t       Charge()       const { return 0 ; }
44   Float_t       Dca()          const { return fDca ; }
45   Float_t       Chi2()         const { return fChi2; }
46   Float_t       Mass()         const { return fMass ; }
47   Int_t         DaughterP()    const { return fDaughterP ; } 
48   Int_t         DaughterN()    const { return fDaughterN ; } 
49   Float_t       V0Lenght()     const { return TMath::Sqrt(fCrossPoint[0]*fCrossPoint[0] + fCrossPoint[1]*fCrossPoint[1] + fCrossPoint[2]*fCrossPoint[2]) ; }
50   Float_t       Sigma()        const { return fSigma ; }
51   Float_t       CrossPointX()  const { return fCrossPoint[0] ; }
52   Float_t       CrossPointY()  const { return fCrossPoint[1] ; } 
53   Float_t       CrossPointZ()  const { return fCrossPoint[2] ; }
54   Float_t       DaughtersDca() const { return fCrossDCA ; }
55   Int_t         Label()        const { return fLabel ; }
56   Float_t       GetCosPointingAngle()       const { return fPointAngle ; }
57   Int_t         MostLikelihoodPID()         const { return fMostLikelihoodPID; } 
58   void          CrossPoint(Float_t Pxyz[3]) const { for(Int_t ii=0;ii<3;ii++) { Pxyz[ii] = fCrossPoint[ii] ; } }
59
60  // Sets
61   void SetPhi(Float_t phi)              { fPhi = phi; }   
62   void SetEta(Float_t eta)              { fEta = eta; }   
63   void SetPt(Float_t pt)                { fPt = pt; }     
64   void SetChi2(Float_t chi2)            { fChi2 = chi2; }   
65   void SetVmass(Float_t mass)           { fMass = mass ; }
66   void SetDca(Float_t dca)              { fDca = dca; }
67   void SetSigma(Float_t sigma)          { fSigma = sigma ; }      
68   void SetLabel(Int_t label)            { fLabel = label ; }
69   void SetDaughtersDca(Float_t dca)     { fCrossDCA = dca ; }
70   void SetCosPointingAngle(Float_t cos) { fPointAngle = cos ; }
71   void SetMostLikelihoodPID(Int_t pdgCode)                { fMostLikelihoodPID = pdgCode ; }
72   void SetCrossPoint(Float_t pox,Float_t poy,Float_t poz) { fCrossPoint[0] = pox ; fCrossPoint[1] = poy ; fCrossPoint[2] = poz ; }
73   void SetDaughters(Int_t pos, Int_t neg)                 { fDaughterP = pos ; fDaughterN = neg ; }
74
75
76 private:
77
78  // to make the code checker happy
79   AliFlowV0(const AliFlowV0 &flowV0) ;            // Copy Constructor (dummy)
80   AliFlowV0 &operator=(const AliFlowV0 &flowV0) ; // Assignment Operator (dummy)
81
82  // Data Members
83   Float_t       fPhi;                           // reconstructed azimuthal angle of the v0
84   Float_t       fPt;                            // reconstructed transverse momentum of the v0 
85   Float_t       fEta;                           // reconstructed pseudorapidity of the v0
86   Float_t       fChi2;                          // chi2 of the reconstructed v0
87   Float_t       fMass;                          // reconstructed v0 mass 
88   Float_t       fDca;                           // distance of closest approach of the reconstructed v0 to the main vertex
89   Float_t       fCrossPoint[3] ;                // crossing point coordinates of the two daughter tracks
90   Float_t       fCrossDCA ;                     // DCA between the 2 daughter tracks at the crossing point 
91   Float_t       fSigma ;                        // sigma of the DCA of the 2 daughter tracks at the crossing point 
92   Int_t         fLabel ;                        // Label of the V0 (link: KineTree-ESD) 
93   Int_t         fMostLikelihoodPID;             // most probable P.Id. hypotesis
94   Float_t       fPointAngle;                    // cosine of the pointing angle
95   Int_t         fDaughterP ;                    // positive daughter track (position in the TracksCollection())
96   Int_t         fDaughterN ;                    // negative daughter track (position in the TracksCollection())
97   
98   ClassDef(AliFlowV0,2) ;                       // macro for rootcint
99 };
100
101 #endif
102 //////////////////////////////////////////////////////////////////////