]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliAODv0.cxx
AOD data classes moved from PWG4 to STEER (Gustavo Conesa)
[u/mrichter/AliRoot.git] / STEER / AliAODv0.cxx
CommitLineData
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
25ClassImp(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 59AliAODv0::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
91AliAODv0::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
101AliAODv0& 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
113AliAODv0::~AliAODv0(){
114 //--------------------------------------------------------------------
115 // Empty destructor
116 //--------------------------------------------------------------------
117}
118
61690c9e 119void 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
141void 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 168Short_t AliAODv0::GetPosID() const {
169 AliAODTrack *posTrack = (AliAODTrack *) (this->GetSecondaryVtx()->GetDaughter(0));
170 Short_t posID = posTrack->GetID();
171 return posID;
172}
173
174Short_t AliAODv0::GetNegID() const {
175 AliAODTrack *negTrack = (AliAODTrack *) (this->GetSecondaryVtx()->GetDaughter(1));
176 Short_t negID = negTrack->GetID();
177 return negID;
178}
179
61690c9e 180void 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}