]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/FlavourJetTasks/AliPicoV0MC.h
Add V0 in jet code from Xiaoming
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / AliPicoV0MC.h
1 #ifndef ALIPICOV0MC_H
2 #define ALIPICOV0MC_H
3
4 #include <TLorentzVector.h>
5
6 #include "AliPicoV0Base.h"
7
8
9 class AliPicoV0MC : public AliPicoV0Base {
10
11  public :
12
13   AliPicoV0MC();
14   AliPicoV0MC(UInt_t   wMask,
15               Double_t dV0Radius,
16               Double_t dV0CosPA,
17               Double_t dV0DistToPVoverP,
18               Double_t dDausDCA,
19               Double_t dPosDCAtoPV,
20               Double_t dNegDCAtoPV,
21               Float_t  dDauXrowsTPC,
22               Double_t dDauXrowsOverFindableClusTPC,
23               Double_t dPosPx, Double_t dPosPy, Double_t dPosPz,
24               Double_t dNegPx, Double_t dNegPy, Double_t dNegPz,
25               Bool_t   bPosInJC, Bool_t bNegInJC,
26               Int_t idV, UInt_t wsV, Double_t dV0Px,  Double_t dV0Py, Double_t dV0Pz, Double_t dV0E,
27               Int_t idM=0, UInt_t wsM=0, Double_t dPtM=0., Double_t dEtaM=0., Double_t dRapM=0.);
28   AliPicoV0MC(const AliPicoV0MC &src);
29   AliPicoV0MC& operator=(const AliPicoV0MC &src);
30   virtual ~AliPicoV0MC();
31 //=============================================================================
32
33   TLorentzVector KineMC() const { return fV0Kine; }
34
35   Double_t MotherPt()  const { return fMotherPt;  }
36   Double_t MotherEta() const { return fMotherEta; }
37   Double_t MotherRap() const { return fMotherRap; }
38 //=============================================================================
39
40   Bool_t IsKshort(Double_t dCuts[9]);
41   Bool_t IsLambda(Double_t dCuts[9]);
42   Bool_t IsAntiLa(Double_t dCuts[9]);
43   Bool_t IsV0InRapAcc(Double_t dMin, Double_t dMax);
44
45   Bool_t IsKshort() const { return (fV0PDG== 310);  }
46   Bool_t IsLambda() const { return (fV0PDG== 3122); }
47   Bool_t IsAntiLa() const { return (fV0PDG==-3122); }
48
49   Bool_t IsMotherXiNeg() const { return (fMotherPDG== 3312); }
50   Bool_t IsMotherXiPos() const { return (fMotherPDG==-3312); }
51
52   Bool_t IsLambdaFd() const { return (AliPicoV0Base::IsLambda() && IsMotherXiNeg()); }
53   Bool_t IsAntiLaFd() const { return (AliPicoV0Base::IsAntiLa() && IsMotherXiPos()); }
54
55   void GetControlVariables(Float_t d[18]);
56 //=============================================================================
57
58   Bool_t IsV0Primary() const {
59     return ((fV0Status & AliPicoHeaderCJ::kPrimary) == AliPicoHeaderCJ::kPrimary);
60   }
61
62   Bool_t IsV0PhysicalPrimary() const {
63     return ((fV0Status & AliPicoHeaderCJ::kPhysicalPrimary) == AliPicoHeaderCJ::kPhysicalPrimary);
64   }
65
66   Bool_t IsV0SecondaryFromWeakDecay() const {
67     return ((fV0Status & AliPicoHeaderCJ::kSecondaryFromWeakDecay) == AliPicoHeaderCJ::kSecondaryFromWeakDecay);
68   }
69
70   Bool_t IsV0SecondaryFromMaterial() const {
71     return ((fV0Status & AliPicoHeaderCJ::kSecondaryFromMaterial) == AliPicoHeaderCJ::kSecondaryFromMaterial);
72   }
73 //=============================================================================
74
75   Bool_t IsMotherPrimary() const {
76     return ((fMotherStatus & AliPicoHeaderCJ::kPrimary) == AliPicoHeaderCJ::kPrimary);
77   }
78
79   Bool_t IsMotherPhysicalPrimary() const {
80     return ((fMotherStatus & AliPicoHeaderCJ::kPhysicalPrimary) == AliPicoHeaderCJ::kPhysicalPrimary);
81   }
82
83   Bool_t IsMotherSecondaryFromWeakDecay() const {
84     return ((fMotherStatus & AliPicoHeaderCJ::kSecondaryFromWeakDecay) == AliPicoHeaderCJ::kSecondaryFromWeakDecay);
85   }
86
87   Bool_t IsMotherSecondaryFromMaterial() const {
88     return ((fMotherStatus & AliPicoHeaderCJ::kSecondaryFromMaterial) == AliPicoHeaderCJ::kSecondaryFromMaterial);
89   }
90 //=============================================================================
91
92  private :
93
94   Int_t  fV0PDG;     //
95   UInt_t fV0Status;  //
96   TLorentzVector fV0Kine;  //
97
98   Int_t  fMotherPDG;     //
99   UInt_t fMotherStatus;  //
100
101   Double_t fMotherPt;   //
102   Double_t fMotherEta;  //
103   Double_t fMotherRap;  //
104
105   ClassDef(AliPicoV0MC, 4);
106 };
107
108 #endif