ROOT logo
AliRoot » PWGDQ » DIELECTRON » AliDielectronPair

class AliDielectronPair: public AliVParticle


Dielectron Pair class. Internally it makes use of AliKFParticle.


Function Members (Methods)

public:
AliDielectronPair()
AliDielectronPair(const AliDielectronPair&)
AliDielectronPair(AliVTrack *const particle1, Int_t pid1, AliVTrack *const particle2, Int_t pid2, Char_t type)
AliDielectronPair(const AliKFParticle *const particle1, const AliKFParticle *const particle2, AliVTrack *const refParticle1, AliVTrack *const refParticle2, Char_t type)
virtual~AliDielectronPair()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual Short_tCharge() const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tAliVParticle::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
Double_tDeltaEta() const
Double_tDeltaPhi() const
Double_tDeviationDaughters() const
Double_tDeviationDaughtersXY() const
Double_tDistanceDaughters() const
Double_tDistanceDaughtersXY() const
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual Double_tE() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual Double_tEta() const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tGetArmAlpha() const
Double_tGetArmPt() const
Double_tGetCosPointingAngle(const AliVVertex* primVtx) const
voidGetDCA(const AliVVertex* primVtx, Double_t* d0z0) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual Int_tAliVParticle::GetFirstDaughter() const
AliVParticle*GetFirstDaughterP() const
virtual Short_tAliVParticle::GetGeneratorIndex() const
virtual const char*TObject::GetIconName() const
Double_tGetKFChi2() const
const AliKFParticle&GetKFFirstDaughter() const
Int_tGetKFNdf() const
const AliKFParticle&GetKFParticle() const
const AliKFParticle&GetKFSecondDaughter() const
Bool_tGetKFUsage() const
virtual Int_tGetLabel() const
virtual Int_tAliVParticle::GetLastDaughter() const
virtual Int_tAliVParticle::GetMother() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tGetPairPlaneAngle(Double_t kv0CrpH2, Int_t VariNum) const
AliVParticle*GetSecondDaughterP() const
voidGetThetaPhiCM(Double_t& thetaHE, Double_t& phiHE, Double_t& thetaCS, Double_t& phiCS) const
virtual const char*TObject::GetTitle() const
UChar_tGetType() const
virtual UInt_tTObject::GetUniqueID() const
Bool_tAliVParticle::Global2LocalMomentum(Double_t* p, Short_t charge, Double_t& alpha) const
Bool_tAliVParticle::Global2LocalPosition(Double_t* r, Double_t alpha) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tAliVParticle::IsSortable() const
Bool_tTObject::IsZombie() const
Bool_tAliVParticle::Local2GlobalMomentum(Double_t* p, Double_t alpha) const
Bool_tAliVParticle::Local2GlobalPosition(Double_t* r, Double_t alpha) const
virtual voidTObject::ls(Option_t* option = "") const
virtual Double_tM() const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
virtual Double_tOneOverPt() const
Double_tOpeningAngle() const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliDielectronPair&operator=(const AliDielectronPair&)
virtual Double_tP() const
virtual voidTObject::Paint(Option_t* option = "")
Double_tPairPlaneMagInnerProduct(Double_t ZDCrpH1) const
virtual Int_tPdgCode() const
virtual Double_tPhi() const
Double_tPhivPair(Double_t MagField) const
virtual const Double_t*PID() const
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
Double_tPsiPair(Double_t MagField) const
virtual Double_tPt() const
virtual Double_tPx() const
virtual Bool_tPxPyPz(Double_t* p) const
virtual Double_tPy() const
virtual Double_tPz() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
static voidSetBeamEnergy(AliVEvent* ev, Double_t beamEbyHand = -1.)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetGammaTracks(AliVTrack *const particle1, Int_t pid1, AliVTrack *const particle2, Int_t pid2)
virtual voidAliVParticle::SetGeneratorIndex(Short_t)
voidSetKFUsage(Bool_t KFUsage)
voidSetLabel(Int_t label)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPdgCode(Int_t pdgCode)
voidSetProductionVertex(const AliKFParticle& Vtx)
voidSetRefFirstDaughter(AliVParticle *const track)
voidSetRefSecondDaughter(AliVParticle *const track)
voidSetTracks(AliVTrack *const particle1, Int_t pid1, AliVTrack *const particle2, Int_t pid2)
voidSetTracks(const AliKFParticle *const particle1, const AliKFParticle *const particle2, AliVTrack *const refParticle1, AliVTrack *const refParticle2)
voidSetType(Char_t type)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual Double_tTheta() const
Double_tThetaPhiCM(Bool_t isHE, Bool_t isTheta) const
static Double_tThetaPhiCM(const AliVParticle* d1, const AliVParticle* d2, Bool_t isHE, Bool_t isTheta)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual Double_tXv() const
virtual Bool_tXvYvZv(Double_t* x) const
virtual Double_tY() const
virtual Double_tYv() const
virtual Double_tZv() const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

