]>
Commit | Line | Data |
---|---|---|
61690c9e | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | //------------------------------------------------------------------------- | |
17 | // Analysis Oriented Data (AOD) V0 vertex class | |
18 | // Authors: B.Hippolyte, IReS, hippolyt@in2p3.fr | |
19 | // G.Van Buren, BNL, gene@bnl.gov (original STAR MuDsts) | |
20 | //------------------------------------------------------------------------- | |
21 | ||
61690c9e | 22 | #include "AliAODv0.h" |
96d949da | 23 | #include "AliAODTrack.h" |
61690c9e | 24 | |
25 | ClassImp(AliAODv0) | |
26 | ||
27 | AliAODv0::AliAODv0() : | |
28 | AliAODRecoDecay(), | |
105ab4d7 | 29 | fDcaV0ToPrimVertex(999), |
30 | fOnFlyStatus(kFALSE) | |
61690c9e | 31 | { |
32 | //-------------------------------------------------------------------- | |
33 | // Default constructor | |
34 | //-------------------------------------------------------------------- | |
35 | fCharge = 0; | |
36 | fNProngs = 2; | |
37 | fNDCA = 1; | |
a7d6278c | 38 | fNPID = 0; // used to be 2! |
61690c9e | 39 | |
5cc73331 | 40 | fDCA = new Double_t[fNDCA]; |
61690c9e | 41 | fDCA[0] = 999; |
42 | ||
43 | fPx = new Double_t[GetNProngs()]; | |
44 | fPy = new Double_t[GetNProngs()]; | |
45 | fPz = new Double_t[GetNProngs()]; | |
46 | fPx[0] = 999; | |
47 | fPy[0] = 999; | |
48 | fPz[0] = 999; | |
49 | ||
50 | fPx[1] = 999; | |
51 | fPy[1] = 999; | |
52 | fPz[1] = 999; | |
53 | ||
54 | fd0 = new Double_t[GetNProngs()]; | |
55 | fd0[0] = 999; | |
56 | fd0[1] = 999; | |
57 | } | |
58 | ||
61690c9e | 59 | AliAODv0::AliAODv0(AliAODVertex* rAODVertex, Double_t rDcaV0Daughters, Double_t rDcaV0ToPrimVertex, |
96d949da | 60 | const Double_t *rMomPos, const Double_t *rMomNeg, Double_t *rDcaDaughterToPrimVertex) : |
61690c9e | 61 | AliAODRecoDecay(rAODVertex,2,0,rDcaDaughterToPrimVertex), |
105ab4d7 | 62 | fDcaV0ToPrimVertex(rDcaV0ToPrimVertex), |
63 | fOnFlyStatus(kFALSE) | |
61690c9e | 64 | { |
65 | //-------------------------------------------------------------------- | |
66 | // Constructor via setting each data member | |
67 | //-------------------------------------------------------------------- | |
68 | fCharge = 0; | |
69 | fNProngs = 2; | |
70 | fNDCA = 1; | |
a7d6278c | 71 | fNPID = 0; // used to be 2! |
61690c9e | 72 | |
5cc73331 | 73 | fDCA = new Double_t[fNDCA]; |
61690c9e | 74 | |
75 | fDCA[0] = rDcaV0Daughters; | |
76 | fDcaV0ToPrimVertex = rDcaV0ToPrimVertex; | |
77 | ||
78 | fPx = new Double_t[GetNProngs()]; | |
79 | fPy = new Double_t[GetNProngs()]; | |
80 | fPz = new Double_t[GetNProngs()]; | |
81 | ||
82 | fPx[0] = rMomPos[0] ; | |
83 | fPy[0] = rMomPos[1]; | |
84 | fPz[0] = rMomPos[2]; | |
85 | ||
86 | fPx[1] = rMomNeg[0]; | |
87 | fPy[1] = rMomNeg[1]; | |
88 | fPz[1] = rMomNeg[2]; | |
89 | } | |
90 | ||
91 | AliAODv0::AliAODv0(const AliAODv0& rAliAODv0) : | |
92 | AliAODRecoDecay(rAliAODv0), | |
105ab4d7 | 93 | fDcaV0ToPrimVertex(rAliAODv0.fDcaV0ToPrimVertex), |
94 | fOnFlyStatus(rAliAODv0.fOnFlyStatus) | |
61690c9e | 95 | { |
96 | //-------------------------------------------------------------------- | |
97 | // Copy constructor | |
98 | //-------------------------------------------------------------------- | |
99 | } | |
100 | ||
101 | AliAODv0& AliAODv0::operator=(const AliAODv0& rAliAODv0){ | |
102 | //-------------------------------------------------------------------- | |
103 | // Assignment overload | |
104 | //-------------------------------------------------------------------- | |
96d949da | 105 | if(this!=&rAliAODv0) { |
106 | AliAODRecoDecay::operator=(rAliAODv0); | |
107 | this->fDcaV0ToPrimVertex = rAliAODv0.fDcaV0ToPrimVertex ; | |
108 | this->fOnFlyStatus = rAliAODv0.fOnFlyStatus; | |
109 | } | |
61690c9e | 110 | return *this; |
111 | } | |
112 | ||
113 | AliAODv0::~AliAODv0(){ | |
114 | //-------------------------------------------------------------------- | |
115 | // Empty destructor | |
116 | //-------------------------------------------------------------------- | |
117 | } | |
118 | ||
61690c9e | 119 | void AliAODv0::Fill(AliAODVertex *rAODVertex, Double_t rDcaV0Daughters, Double_t rDcaV0ToPrimVertex, |
97135b34 | 120 | const Double_t *rMomPos, const Double_t *rMomNeg, const Double_t *rDcaDaughterToPrimVertex){ |
121 | //-------------------------------------------------------------------- | |
122 | // Filling with all needed info | |
123 | //-------------------------------------------------------------------- | |
61690c9e | 124 | this->SetSecondaryVtx(rAODVertex); |
125 | ||
126 | fDCA[0] = rDcaV0Daughters; | |
127 | fDcaV0ToPrimVertex = rDcaV0ToPrimVertex; | |
128 | ||
129 | fPx[0] = rMomPos[0] ; | |
130 | fPy[0] = rMomPos[1]; | |
131 | fPz[0] = rMomPos[2]; | |
132 | ||
133 | fPx[1] = rMomNeg[0]; | |
134 | fPy[1] = rMomNeg[1]; | |
135 | fPz[1] = rMomNeg[2]; | |
136 | ||
137 | fd0[0] = rDcaDaughterToPrimVertex[0]; | |
138 | fd0[1] = rDcaDaughterToPrimVertex[1]; | |
139 | } | |
140 | ||
141 | void AliAODv0::ResetV0(){ | |
97135b34 | 142 | //-------------------------------------------------------------------- |
143 | // Resetting all the info | |
144 | //-------------------------------------------------------------------- | |
5cc73331 | 145 | GetSecondaryVtx()->SetChi2perNDF(999); |
96d949da | 146 | GetSecondaryVtx()->RemoveCovMatrix(); |
147 | GetSecondaryVtx()->RemoveDaughters(); | |
148 | GetSecondaryVtx()->SetParent((TObject*) 0x0); | |
149 | GetSecondaryVtx()->SetID(-1); | |
150 | GetSecondaryVtx()->SetPosition(999,999,999); | |
5cc73331 | 151 | GetSecondaryVtx()->SetType(AliAODVertex::kUndef); |
61690c9e | 152 | |
61690c9e | 153 | fDCA[0] = 999; |
154 | fDcaV0ToPrimVertex = 999; | |
155 | ||
156 | fPx[0] = 999; | |
157 | fPy[0] = 999; | |
158 | fPz[0] = 999; | |
159 | ||
160 | fPx[1] = 999; | |
161 | fPy[1] = 999; | |
162 | fPz[1] = 999; | |
163 | ||
164 | fd0[0] = 999; | |
165 | fd0[1] = 999; | |
166 | } | |
167 | ||
96d949da | 168 | Short_t AliAODv0::GetPosID() const { |
169 | AliAODTrack *posTrack = (AliAODTrack *) (this->GetSecondaryVtx()->GetDaughter(0)); | |
170 | Short_t posID = posTrack->GetID(); | |
171 | return posID; | |
172 | } | |
173 | ||
174 | Short_t AliAODv0::GetNegID() const { | |
175 | AliAODTrack *negTrack = (AliAODTrack *) (this->GetSecondaryVtx()->GetDaughter(1)); | |
176 | Short_t negID = negTrack->GetID(); | |
177 | return negID; | |
178 | } | |
179 | ||
61690c9e | 180 | void AliAODv0::Print(Option_t* /*option*/) const { |
181 | // | |
182 | // Print some information | |
183 | // | |
184 | AliAODRecoDecay::Print(); | |
185 | printf("AliAODv0: invariant mass (k0s %.6f, lambda %.6f, anti-lambda %.6f) \n",MassK0Short(),MassLambda(),MassAntiLambda()); | |
186 | printf("AliAODv0: dca (v0d %.6f, v0tpv %.6f, postpv %.6f, negtpv %.6f ) \n",DcaV0Daughters(),DcaV0ToPrimVertex(),DcaPosToPrimVertex(),DcaNegToPrimVertex()); | |
187 | printf("AliAODv0: mom (ptot2 %.6f, pt2 %.6f, rapk0 %.6f, rapla %.6f ) \n",Ptot2V0(),Pt2V0(),RapK0Short(),RapLambda()); | |
188 | printf("AliAODv0: cin (mpav0 %.6f, mnav0 %.6f, alpha %.6f, ptarm %.6f ) \n",MomPosAlongV0(),MomNegAlongV0(),AlphaV0(),PtArmV0()); | |
189 | printf("AliAODv0: nrg (eppro %.6f, enpro %.6f, eppio %.6f, enpio %.6f ) \n",EPosProton(),ENegProton(),EPosPion(),ENegPion()); | |
190 | ||
191 | return; | |
192 | } |