]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AOD/AliAODv0.cxx
Merge branch 'TPCdev' of /hera/alice/akalweit/software/aliroot/AliRoot_TPCDEV2 into...
[u/mrichter/AliRoot.git] / STEER / AOD / 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{
61690c9e 32}
33
61690c9e 34AliAODv0::AliAODv0(AliAODVertex* rAODVertex, Double_t rDcaV0Daughters, Double_t rDcaV0ToPrimVertex,
96d949da 35 const Double_t *rMomPos, const Double_t *rMomNeg, Double_t *rDcaDaughterToPrimVertex) :
61690c9e 36 AliAODRecoDecay(rAODVertex,2,0,rDcaDaughterToPrimVertex),
105ab4d7 37 fDcaV0ToPrimVertex(rDcaV0ToPrimVertex),
38 fOnFlyStatus(kFALSE)
61690c9e 39{
40 //--------------------------------------------------------------------
41 // Constructor via setting each data member
42 //--------------------------------------------------------------------
43 fCharge = 0;
44 fNProngs = 2;
45 fNDCA = 1;
a7d6278c 46 fNPID = 0; // used to be 2!
61690c9e 47
5cc73331 48 fDCA = new Double_t[fNDCA];
61690c9e 49
50 fDCA[0] = rDcaV0Daughters;
51 fDcaV0ToPrimVertex = rDcaV0ToPrimVertex;
52
53 fPx = new Double_t[GetNProngs()];
54 fPy = new Double_t[GetNProngs()];
55 fPz = new Double_t[GetNProngs()];
56
57 fPx[0] = rMomPos[0] ;
58 fPy[0] = rMomPos[1];
59 fPz[0] = rMomPos[2];
60
61 fPx[1] = rMomNeg[0];
62 fPy[1] = rMomNeg[1];
63 fPz[1] = rMomNeg[2];
64}
65
66AliAODv0::AliAODv0(const AliAODv0& rAliAODv0) :
67 AliAODRecoDecay(rAliAODv0),
105ab4d7 68 fDcaV0ToPrimVertex(rAliAODv0.fDcaV0ToPrimVertex),
69 fOnFlyStatus(rAliAODv0.fOnFlyStatus)
61690c9e 70 {
71 //--------------------------------------------------------------------
72 // Copy constructor
73 //--------------------------------------------------------------------
74}
75
76AliAODv0& AliAODv0::operator=(const AliAODv0& rAliAODv0){
77 //--------------------------------------------------------------------
78 // Assignment overload
79 //--------------------------------------------------------------------
96d949da 80 if(this!=&rAliAODv0) {
81 AliAODRecoDecay::operator=(rAliAODv0);
4c234df8 82 fDcaV0ToPrimVertex = rAliAODv0.fDcaV0ToPrimVertex ;
83 fOnFlyStatus = rAliAODv0.fOnFlyStatus;
96d949da 84 }
61690c9e 85 return *this;
86}
87
88AliAODv0::~AliAODv0(){
89 //--------------------------------------------------------------------
90 // Empty destructor
91 //--------------------------------------------------------------------
92}
93
61690c9e 94void AliAODv0::Fill(AliAODVertex *rAODVertex, Double_t rDcaV0Daughters, Double_t rDcaV0ToPrimVertex,
97135b34 95 const Double_t *rMomPos, const Double_t *rMomNeg, const Double_t *rDcaDaughterToPrimVertex){
96 //--------------------------------------------------------------------
97 // Filling with all needed info
98 //--------------------------------------------------------------------
61690c9e 99 this->SetSecondaryVtx(rAODVertex);
100
101 fDCA[0] = rDcaV0Daughters;
102 fDcaV0ToPrimVertex = rDcaV0ToPrimVertex;
103
104 fPx[0] = rMomPos[0] ;
105 fPy[0] = rMomPos[1];
106 fPz[0] = rMomPos[2];
107
108 fPx[1] = rMomNeg[0];
109 fPy[1] = rMomNeg[1];
110 fPz[1] = rMomNeg[2];
111
112 fd0[0] = rDcaDaughterToPrimVertex[0];
113 fd0[1] = rDcaDaughterToPrimVertex[1];
114}
115
116void AliAODv0::ResetV0(){
97135b34 117 //--------------------------------------------------------------------
118 // Resetting all the info
119 //--------------------------------------------------------------------
5cc73331 120 GetSecondaryVtx()->SetChi2perNDF(999);
96d949da 121 GetSecondaryVtx()->RemoveCovMatrix();
122 GetSecondaryVtx()->RemoveDaughters();
123 GetSecondaryVtx()->SetParent((TObject*) 0x0);
124 GetSecondaryVtx()->SetID(-1);
125 GetSecondaryVtx()->SetPosition(999,999,999);
5cc73331 126 GetSecondaryVtx()->SetType(AliAODVertex::kUndef);
61690c9e 127
61690c9e 128 fDCA[0] = 999;
129 fDcaV0ToPrimVertex = 999;
130
131 fPx[0] = 999;
132 fPy[0] = 999;
133 fPz[0] = 999;
134
135 fPx[1] = 999;
136 fPy[1] = 999;
137 fPz[1] = 999;
138
139 fd0[0] = 999;
140 fd0[1] = 999;
141}
142
96d949da 143Short_t AliAODv0::GetPosID() const {
144 AliAODTrack *posTrack = (AliAODTrack *) (this->GetSecondaryVtx()->GetDaughter(0));
145 Short_t posID = posTrack->GetID();
146 return posID;
147}
148
149Short_t AliAODv0::GetNegID() const {
150 AliAODTrack *negTrack = (AliAODTrack *) (this->GetSecondaryVtx()->GetDaughter(1));
151 Short_t negID = negTrack->GetID();
152 return negID;
153}
154
61690c9e 155void AliAODv0::Print(Option_t* /*option*/) const {
156 //
157 // Print some information
158 //
159 AliAODRecoDecay::Print();
160 printf("AliAODv0: invariant mass (k0s %.6f, lambda %.6f, anti-lambda %.6f) \n",MassK0Short(),MassLambda(),MassAntiLambda());
161 printf("AliAODv0: dca (v0d %.6f, v0tpv %.6f, postpv %.6f, negtpv %.6f ) \n",DcaV0Daughters(),DcaV0ToPrimVertex(),DcaPosToPrimVertex(),DcaNegToPrimVertex());
162 printf("AliAODv0: mom (ptot2 %.6f, pt2 %.6f, rapk0 %.6f, rapla %.6f ) \n",Ptot2V0(),Pt2V0(),RapK0Short(),RapLambda());
163 printf("AliAODv0: cin (mpav0 %.6f, mnav0 %.6f, alpha %.6f, ptarm %.6f ) \n",MomPosAlongV0(),MomNegAlongV0(),AlphaV0(),PtArmV0());
164 printf("AliAODv0: nrg (eppro %.6f, enpro %.6f, eppio %.6f, enpio %.6f ) \n",EPosProton(),ENegProton(),EPosPion(),ENegPion());
165
166 return;
167}