]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/FlavourJetTasks/AliPicoV0MC.h
method Destroy added to AliGeomManager for clean removal of geometry
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / AliPicoV0MC.h
CommitLineData
b254f323 1#ifndef ALIPICOV0MC_H
2#define ALIPICOV0MC_H
3
4#include <TLorentzVector.h>
5
6#include "AliPicoV0Base.h"
7
8
9class 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