2 #include <TLorentzVector.h>
4 #include "AliPicoV0RD.h"
8 //_____________________________________________________________________________
9 AliPicoV0RD::AliPicoV0RD() :
13 fPosProtonSigmaTPC(0.),
14 fNegProtonSigmaTPC(0.)
17 // AliPicoV0RD::AliPicoV0RD
21 //_____________________________________________________________________________
22 AliPicoV0RD::AliPicoV0RD(UInt_t wMask,
25 Double_t dV0DistToPVoverP,
30 Double_t dDauXrowsOverFindableClusTPC,
31 Double_t dPosPx, Double_t dPosPy, Double_t dPosPz,
32 Double_t dNegPx, Double_t dNegPy, Double_t dNegPz,
33 Bool_t bPosInJC, Bool_t bNegInJC,
34 Float_t dPosPionSigmaTPC, Float_t dPosProtonSigmaTPC,
35 Float_t dNegPionSigmaTPC, Float_t dNegProtonSigmaTPC) :
44 dDauXrowsOverFindableClusTPC,
45 dPosPx, dPosPy, dPosPz,
46 dNegPx, dNegPy, dNegPz,
48 fPosPionSigmaTPC(dPosPionSigmaTPC),
49 fNegPionSigmaTPC(dNegPionSigmaTPC),
50 fPosProtonSigmaTPC(dPosProtonSigmaTPC),
51 fNegProtonSigmaTPC(dNegProtonSigmaTPC)
54 // AliPicoV0RD::AliPicoV0RD
58 //_____________________________________________________________________________
59 AliPicoV0RD::AliPicoV0RD(const AliPicoV0RD &src) :
61 fPosPionSigmaTPC(src.fPosPionSigmaTPC),
62 fNegPionSigmaTPC(src.fNegPionSigmaTPC),
63 fPosProtonSigmaTPC(src.fPosProtonSigmaTPC),
64 fNegProtonSigmaTPC(src.fNegProtonSigmaTPC)
67 // AliPicoV0RD::AliPicoV0RD
71 //_____________________________________________________________________________
72 AliPicoV0RD& AliPicoV0RD::operator=(const AliPicoV0RD &src)
75 // AliPicoV0RD::operator=
78 if (&src==this) return *this;
80 AliPicoV0Base::operator=(src);
82 fPosPionSigmaTPC = src.fPosPionSigmaTPC;
83 fNegPionSigmaTPC = src.fNegPionSigmaTPC;
84 fPosProtonSigmaTPC = src.fPosProtonSigmaTPC;
85 fNegProtonSigmaTPC = src.fNegProtonSigmaTPC;
90 //_____________________________________________________________________________
91 AliPicoV0RD::~AliPicoV0RD()
94 // AliPicoV0RD::~AliPicoV0RD
98 //_____________________________________________________________________________
99 Bool_t AliPicoV0RD::IsKshort(Double_t dCuts[10])
102 // AliPicoV0RD::IsKshort
105 if (!AliPicoV0Base::IsKshort()) return kFALSE;
106 //=============================================================================
109 if (!((TMath::Abs(fPosPionSigmaTPC)<dCuts[9]) &&
110 (TMath::Abs(fNegPionSigmaTPC)<dCuts[9]))) return kFALSE;
113 if (!IsKa(dCuts[0],dCuts[1],dCuts[2],dCuts[3],dCuts[4],dCuts[5],dCuts[6],dCuts[7],dCuts[8])) return kFALSE;
118 //_____________________________________________________________________________
119 Bool_t AliPicoV0RD::IsLambda(Double_t dCuts[10])
122 // AliPicoV0RD::IsLambda
125 if (!AliPicoV0Base::IsLambda()) return kFALSE;
126 //=============================================================================
129 if (!((TMath::Abs(fPosProtonSigmaTPC)<dCuts[9]) &&
130 (TMath::Abs(fNegPionSigmaTPC) <dCuts[9]))) return kFALSE;
133 if (!IsLa(dCuts[0],dCuts[1],dCuts[2],dCuts[3],dCuts[4],dCuts[5],dCuts[6],dCuts[7],dCuts[8])) return kFALSE;
138 //_____________________________________________________________________________
139 Bool_t AliPicoV0RD::IsAntiLa(Double_t dCuts[10])
142 // AliPicoV0RD::IsAntiLa
145 if (!AliPicoV0Base::IsAntiLa()) return kFALSE;
146 //=============================================================================
149 if (!((TMath::Abs(fPosPionSigmaTPC) <dCuts[9]) &&
150 (TMath::Abs(fNegProtonSigmaTPC)<dCuts[9]))) return kFALSE;
153 if (!IsLa(dCuts[0],dCuts[1],dCuts[2],dCuts[3],dCuts[4],dCuts[5],dCuts[6],dCuts[7],dCuts[8])) return kFALSE;
158 //_____________________________________________________________________________
159 void AliPicoV0RD::GetControlVariables(Float_t d[20])
162 // AliPicoV0RD::GetControlVariables
165 d[ 0] = (Float_t)fV0Radius;
166 d[ 1] = (Float_t)fV0CosPA;
167 d[ 2] = (Float_t)fV0DistToPVoverP;
168 d[ 3] = (Float_t)fDausDCA;
169 d[ 4] = (Float_t)fPosDCAtoPV;
170 d[ 5] = (Float_t)fNegDCAtoPV;
171 d[ 6] = (Float_t)fDauXrowsTPC;
172 d[ 7] = (Float_t)fDauXrowsOverFindableClusTPC;
173 d[ 8] = (Float_t)fPosPionSigmaTPC;
174 d[ 9] = (Float_t)fNegPionSigmaTPC;
175 d[10] = (Float_t)fPosProtonSigmaTPC;
176 d[11] = (Float_t)fNegProtonSigmaTPC;
177 d[12] = (Float_t)KineRD().Pt();
178 d[13] = (Float_t)RapidityKa();
179 d[14] = (Float_t)RapidityLa();
180 d[15] = (Float_t)KineKshort().M();
181 d[16] = (Float_t)KineLambda().M();
182 d[17] = (Float_t)KineAntiLa().M();
183 d[18] = (Float_t)fP3Pos.Eta();
184 d[19] = (Float_t)fP3Neg.Eta();