#ifndef ALIHBTPARTICLE
#define ALIHBTPARTICLE
-
-//Ali HBT Particle: simplified class TParticle
-//Simplified in order to minimize the size of object
+//___________________________________________________________
+/////////////////////////////////////////////////////////////
+//
+// class AliHBTParticle
+//
+// Ali HBT Particle: simplified class TParticle
+// Simplified in order to minimize the size of object
// - we want to keep a lot of such a objects in memory
+// Additionaly adjusted for HBT Analysies purposes
+//
+/////////////////////////////////////////////////////////////
#include <TObject.h>
#include <TLorentzVector.h>
#include <TMath.h>
#include <TDatabasePDG.h>
+#include "AliConst.h"
+
class TParticle;
+//class AliHBTTrackPoints;
class AliHBTParticle : public TObject
{
AliHBTParticle(const TParticle& p,Int_t idx);
- virtual ~AliHBTParticle(){};
-
+ virtual ~AliHBTParticle();
+
+ AliHBTParticle& operator=(const AliHBTParticle& in);
+
void SetPIDprobability(Int_t pdg, Float_t prob = 1.0);
Float_t GetPIDprobability(Int_t pdg);
Double_t Y () const { if (fE != fPz) return 0.5*TMath::Log((fE+fPz)/(fE-fPz));
else return 1.e30;}
- Double_t Phi () const { return kPI+TMath::ATan2(-fPy,-fPx); }
-
- Double_t Theta () const { return (fPz==0)?kPI/2:TMath::ACos(fPz/P()); }
+ Double_t Phi () const { return TMath::Pi()+TMath::ATan2(-fPy,-fPx); }
- // setters
+ Double_t Theta () const { return (fPz==0)?TMath::PiOver2():TMath::ACos(fPz/P()); }
+ // setters
void SetMomentum(Double_t px, Double_t py, Double_t pz, Double_t e)
{fPx=px; fPy=py; fPz=pz; fE=e;}
{fVx=vx; fVy=vy; fVz=vz; fVt=t;}
void SetProductionVertex(const TLorentzVector& v)
{SetProductionVertex(v.X(),v.Y(),v.Z(),v.T());}
+ void SetCalcMass(Double_t mass) {fCalcMass = mass;}
+
+ void SetUID(Int_t id){fIdxInEvent = id;}
+
const Char_t* GetName() const;
void Print() const;