]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliAODv0.cxx
Dummy kCTEQ6ll added.
[u/mrichter/AliRoot.git] / ANALYSIS / AliAODv0.cxx
CommitLineData
d77fd7b3 1/**************************************************************************
2 * Copyright(c) 1998-1999, 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// Implementation of the Analysis Oriented Data (AOD) V0 vertex class
d77fd7b3 18// Origin: B.Hippolyte, IReS, hippolyt@in2p3.fr
19// G.Van Buren, BNL, gene@bnl.gov (original STAR MuDsts)
2d8e3807 20// Purpose: Having observables for physics available for V0s
d77fd7b3 21//-------------------------------------------------------------------------
0206ddfb 22
d77fd7b3 23#include <TMath.h>
d77fd7b3 24
25#include "AliESD.h"
d77fd7b3 26#include "AliAODv0.h"
27
28ClassImp(AliAODv0)
29
30AliAODv0::AliAODv0() : TObject() {
31 //--------------------------------------------------------------------
32 // Default constructor
33 //--------------------------------------------------------------------
34 fDecayVertexV0X = 999;
35 fDecayVertexV0Y = 999;
36 fDecayVertexV0Z = 999;
37 fDcaV0Daughters = 999;
38 fDcaV0ToPrimVertex = 999;
39 fDcaPosToPrimVertex = 999;
40 fDcaNegToPrimVertex = 999;
41 fMomPosX = 999;
42 fMomPosY = 999;
43 fMomPosZ = 999;
44 fMomNegX = 999;
45 fMomNegY = 999;
46 fMomNegZ = 999;
47
48 fKeyPos = 999;
49 fKeyNeg = 999;
50
51 fChi2 = 999;
d77fd7b3 52}
53
54AliAODv0::AliAODv0(AliESDv0* rV0Vertex ,AliESD* rEvent){
55 this->Fill(rV0Vertex,rEvent);
56}
57
c028b974 58AliAODv0::AliAODv0(AliESDV0MI* rV0Vertex ,AliESD* rEvent){
59 this->Fill(rV0Vertex,rEvent);
60}
61
62AliAODv0::AliAODv0(const AliAODv0& rAliAODv0) : TObject(rAliAODv0) {
63 //--------------------------------------------------------------------
64 // Copy constructor
65 //--------------------------------------------------------------------
66 fDecayVertexV0X = rAliAODv0.fDecayVertexV0X;
67 fDecayVertexV0Y = rAliAODv0.fDecayVertexV0Y;
68 fDecayVertexV0Z = rAliAODv0.fDecayVertexV0Z;
69 fDcaV0Daughters = rAliAODv0.fDcaV0Daughters;
70 fDcaV0ToPrimVertex = rAliAODv0.fDcaV0ToPrimVertex ;
71 fDcaPosToPrimVertex = rAliAODv0.fDcaPosToPrimVertex;
72 fDcaNegToPrimVertex = rAliAODv0.fDcaNegToPrimVertex;
73 fMomPosX = rAliAODv0.fMomPosX;
74 fMomPosY = rAliAODv0.fMomPosY;
75 fMomPosZ = rAliAODv0.fMomPosZ;
76 fMomNegX = rAliAODv0.fMomNegX;
77 fMomNegY = rAliAODv0.fMomNegY;
78 fMomNegZ = rAliAODv0.fMomNegZ;
79
80 fKeyNeg = rAliAODv0.fKeyNeg;
81 fKeyPos = rAliAODv0.fKeyPos;
82
83 fChi2 = rAliAODv0.fChi2;
84}
85
86AliAODv0& AliAODv0::operator=(const AliAODv0& rAliAODv0){
87 //--------------------------------------------------------------------
88 // Assignment overload
89 //--------------------------------------------------------------------
90 this->fDecayVertexV0X = rAliAODv0.fDecayVertexV0X;
91 this->fDecayVertexV0Y = rAliAODv0.fDecayVertexV0Y;
92 this->fDecayVertexV0Z = rAliAODv0.fDecayVertexV0Z;
93 this->fDcaV0Daughters = rAliAODv0.fDcaV0Daughters;
94 this->fDcaV0ToPrimVertex = rAliAODv0.fDcaV0ToPrimVertex ;
95 this->fDcaPosToPrimVertex = rAliAODv0.fDcaPosToPrimVertex;
96 this->fDcaNegToPrimVertex = rAliAODv0.fDcaNegToPrimVertex;
97 this->fMomPosX = rAliAODv0.fMomPosX;
98 this->fMomPosY = rAliAODv0.fMomPosY;
99 this->fMomPosZ = rAliAODv0.fMomPosZ;
100 this->fMomNegX = rAliAODv0.fMomNegX;
101 this->fMomNegY = rAliAODv0.fMomNegY;
102 this->fMomNegZ = rAliAODv0.fMomNegZ;
103
104 this->fKeyPos = rAliAODv0.fKeyPos;
105 this->fKeyNeg = rAliAODv0.fKeyNeg;
106
107 this->fChi2 = rAliAODv0.fChi2;
108 return *this;
109}
110
111AliAODv0::~AliAODv0(){
112 //--------------------------------------------------------------------
113 // Empty destructor
114 //--------------------------------------------------------------------
115}
116
117
0206ddfb 118void AliAODv0::Fill(AliESDv0* rV0Vertex ,AliESD* rEvent){
119 // Fills the data memebers of the AOD
d77fd7b3 120 Double_t tDecayVertexV0[3]; rV0Vertex->GetXYZ(tDecayVertexV0[0],tDecayVertexV0[1],tDecayVertexV0[2]);
121 fDecayVertexV0X = tDecayVertexV0[0];
122 fDecayVertexV0Y = tDecayVertexV0[1];
123 fDecayVertexV0Z = tDecayVertexV0[2];
124
c028b974 125 fDcaV0Daughters = rV0Vertex->GetDcaV0Daughters();
126 fDcaV0ToPrimVertex = rV0Vertex->GetD();
127
128 Double_t tMomPos[3]; rV0Vertex->GetPPxPyPz(tMomPos[0],tMomPos[1],tMomPos[2]);
129 fMomPosX = tMomPos[0];
130 fMomPosY = tMomPos[1];
131 fMomPosZ = tMomPos[2];
132
133 Double_t tMomNeg[3]; rV0Vertex->GetNPxPyPz(tMomNeg[0],tMomNeg[1],tMomNeg[2]);
134 fMomNegX = tMomNeg[0];
135 fMomNegY = tMomNeg[1];
136 fMomNegZ = tMomNeg[2];
137
138 fKeyPos = (UInt_t)TMath::Abs(rV0Vertex->GetPindex());// need to ask why Abs
139 fKeyNeg = (UInt_t)TMath::Abs(rV0Vertex->GetNindex());
140
141 AliESDtrack *pTrack=rEvent->GetTrack(fKeyPos);
142 AliESDtrack *nTrack=rEvent->GetTrack(fKeyNeg);
143
144 Float_t tDcaPosToPrimVertex[2];
145 if(pTrack) pTrack->GetImpactParameters(tDcaPosToPrimVertex[0],tDcaPosToPrimVertex[1]);
146 else { tDcaPosToPrimVertex[0]=999.; tDcaPosToPrimVertex[1]=999.;}
147
148 fDcaPosToPrimVertex = TMath::Sqrt(tDcaPosToPrimVertex[0]*tDcaPosToPrimVertex[0]+tDcaPosToPrimVertex[1]*tDcaPosToPrimVertex[1]);
149
150 Float_t tDcaNegToPrimVertex[2];
151 if(nTrack) nTrack->GetImpactParameters(tDcaNegToPrimVertex[0],tDcaNegToPrimVertex[1]);
152 else { tDcaNegToPrimVertex[0]=999.; tDcaNegToPrimVertex[1]=999.;}
153
154 fDcaNegToPrimVertex = TMath::Sqrt(tDcaNegToPrimVertex[0]*tDcaNegToPrimVertex[0]+tDcaNegToPrimVertex[1]*tDcaNegToPrimVertex[1]);
155}
156
157void AliAODv0::Fill(AliESDV0MI* rV0Vertex ,AliESD* rEvent){
158 // Fills the data members of the AOD
159 Double_t tDecayVertexV0[3]; rV0Vertex->GetXYZ(tDecayVertexV0[0],tDecayVertexV0[1],tDecayVertexV0[2]);
160 fDecayVertexV0X = tDecayVertexV0[0];
161 fDecayVertexV0Y = tDecayVertexV0[1];
162 fDecayVertexV0Z = tDecayVertexV0[2];
163
164 fDcaV0Daughters = rV0Vertex->GetDcaV0Daughters();
d77fd7b3 165
166 fDcaV0ToPrimVertex = rV0Vertex->GetD();
167
168
169 Double_t tMomPos[3]; rV0Vertex->GetPPxPyPz(tMomPos[0],tMomPos[1],tMomPos[2]);
170 fMomPosX = tMomPos[0];
171 fMomPosY = tMomPos[1];
172 fMomPosZ = tMomPos[2];
173
174 Double_t tMomNeg[3]; rV0Vertex->GetNPxPyPz(tMomNeg[0],tMomNeg[1],tMomNeg[2]);
175 fMomNegX = tMomNeg[0];
176 fMomNegY = tMomNeg[1];
177 fMomNegZ = tMomNeg[2];
178
c028b974 179 fKeyPos = (UInt_t)TMath::Abs(rV0Vertex->GetPindex());// need to check why Abs
180 fKeyNeg = (UInt_t)TMath::Abs(rV0Vertex->GetNindex());
d77fd7b3 181
c028b974 182 AliESDtrack *pTrack=rEvent->GetTrack(fKeyPos);
183 AliESDtrack *nTrack=rEvent->GetTrack(fKeyNeg);
d77fd7b3 184
185 Float_t tDcaPosToPrimVertex[2];
186 if(pTrack) pTrack->GetImpactParameters(tDcaPosToPrimVertex[0],tDcaPosToPrimVertex[1]);
187 else { tDcaPosToPrimVertex[0]=999.; tDcaPosToPrimVertex[1]=999.;}
188
189 fDcaPosToPrimVertex = TMath::Sqrt(tDcaPosToPrimVertex[0]*tDcaPosToPrimVertex[0]+tDcaPosToPrimVertex[1]*tDcaPosToPrimVertex[1]);
190
191 Float_t tDcaNegToPrimVertex[2];
192 if(nTrack) nTrack->GetImpactParameters(tDcaNegToPrimVertex[0],tDcaNegToPrimVertex[1]);
193 else { tDcaNegToPrimVertex[0]=999.; tDcaNegToPrimVertex[1]=999.;}
194
8787c0c3 195 fDcaNegToPrimVertex = TMath::Sqrt(tDcaNegToPrimVertex[0]*tDcaNegToPrimVertex[0]+tDcaNegToPrimVertex[1]*tDcaNegToPrimVertex[1]);
c028b974 196
197 fChi2 = rV0Vertex->GetChi2V0();
d77fd7b3 198}
199
0206ddfb 200void AliAODv0::ResetV0(){
201 // Sets the default values of the AOD data members
d77fd7b3 202 fDecayVertexV0X = 999;
203 fDecayVertexV0Y = 999;
204 fDecayVertexV0Z = 999;
205 fDcaV0Daughters = 999;
206 fDcaV0ToPrimVertex = 999;
207 fDcaPosToPrimVertex = 999;
208 fDcaNegToPrimVertex = 999;
209 fMomPosX = 999;
210 fMomPosY = 999;
211 fMomPosZ = 999;
212 fMomNegX = 999;
213 fMomNegY = 999;
214 fMomNegZ = 999;
215
216 fKeyPos = 999;
217 fKeyNeg = 999;
218
219 fChi2 = 999;
220}