ROOT logo
AliRoot » PWGHF » HFE » AliHFEtrdPIDqa

class AliHFEtrdPIDqa: public TNamed

 Definition of the common binning

Function Members (Methods)

public:
AliHFEtrdPIDqa()
AliHFEtrdPIDqa(const Char_t* name)
AliHFEtrdPIDqa(const AliHFEtrdPIDqa& ref)
virtual~AliHFEtrdPIDqa()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidBrowse(TBrowser* b)
Double_tCalculateIntegratedPionEfficiency(UInt_t nTracklets, Double_t electronEff, Double_t pmin, Double_t pmax, Int_t icentrality = -1, Double_t* error = NULL)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
voidClearLists()
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidCopy(TObject& o) 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
voidDrawTracklet(Int_t tracklet, Double_t pmin = -1., Double_t pmax = -1., Int_t centrality = -1, Bool_t doFit = kFALSE)
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
Double_tEvalPionEfficiency(Int_t ntls, Int_t eEff, Double_t p, Int_t centrality = -1)
Double_tEvalProtonEfficiency(Int_t ntls, Int_t eEff, Double_t p, Int_t centrality = -1)
Double_tEvalThreshold(Int_t ntls, Int_t eEff, Double_t p, Int_t centrality = -1)
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
voidFinishAnalysis(Int_t fCentrality = -1, Bool_t isGreaterEqual = kFALSE)
THnSparseF*GetdEdxHistogram() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
AliHFEcollection*GetHistos() const
THnSparseF*GetHistoTruncMean() const
virtual const char*TObject::GetIconName() const
THnSparseF*GetLikelihoodHistogram() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TGraphErrors*GetPionEfficiency(Int_t ntracklets, Int_t eleffpercent, Int_t centrality = -1)
TGraphErrors*GetProtonEfficiency(Int_t ntracklets, Int_t eleffpercent, Int_t centrality = -1)
THnSparseF*GetQAHistogram() const
TH2*GetSliceChargePions(Bool_t pions = kTRUE) const
TGraph*GetThreshold(Int_t ntracklets, Int_t eleffpercent, Int_t centrality = -1)
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
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
voidInit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tIsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Long64_tMerge(TCollection* coll)
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)
AliHFEtrdPIDqa&operator=(const AliHFEtrdPIDqa& ref)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidProcessTrack(const AliVTrack *const track, Int_t species)
voidProcessTracks(const TObjArray *const l, Int_t species)
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 = "")
voidSaveThresholdParameters(const Char_t* filename = "TRD.Thresholds.root", Double_t lowerLimit = 0.5, Double_t upperLimit = 3.5, Int_t fCentrality = -1)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCentralityBin(Int_t centrality)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidSetTotalChargeInSlice0()
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
voidShowMessages()
virtual Int_tTNamed::Sizeof() const
voidStoreResults(const Char_t* filename = "HFEtrdPIDqa.root")
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:
voidAnalyseNTracklets(Int_t nTracklets, Int_t fCentrality = -1, Bool_t isGreaterEqual = kFALSE)
Double_tCalculateHadronEfficiency(const TH1 *const hadron, const TH1 *const electron, Double_t eff, Int_t& threshbin, Double_t& error)
voidCreatedEdxHistogram()
voidCreateHistoTruncatedMean()
voidCreateLikelihoodHistogram()
voidCreateQAHistogram()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Double_tEstimateThresholdError(const TH1 *const electron, Int_t threshbin)
voidFillTRDLikelihoods(const AliESDtrack *const track, Int_t species)
voidFillTRDQAplots(const AliESDtrack *const track, Int_t species)
TF1*MakeThresholds(TGraph* input, Double_t lowerLimit, Double_t upperLimit)
voidTObject::MakeZombie()
voidProcessTrackAOD(const AliAODTrack *const track, Int_t species)
voidProcessTrackESD(const AliESDtrack *const track, Int_t species)

Data Members