private:
static Double_tfBeamEnergy!beam energy
AliKFParticlefD1KF particle first daughter
AliKFParticlefD2KF particle1 second daughter
Bool_tfKFUsageUse KF for vertexing
Int_tfLabelMC label
AliKFParticlefPairKF particle internally used for pair calculation
Int_tfPdgCodepdg code in case it is a MC particle
TReffRefD1Reference to first daughter
TReffRefD2Reference to second daughter
Char_tfTypetype of the pair e.g. like sign SE, unlike sign SE, ... see AliDielectron

Class Charts

Inheritance Chart:
TObject
AliVParticle
AliDielectronPair

Function documentation

AliDielectronPair()
 Default Constructor

AliDielectronPair(AliVTrack *const particle1, Int_t pid1, AliVTrack *const particle2, Int_t pid2, Char_t type)
 Constructor with tracks

AliDielectronPair(const AliKFParticle *const particle1, const AliKFParticle *const particle2, AliVTrack *const refParticle1, AliVTrack *const refParticle2, Char_t type)
 Constructor with tracks

~AliDielectronPair()
 Default Destructor

void SetTracks(AliVTrack *const particle1, Int_t pid1, AliVTrack *const particle2, Int_t pid2)
 Sort particles by pt, first particle larget Pt
 set AliKF daughters and pair
 refParticle1 and 2 are the original tracks. In the case of track rotation
 they are needed in the framework

void SetGammaTracks(AliVTrack *const particle1, Int_t pid1, AliVTrack *const particle2, Int_t pid2)
 Sort particles by pt, first particle larget Pt
 set AliKF daughters and a GAMMA pair
 refParticle1 and 2 are the original tracks. In the case of track rotation
 they are needed in the framework

void SetTracks(const AliKFParticle *const particle1, const AliKFParticle *const particle2, AliVTrack *const refParticle1, AliVTrack *const refParticle2)
 Sort particles by pt, first particle larget Pt
 set AliKF daughters and pair
 refParticle1 and 2 are the original tracks. In the case of track rotation
 they are needed in the framework

void GetThetaPhiCM(Double_t& thetaHE, Double_t& phiHE, Double_t& thetaCS, Double_t& phiCS) const
 Calculate theta and phi in helicity and Collins-Soper coordinate frame

Double_t PsiPair(Double_t MagField) const
Following idea to use opening of colinear pairs in magnetic field from e.g. PHENIX
to ID conversions. Adapted from AliTRDv0Info class
Double_t ThetaPhiCM(const AliVParticle* d1, const AliVParticle* d2, Bool_t isHE, Bool_t isTheta)
 The function calculates theta and phi in the mother rest frame with
 respect to the helicity coordinate system and Collins-Soper coordinate system
 TO DO: generalize for different decays (only J/Psi->e+e- now)
Double_t ThetaPhiCM(Bool_t isHE, Bool_t isTheta) const
 The function calculates theta and phi in the mother rest frame with
 respect to the helicity coordinate system and Collins-Soper coordinate system
 TO DO: generalize for different decays (only J/Psi->e+e- now)
Double_t GetCosPointingAngle(const AliVVertex* primVtx) const
 Calculate the poiting angle of the pair to the primary vertex and take the cosine

Double_t GetArmAlpha() const
 Calculate the Armenteros-Podolanski Alpha

Double_t GetArmPt() const
 Calculate the Armenteros-Podolanski Pt

void GetDCA(const AliVVertex* primVtx, Double_t* d0z0) const
 Calculate the dca of the mother with respect to the primary vertex

