]>
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 | { |
61690c9e | 32 | } |
33 | ||
61690c9e | 34 | AliAODv0::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 | ||
66 | AliAODv0::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 | ||
76 | AliAODv0& 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 | ||
88 | AliAODv0::~AliAODv0(){ | |
89 | //-------------------------------------------------------------------- | |
90 | // Empty destructor | |
91 | //-------------------------------------------------------------------- | |
92 | } | |
93 | ||
61690c9e | 94 | void 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 | ||
116 | void 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 | 143 | Short_t AliAODv0::GetPosID() const { |
144 | AliAODTrack *posTrack = (AliAODTrack *) (this->GetSecondaryVtx()->GetDaughter(0)); | |
145 | Short_t posID = posTrack->GetID(); | |
146 | return posID; | |
147 | } | |
148 | ||
149 | Short_t AliAODv0::GetNegID() const { | |
150 | AliAODTrack *negTrack = (AliAODTrack *) (this->GetSecondaryVtx()->GetDaughter(1)); | |
151 | Short_t negID = negTrack->GetID(); | |
152 | return negID; | |
153 | } | |
154 | ||
61690c9e | 155 | void 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 | } |