public:
enum QuantitiesCommon_t { kSpecies
kP
kNTracklets
kQuantitiesCommon
};
enum QuantitiesLike_t { kElectronLike
kNClustersLike
kCentralityBinLike
kQuantitiesLike
};
enum QuantitiesQAtrack_t { kNonZeroTrackletCharge
kNClusters
kCentralityBinQA
kQuantitiesQA
};
enum QuantitiesdEdx_t { kNclusters
kNonZeroSlices
kdEdx
kCentralityBindEdx
kQuantitiesdEdx
};
enum QuantitiesTruncMean_t { kTPCdEdx
kTRDdEdxMethod1
kTRDdEdxMethod2
kCentralityBinTruncMean
kQuantitiesTruncMean
};
enum { kNElectronEffs
};
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:
Int_tfCentralityBinCentrality Bin
AliHFEcollection*fHistosHistogram collection
TList*fKaonEfficiencies! List for Kaon efficiencies
TList*fPionEfficiencies! List for Pion efficiencies
TList*fProtonEfficiencies! List for Proton efficiencies
Bool_tfShowMessageDisplay debug messages
AliHFEpidTRD*fTRDpidHFE PID for TRD
TList*fThresholds! List for Threshold Graphs
Bool_tfTotalChargeInSlice0Flag for Foreward/Backward compatibility in TRD total charge calculation
static const Double_tfgkElectronEff[6]Electron efficiency bins
static const Double_tfgkMaxBinCommon[3]Bin Limits for common quantities (upper limit)
static const Double_tfgkMinBinCommon[3]Bin Limits for common quantities (lower limit)
static const Int_tfgkNBinsCommon[3]Number of bins for common quantities

Class Charts

Inheritance Chart:
TNamed
AliHFEtrdPIDqa

Function documentation

AliHFEtrdPIDqa()
 Default Constructor

AliHFEtrdPIDqa(const Char_t* name)
 Main Constructor

AliHFEtrdPIDqa(const AliHFEtrdPIDqa& ref)
 Copy constructor

AliHFEtrdPIDqa & operator=(const AliHFEtrdPIDqa& ref)
 Assignment operator

~AliHFEtrdPIDqa()
 Destructor

void Copy(TObject& o) const
 Copies content of this object into object ref

Long64_t Merge(TCollection* coll)
 Merge objects

void Browse(TBrowser* b)
 Enable Browser functionality

void Init()
 Initialize Object

void CreateLikelihoodHistogram()
 Create Histogram for TRD Likelihood Studies

void CreateQAHistogram()
 Create Histogram for Basic TRD PID QA

void CreatedEdxHistogram()
 Create QA histogram for dEdx investigations

void CreateHistoTruncatedMean()
 Create Histogram for Basic TRD PID QA:

void ProcessTracks(const TObjArray *const l, Int_t species)
 Process Electron Tracks

void ProcessTrack(const AliVTrack *const track, Int_t species)
 Process Single Track

void ProcessTrackESD(const AliESDtrack *const track, Int_t species)
 Process single ESD track

void ProcessTrackAOD(const AliAODTrack *const track, Int_t species)
 Process single AOD track
 AOD PID object required

void FillTRDLikelihoods(const AliESDtrack *const track, Int_t species)
 Fill TRD Likelihood Histogram

void FillTRDQAplots(const AliESDtrack *const track, Int_t species)
 Fill QA Plots containing further information

void FinishAnalysis(Int_t fCentrality = -1, Bool_t isGreaterEqual = kFALSE)
 Finish Analysis:
 Calculate Electron Efficiency for ntracklets = 4...6
 Calculate thresholds for ntracklets = 4...6

void StoreResults(const Char_t* filename = "HFEtrdPIDqa.root")
 Store histos into a root file

void SaveThresholdParameters(const Char_t* filename = "TRD.Thresholds.root", Double_t lowerLimit = 0.5, Double_t upperLimit = 3.5, Int_t fCentrality = -1)
 Fit the threshold histograms with the given parametrisation
 and store the TF1 in the file