Double_t PhivPair(Double_t MagField) const
Following idea to use opening of colinear pairs in magnetic field from e.g. PHENIX
to ID conversions. Angle between ee plane and magnetic field is calculated.
Double_t GetPairPlaneAngle(Double_t kv0CrpH2, Int_t VariNum) const
Double_t PairPlaneMagInnerProduct(Double_t ZDCrpH1) const
void SetBeamEnergy(AliVEvent* ev, Double_t beamEbyHand = -1.)
 set the beam energy (by hand in case of AODs)

AliDielectronPair()
Double_t Px() const
AliVParticle interface
 kinematics
{ return fPair.GetPx(); }
Double_t Py() const
{ return fPair.GetPy(); }
Double_t Pz() const
{ return fPair.GetPz(); }
Double_t Pt() const
{ return fPair.GetPt(); }
Double_t P() const
{ return fPair.GetP(); }
Bool_t PxPyPz(Double_t* p) const
{ p[0]=Px(); p[1]=Py(); p[2]=Pz(); return kTRUE; }
Double_t Xv() const
{ return fPair.GetX(); }
Double_t Yv() const
{ return fPair.GetY(); }
Double_t Zv() const
{ return fPair.GetZ(); }
Bool_t XvYvZv(Double_t* x) const
{ x[0]=Xv(); x[1]=Yv(); x[2]=Zv(); return kTRUE; }
Double_t OneOverPt() const
{ return Pt()>0.?1./Pt():0.; }
Double_t Phi() const
{ return fPair.GetPhi();}
Double_t Theta() const
{ return Pz()!=0?TMath::ATan(Pt()/Pz()):0.; }
Double_t E() const
{ return fPair.GetE(); }
Double_t M() const
{ return fPair.GetMass(); }
Double_t Eta() const
{ return fPair.GetEta();}
Double_t Y() const
Short_t Charge() const
{ return fPair.GetQ();}
Int_t GetLabel() const
 PID
{ return fLabel; }
const Double_t * PID() const
{ return 0;}
UChar_t GetType() const
 Double_t GetLXY(const AliVVertex * const vtx) const;
 Double_t GetPseudoProperTime(const AliVVertex * const vtx) const;
{ return fType; }
void SetType(Char_t type)
{ fType=type; }
void SetLabel(Int_t label)
 MC information
{fLabel=label;}
void SetPdgCode(Int_t pdgCode)
{ fPdgCode=pdgCode; }
Int_t PdgCode() const
{return fPdgCode;}
void SetProductionVertex(const AliKFParticle& Vtx)
Double_t GetKFChi2() const
inter leg information
{ return fPair.GetChi2(); }
Int_t GetKFNdf() const
{ return fPair.GetNDF(); }
Double_t OpeningAngle() const
{ return fD1.GetAngle(fD2); }
Double_t DistanceDaughters() const
Double_t DistanceDaughtersXY() const
Double_t DeviationDaughters() const
Double_t DeviationDaughtersXY() const
Double_t DeltaEta() const
   Double_t DeltaPhi()             const { Double_t dphi=TMath::Abs(fD1.GetPhi()-fD2.GetPhi());
                                           return (dphi>TMath::Pi())?dphi-TMath::Pi():dphi;      }
{ return TMath::Abs(fD1.GetEta()-fD2.GetEta()); }
Double_t DeltaPhi() const
{ return fD1.GetAngleXY(fD2); }
const AliKFParticle& GetKFParticle() const
 internal KF particle
{ return fPair; }
const AliKFParticle& GetKFFirstDaughter() const
{ return fD1; }
const AliKFParticle& GetKFSecondDaughter() const
{ return fD2; }
void SetRefFirstDaughter(AliVParticle *const track)
 daughter references
{fRefD1 = track;}
void SetRefSecondDaughter(AliVParticle *const track)
{fRefD2 = track;}
AliVParticle* GetFirstDaughterP() const
{ return dynamic_cast<AliVParticle*>(fRefD1.GetObject()); }
AliVParticle* GetSecondDaughterP() const
{ return dynamic_cast<AliVParticle*>(fRefD2.GetObject()); }
void SetKFUsage(Bool_t KFUsage)
{fKFUsage = KFUsage;}
Bool_t GetKFUsage() const
{return fKFUsage;}