ROOT logo
AliRoot » PWGDQ » DIELECTRON » AliDielectronPID

class AliDielectronPID: public AliAnalysisCuts

Dielectron PID



Detailed description





Function Members (Methods)

public:
AliDielectronPID()
AliDielectronPID(const char* name, const char* title)
virtual~AliDielectronPID()
voidTObject::AbstractMethod(const char* method) const
voidAddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, Double_t nSigmaLow, Double_t nSigmaUp, AliDielectronVarCuts* varcuts, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire)
voidAddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, Double_t nSigmaLow, Double_t nSigmaUp = -99999., Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
voidAddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, Double_t nSigmaLow, TF1 *const funUp, Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
voidAddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, TF1 *const funLow, Double_t nSigmaUp, Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
voidAddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, TF1 *const funLow, TF1 *const funUp, Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
voidAddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, Double_t nSigmaLow, Double_t nSigmaUp, Double_t min, Double_t max, Bool_t exclude, UInt_t pidBitType, TF1 *const funSigma)
voidAddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, THnBase *const histLow, Double_t nSigmaUp, Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
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 voidTObject::Error(const char* method, const char* msgfmt) 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 voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static Double_tGetCntrdCorr(const AliVTrack* track)
static TGraph*GetCorrGraph()
static TGraph*GetCorrGraphdEdx()
static Double_tGetCorrVal()
static Double_tGetCorrValdEdx()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
static Double_tGetEtaCorr(const AliVTrack* track)
static TF1*GetEtaCorrFunction()
virtual UInt_tAliAnalysisCuts::GetFilterMask() const
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
Int_tGetNCuts()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual TList*AliAnalysisCuts::GetOutput()
virtual UInt_tAliVCuts::GetSelectionMask(const TObject*)
virtual TObject*AliAnalysisCuts::GetStatistics(Option_t*) const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
static Double_tGetWdthCorr(const AliVTrack* track)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::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 voidAliAnalysisCuts::Init()
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_tIsSelected(TObject* track)
virtual Bool_tIsSelected(TList*)
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Long64_tAliAnalysisCuts::Merge(TCollection*)
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) 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)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") 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 = "")
virtual UInt_tAliAnalysisCuts::Selected() const
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
static voidSetCentroidCorrFunction(TH1* fun)
static voidSetCorrGraph(TGraph *const gr)
static voidSetCorrGraphdEdx(TGraph *const gr)
static voidSetCorrVal(Double_t run)
voidSetDefaults(Int_t def)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidSetEtaCorrFunction(TF1* fun)
virtual voidAliAnalysisCuts::SetFilterMask(UInt_t mask)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidAliAnalysisCuts::SetSelected(Bool_t dec)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
static voidSetWidthCorrFunction(TH1* fun)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
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 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
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
AliDielectronPID(const AliDielectronPID& c)
static Double_tGetPIDCorr(const AliVTrack* track, TH1* hist)
Bool_tIsSelectedEMCAL(AliVTrack *const part, Int_t icut)
Bool_tIsSelectedITS(AliVTrack *const part, Int_t icut)
Bool_tIsSelectedTOF(AliVTrack *const part, Int_t icut)
Bool_tIsSelectedTPC(AliVTrack *const part, Int_t icut, Double_t* values)
Bool_tIsSelectedTRD(AliVTrack *const part, Int_t icut)
Bool_tIsSelectedTRDeleEff(AliVTrack *const part, Int_t icut, AliTRDPIDResponse::ETRDPIDMethod PIDmethod = AliTRDPIDResponse::kLQ1D)
AliDielectronPID&operator=(const AliDielectronPID& c)

Data Members

public:
enum DetType { kITS
kTPC
kTRD
kTRDeleEff
kTRDeleEff2D
kTOF
kEMCAL
};
enum PIDbitType { kIgnore
kRequire
kIfAvailable
};
enum { kNmaxPID
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
UShort_tfActiveCuts[30]list of activated cuts
AliDielectronPID::DetTypefDetType[30]detector type of nsigma cut
Bool_tfExclude[30]use as exclusion band
TF1*fFunLowerCut[30]use function as lower cut
TF1*fFunSigma[30]use function as cut range
TF1*fFunUpperCut[30]use function as upper cut
THnBase*fMapElectronCutLow[30]map for the electron lower cut in units of n-sigma widths 1 centered to zero
UChar_tfNcutsnumber of cuts
Float_tfNsigmaLow[30]lower nsigma bound
Float_tfNsigmaUp[30]upper nsigma bound
AliPIDResponse*fPIDResponse! pid response object
AliPID::EParticleTypefPartType[30]particle type
UChar_tfRequirePIDbit[30]How to make use of the pid bit (see)
Double_tfSigmaFunLow[30]lower bound for fFunSigma
Double_tfSigmaFunUp[30]upper bound for fFunSigma
TBits*fUsedVarslist of used variables
AliDielectronVarCuts*fVarCuts[30]varcuts
static Double_tfgCorr!correction value for current run. Set if fgFitCorr is set and SetCorrVal(run)
static Double_tfgCorrdEdx!dEdx correction value for current run. Set if fgFitCorr is set and SetCorrVal(run)
static TGraph*fgFitCorrspline fit object to correct the nsigma deviation in the TPC electron band
static TH1*fgFunCntrdCorrfunction for correction of electron sigma (centroid)
static TF1*fgFunEtaCorrfunction for eta correction of electron sigma
static TH1*fgFunWdthCorrfunction for correction of electron sigma (width)
static TGraph*fgdEdxRunCorrrun by run correction for dEdx
Double_tfmax[30]upper cut limit
Double_tfmin[30]lower cut limit

Class Charts

Inheritance Chart:
TNamed
AliVCuts
AliAnalysisCuts
AliDielectronPID

Function documentation

AliDielectronPID()
 Default Constructor

AliDielectronPID(const char* name, const char* title)
 Named Constructor

~AliDielectronPID()
 Default Destructor

void AddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, Double_t nSigmaLow, Double_t nSigmaUp = -99999., Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
 Add a pid nsigma cut
 use response of detector 'det' in the range ['min'] to ['max'] for var
 use a sigma band between 'nSigmaLow' and 'nSigmaUp'
 if nSigmaUp==-99999. then nSigmaLow will be uesd as a symmetric band +- nSigmaLow
 specify whether to 'exclude' the given band

void AddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, Double_t nSigmaLow, TF1 *const funUp, Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
 cut using a TF1 as upper cut

void AddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, TF1 *const funLow, Double_t nSigmaUp, Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
 cut using a TF1 as lower cut

void AddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, TF1 *const funLow, TF1 *const funUp, Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
 cut using a TF1 as lower and upper cut

void AddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, Double_t nSigmaLow, Double_t nSigmaUp, Double_t min, Double_t max, Bool_t exclude, UInt_t pidBitType, TF1 *const funSigma)
 cut using a TF1 as lower cut

void AddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, THnBase *const histLow, Double_t nSigmaUp, Double_t min = 0, Double_t max = 0, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire, Int_t var = -1)
 cut using a THnBase as a lower cut

void AddCut(AliDielectronPID::DetType det, AliPID::EParticleType type, Double_t nSigmaLow, Double_t nSigmaUp, AliDielectronVarCuts* varcuts, Bool_t exclude = kFALSE, UInt_t pidBitType = AliDielectronPID::kRequire)
 Add a pid nsigma cut
 use response of detector 'det' in the ranges for variables defined in var
 use a sigma band between 'nSigmaLow' and 'nSigmaUp'
 if nSigmaUp==-99999. then nSigmaLow will be uesd as a symmetric band +- nSigmaLow
 specify whether to 'exclude' the given band

Bool_t IsSelected(TObject* track)
 perform PID cuts

Bool_t IsSelectedITS(AliVTrack *const part, Int_t icut)
 ITS part of the PID check
 Don't accept the track if there was no pid bit set

Bool_t IsSelectedTPC(AliVTrack *const part, Int_t icut, Double_t* values)
 TPC part of the PID check
 Don't accept the track if there was no pid bit set

Bool_t IsSelectedTRD(AliVTrack *const part, Int_t icut)
 TRD part of the pid check
 the TRD checks on the probabilities.

Bool_t IsSelectedTRDeleEff(AliVTrack *const part, Int_t icut, AliTRDPIDResponse::ETRDPIDMethod PIDmethod = AliTRDPIDResponse::kLQ1D)
 TRD part of the pid check using electron efficiency requirement
 in this case the upper limit as well as the particle specie is ignored
   and the lower limit regarded as the requested electron efficiency

Bool_t IsSelectedTOF(AliVTrack *const part, Int_t icut)
 TOF part of the PID check
 Don't accept the track if there was no pid bit set

Bool_t IsSelectedEMCAL(AliVTrack *const part, Int_t icut)
 emcal pid selecttion

void SetDefaults(Int_t def)
 initialise default pid strategies

void SetCorrVal(Double_t run)
 set correction value for run

Double_t GetEtaCorr(const AliVTrack* track)
 return eta correction

Double_t GetPIDCorr(const AliVTrack* track, TH1* hist)
 return correction value

TODO: think about taking an values array as argument to reduce # var fills
AliDielectronPID()
Int_t GetNCuts()
Analysis cuts interface
const
{ return fNcuts;}
Bool_t IsSelected(TObject* track)
void SetCorrGraph(TGraph *const gr)
{ fgFitCorr=gr; }
TGraph * GetCorrGraph()
{ return fgFitCorr; }
Double_t GetCorrVal()
{ return fgCorr; }
Double_t GetCorrValdEdx()
{ return fgCorrdEdx; }
void SetCorrGraphdEdx(TGraph *const gr)
TGraph * GetCorrGraphdEdx()
{ return fgdEdxRunCorr; }
void SetEtaCorrFunction(TF1* fun)
void SetCentroidCorrFunction(TH1* fun)
void SetWidthCorrFunction(TH1* fun)
{ fgFunWdthCorr=fun; }
TF1* GetEtaCorrFunction()
{ return fgFunEtaCorr; }
Double_t GetCntrdCorr(const AliVTrack* track)
{ return (fgFunCntrdCorr ? GetPIDCorr(track,fgFunCntrdCorr) : 0.0); }
Double_t GetWdthCorr(const AliVTrack* track)
{ return (fgFunWdthCorr ? GetPIDCorr(track,fgFunWdthCorr) : 1.0); }
AliDielectronPID & operator=(const AliDielectronPID& c)