void AnalyseNTracklets(Int_t nTracklets, Int_t fCentrality = -1, Bool_t isGreaterEqual = kFALSE)
 Calculate Pion Efficiency, Proton Efficiency and Kaon Efficiency at discrete
 elPion Efficiency, Proton Efficiency and Kaon Efficiency at discrete
 electron efficiencies

Double_t CalculateHadronEfficiency(const TH1 *const hadron, const TH1 *const electron, Double_t eff, Int_t& threshbin, Double_t& error)
 Calculate non-electron efficiency
 optionally returns sums as second parameter

Double_t EstimateThresholdError(const TH1 *const electron, Int_t threshbin)
 Estimate threshold error as sqrt(N_int)/N_ent
 where N_int are the counts integrated under the electron selection band
 and N_ent are all entries in the histogram

Double_t CalculateIntegratedPionEfficiency(UInt_t nTracklets, Double_t electronEff, Double_t pmin, Double_t pmax, Int_t icentrality = -1, Double_t* error = NULL)
 Calculate Pion Efficiency for a given electron efficiency in the specified momentum range

void DrawTracklet(Int_t tracklet, Double_t pmin = -1., Double_t pmax = -1., Int_t centrality = -1, Bool_t doFit = kFALSE)
 Draw efficiencies and threshold as function of p

TF1 * MakeThresholds(TGraph* input, Double_t lowerLimit, Double_t upperLimit)
 Create TF1 containing the threshold parametrisation

void ClearLists()
 Clear lists for particle efficiencies and thresholds

Double_t EvalPionEfficiency(Int_t ntls, Int_t eEff, Double_t p, Int_t centrality = -1)
 calculate pion efficiency
 Arguments:
   Number of tracklets
   Electron Efficiency
   Momentum

Double_t EvalProtonEfficiency(Int_t ntls, Int_t eEff, Double_t p, Int_t centrality = -1)
 calculate proton efficiency
 Arguments:
   Number of tracklets
   Electron Efficiency
   Momentum

Double_t EvalThreshold(Int_t ntls, Int_t eEff, Double_t p, Int_t centrality = -1)
 Get the threshold to reach a certain electron efficiency
 Arguments:
   Number of tracklets
   Electron Efficiency
   Momentum

TGraphErrors * GetPionEfficiency(Int_t ntracklets, Int_t eleffpercent, Int_t centrality = -1)
 Get Graph with pion efficiencies

TGraphErrors * GetProtonEfficiency(Int_t ntracklets, Int_t eleffpercent, Int_t centrality = -1)
 Get Graph with proton efficiencies

TGraph * GetThreshold(Int_t ntracklets, Int_t eleffpercent, Int_t centrality = -1)
 Get Graph with threshols

Bool_t IsFolder() const
{ return kTRUE; }
void ShowMessages()
void SetTotalChargeInSlice0()
void SetCentralityBin(Int_t centrality)
{ fCentralityBin = centrality; }
THnSparseF * GetLikelihoodHistogram() const
 Getters for Histograms
{ return fHistos ? dynamic_cast<THnSparseF *>(fHistos->Get("fLikeTRD")) : NULL; }
THnSparseF * GetQAHistogram() const
{ return fHistos ? dynamic_cast<THnSparseF *>(fHistos->Get("fQAtrack")) : NULL; }
THnSparseF * GetdEdxHistogram() const
{ return fHistos ? dynamic_cast<THnSparseF *>(fHistos->Get("fQAdEdx")) : NULL; }
THnSparseF * GetHistoTruncMean() const
{ return fHistos ? dynamic_cast<THnSparseF *>(fHistos->Get("fTRDtruncMean")) : NULL; }
TH2 * GetSliceChargePions(Bool_t pions = kTRUE) const
AliHFEcollection * GetHistos() const
{ return fHistos; }