]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODv0.h
- Three classes by MinJung Kweon AliHFEpriVtx, AliHFEsecVtx and AliHFEmcQA for primar...
[u/mrichter/AliRoot.git] / STEER / AliAODv0.h
index 76b013d9b082d28171447828c3cbf907bff7d0fc..ce508ab3c3743c423854298eda92a826d2cca110 100644 (file)
@@ -1,5 +1,5 @@
-#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;
@@ -53,9 +51,6 @@ public:
   Double_t MomNegY() const;
   Double_t MomNegZ() const;
 
-  //  Int_t    KeyPos()  const;
-  //  Int_t    KeyNeg()  const;
-
   Double_t Chi2V0()  const;
 
   Double_t MomV0X()  const;
@@ -84,18 +79,23 @@ public:
   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));
@@ -111,9 +111,9 @@ inline Double_t AliAODv0::RadiusV0() const {
 }
 
 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];}
@@ -123,10 +123,7 @@ inline Double_t AliAODv0::MomNegX() const {return fPx[1];}
 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 fSecondaryVtx->GetChi2perNDF();}
+inline Double_t AliAODv0::Chi2V0() const {return GetSecondaryVtx()->GetChi2perNDF();}
 
 // Compare eventually AliAODv0::MomV0X() and AliAODRecoDecay::Px()
 inline Double_t AliAODv0::MomV0X() const {return MomPosX()+MomNegX();}