]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDcascade.h
Moved from Reve to Alieve.
[u/mrichter/AliRoot.git] / STEER / AliESDcascade.h
index 6b2676b981692b83010c846e11e0b4804b121b6f..b16b83f58ec9a4e14a1a795f8b62ad14a6b4ff74 100644 (file)
 
 #include <TObject.h>
 #include <TPDGCode.h>
+#include "AliESDv0.h"
 
-class AliESDtrack;
-class AliESDv0;
+class AliExternalTrackParam;
 
-#define kXiMinus       3312
-#define kXiPlusBar    -3312
-#define kOmegaMinus    3334
-#define kOmegaPlusBar -3334
 
-class AliESDcascade : public TObject {
+class AliESDcascade : public AliESDv0 {
+
+  enum  { kOmegaPlusBar =  -3334,
+         kXiPlusBar    =  -3312,
+         kXiMinus      =   3312,
+         kOmegaMinus   =   3334};
+
 public:
   AliESDcascade();
+  AliESDcascade(const AliESDcascade&);
+  AliESDcascade(const AliESDv0 &v0,
+                const AliExternalTrackParam &t, Int_t i);
+  ~AliESDcascade();
 
   Double_t ChangeMassHypothesis(Double_t &v0q, Int_t code=kXiMinus); 
 
-  Int_t GetPdgCode() const {return fPdgCode;}
-  Double_t GetEffMass() const {return fEffMass;}
-  Double_t GetChi2() const {return fChi2;}
-  void GetPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const;
-  void GetXYZ(Double_t &x, Double_t &y, Double_t &z) const;
-  Double_t GetD(Double_t x0=0.,Double_t y0=0.,Double_t z0=0.) const;
+  Int_t    GetPdgCodeXi() const {return fPdgCodeXi;}
+  Double_t GetEffMassXi() const {return fEffMassXi;}
+  Double_t GetChi2Xi()  const {return fChi2Xi;}
+  void     GetPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const;
+  void     GetXYZcascade(Double_t &x, Double_t &y, Double_t &z) const;
+  Double_t GetDcascade(Double_t x0=0.,Double_t y0=0.,Double_t z0=0.) const;
 
-  void GetNPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const {
-     px=fV0mom[0][0]; py=fV0mom[0][1]; pz=fV0mom[0][2];
-  }
-  Int_t GetNindex() const {return fV0idx[0];}
-  void GetPPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const {
-     px=fV0mom[1][0]; py=fV0mom[1][1]; pz=fV0mom[1][2];
-  }
-  Int_t GetPindex() const {return fV0idx[1];}
-  void GetBPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const {
+  void     GetBPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const {
      px=fBachMom[0]; py=fBachMom[1]; pz=fBachMom[2];
   }
-  Int_t GetBindex() const {return fBachIdx;}
+
+  Int_t    GetBindex() const {return fBachIdx;}
+  void     SetIndex(Int_t i) {fBachIdx=i;}        //for the consistensy with V0
+  Int_t    GetIndex() const {return GetBindex();} //for the consistensy with V0
+  void     SetDcaXiDaughters(Double_t rDcaXiDaughters=0.);
+  Double_t GetDcaXiDaughters() const {return fDcaXiDaughters;}
+  Double_t GetCascadeCosineOfPointingAngle(Double_t&, Double_t&, Double_t&) const;
+
+  void GetPosCovXi(Double_t cov[6]) const;
 
 protected: 
-  Int_t fPdgCode;           // reconstructed cascade type (PDG code)
-  Double_t fEffMass;        // reconstructed cascade effective mass
-  Double_t fChi2;           // chi2 value
-  Double_t fPos[3];         // cascade vertex position (global)
-  Double_t fPosCov[6];      // covariance matrix of the vertex position
 
-  Int_t fV0idx[2];          // indeices of the V0 daughter tracks
-  Double_t fV0mom[2][3];    // V0 daughters' momenta (global)
-  Double_t fV0momCov[6];    // covariance matrix of the V0 momentum.
+  Double32_t fEffMassXi;      // reconstructed cascade effective mass
+  Double32_t fChi2Xi;         // chi2 value
+  Double32_t fDcaXiDaughters; // dca between Xi's daughters
+  Double32_t fPosXi[3];       // cascade vertex position (global)
+  Double32_t fPosCovXi[6];    // covariance matrix of the vertex position
+  Double32_t fBachMom[3];     // bachelor momentum (global)
+  Double32_t fBachMomCov[6];  // covariance matrix of the bachelor momentum.
+  Int_t      fPdgCodeXi;      // reconstructed cascade type (PDG code)
+  Int_t      fBachIdx;        // label of the bachelor track
 
-  Int_t fBachIdx;           // label of the bachelor track
-  Double_t fBachMom[3];     // bachelor momentum (global)
-  Double_t fBachMomCov[6];  // covariance matrix of the bachelor momentum.
 
-  ClassDef(AliESDcascade,1) // reconstructed cascade vertex
-};
+private:
+  AliESDcascade& operator=(const AliESDcascade&);
 
-#endif
+  ClassDef(AliESDcascade,5) // reconstructed cascade vertex
+};
 
+inline
+void AliESDcascade::SetDcaXiDaughters(Double_t rDcaXiDaughters){
+  fDcaXiDaughters=rDcaXiDaughters;
+}
 
+#endif