-#ifndef AliAODv0_H
-#define AliAODv0_H
+#ifndef ALIAODV0_H
+#define ALIAODV0_H
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
#include "AliAODRecoDecay.h"
-//class AliESDEvent;
-//class AliESDv0;
-
class AliAODv0 : public AliAODRecoDecay {
public:
AliAODv0();
- // AliAODv0(AliESDv0 *rV0Vertex, AliESDEvent *rEvent);
AliAODv0(AliAODVertex *rAODVertex, Double_t rDcaV0Daughters, Double_t rDcaV0ToPrimVertex,
- Double_t *rMomPos, Double_t *rMomNeg, Double_t *rDcaDaughterToPrimVertex);
+ const Double_t *rMomPos, const Double_t *rMomNeg, Double_t *rDcaDaughterToPrimVertex);
virtual ~AliAODv0();
AliAODv0(const AliAODv0& rAliAODv0);
AliAODv0& operator=(const AliAODv0& rAliAODv0);
- // void Fill(AliESDv0 *rV0Vertex, AliESDEvent *rEvent);
void Fill(AliAODVertex *rAODVertex, Double_t rDcaV0Daughters, Double_t rDcaV0ToPrimVertex,
- Double_t *rMomPos, Double_t *rMomNeg, Double_t *rDcaDaughterToPrimVertex);
+ const Double_t *rMomPos, const Double_t *rMomNeg, const Double_t *rDcaDaughterToPrimVertex);
void ResetV0();
void Print(Option_t* option = "") const;
+ void SetOnFlyStatus(Bool_t status){fOnFlyStatus=status;}
+ Bool_t GetOnFlyStatus() const {return fOnFlyStatus;}
+
Double_t DecayVertexV0X() const;
Double_t DecayVertexV0Y() const;
Double_t DecayVertexV0Z() const;
- Double_t DecayLengthV0(double*) const;
+ Double_t DecayLengthV0(const Double_t *) const;
- Double_t DcaV0Daughters() const;
- Double_t DcaV0ToPrimVertex() const;
+ Double_t DcaV0Daughters() const;
+ Double_t DcaV0ToPrimVertex() const;
Double_t DcaPosToPrimVertex() const;
Double_t DcaNegToPrimVertex() const;
Double_t RadiusV0() const;
Double_t MomNegY() const;
Double_t MomNegZ() const;
- // Int_t KeyPos() const;
- // Int_t KeyNeg() const;
-
Double_t Chi2V0() const;
Double_t MomV0X() const;
Double_t PseudoRapV0() const;
Double_t PseudoRapPos() const;
Double_t PseudoRapNeg() const;
-
+
+ Short_t GetPosID() const;
+ Short_t GetNegID() const;
+ Int_t GetLabel() const {return -1;} // Dummy
protected:
Double32_t fDcaV0ToPrimVertex; // dca of V0 to primary vertex
- ClassDef(AliAODv0,1)
+ Bool_t fOnFlyStatus; // if kTRUE, then this V0 is recontructed
+ // "on fly" during the tracking
+ ClassDef(AliAODv0,2)
};
inline Double_t AliAODv0::DecayVertexV0X() const {return this->GetSecVtxX();}
inline Double_t AliAODv0::DecayVertexV0Y() const {return this->GetSecVtxY();}
inline Double_t AliAODv0::DecayVertexV0Z() const {return this->GetSecVtxZ();}
-inline Double_t AliAODv0::DecayLengthV0(double *tParentVertexPosition) const {
+inline Double_t AliAODv0::DecayLengthV0(const Double_t *tParentVertexPosition) const {
return ::sqrt(::pow(DecayVertexV0X() - tParentVertexPosition[0],2) +
::pow(DecayVertexV0Y() - tParentVertexPosition[1],2) +
::pow(DecayVertexV0Z() - tParentVertexPosition[2],2));
}
inline Double_t AliAODv0::OpenAngleV0() const {
- Double_t lPtot1xPtot2 = PxProng(0)*PxProng(1)+PyProng(0)*PyProng(1)+PzProng(0)*PzProng(1);
- Double_t lPtot1Ptot2_2 = Ptot2Pos()*Ptot2Neg();
- return ::acos(lPtot1xPtot2/::sqrt(lPtot1Ptot2_2) );
+ Double_t lScalPtot1Ptot2 = PxProng(0)*PxProng(1)+PyProng(0)*PyProng(1)+PzProng(0)*PzProng(1);
+ Double_t lPtot1xPtot2 = Ptot2Pos()*Ptot2Neg();
+ return ::acos(lScalPtot1Ptot2/::sqrt(lPtot1xPtot2) );
}
inline Double_t AliAODv0::MomPosX() const {return fPx[0];}
inline Double_t AliAODv0::MomNegY() const {return fPy[1];}
inline Double_t AliAODv0::MomNegZ() const {return fPz[1];}
-// inline Int_t AliAODv0::KeyPos() const {return fKeyPos;}
-// inline Int_t AliAODv0::KeyNeg() const {return fKeyNeg;}
-
inline Double_t AliAODv0::Chi2V0() const {return GetSecondaryVtx()->GetChi2perNDF();}
// Compare eventually AliAODv0::MomV0X() and AliAODRecoDecay::Px()