ROOT logo
AliRoot » PWGDQ » DIELECTRON » AliDielectron

class AliDielectron: public TNamed

Dielectron Analysis Main class


Framework to perform event selectoin, single track selection and track pair
selection.

Convention for the signs of the pair in fPairCandidates:
The names are available via the function PairClassName(Int_t i)

0: ev1+ ev1+  (same event like sign +)
1: ev1+ ev1-  (same event unlike sign)
2: ev1- ev1-  (same event like sign -)

3: ev1+ ev2+  (mixed event like sign +)
4: ev1- ev2+  (mixed event unlike sign -+)
6: ev1+ ev2-  (mixed event unlike sign +-)
7: ev1- ev2-  (mixed event like sign -)

5: ev2+ ev2+  (same event like sign +)
8: ev2+ ev2-  (same event unlike sign)
9: ev2- ev2-  (same event like sign -)

10: ev1+ ev1- (same event track rotation)




Function Members (Methods)

public:
AliDielectron()
AliDielectron(const char* name, const char* title)
virtual~AliDielectron()
voidTObject::AbstractMethod(const char* method) const
voidAddSignalMC(AliDielectronSignalMC* signal)
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)
Bool_tDoEventProcess() const
Bool_tDontClearArrays() const
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)
voidFillHistogramsFromPairArray(Bool_t pairInfoOnly = kFALSE)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
AliDielectronCF*GetCFManagerPair() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
const AliAnalysisFilter&GetEventFilter() const
AliAnalysisFilter&GetEventFilter()
AliAnalysisFilter&GetEventPlanePOIPreFilter()
AliAnalysisFilter&GetEventPlanePreFilter()
Bool_tGetHasMC() const
const TObjArray*GetHistogramArray() const
const THashList*GetHistogramList() const
AliDielectronHistos*GetHistoManager() const
virtual const char*TObject::GetIconName() const
Int_tGetLeg1Pdg() const
Int_tGetLeg2Pdg() const
const TObjArray*GetMCSignals() const
AliDielectronMixingHandler*GetMixingHandler() const
Int_tGetMotherPdg() 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
const TObjArray*GetPairArray(Int_t i) const
TObjArray**GetPairArraysPointer()
const AliAnalysisFilter&GetPairFilter() const
AliAnalysisFilter&GetPairFilter()
AliAnalysisFilter&GetPairPreFilter()
AliAnalysisFilter&GetPairPreFilterLegs()
const TObjArray*GetQAHistArray() const
virtual const char*TNamed::GetTitle() const
const TObjArray*GetTrackArray(Int_t i) const
const AliAnalysisFilter&GetTrackFilter() const
AliAnalysisFilter&GetTrackFilter()
AliDielectronTrackRotator*GetTrackRotator() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
Bool_tHasCandidates() const
Bool_tHasCandidatesLikeSign() const
Bool_tHasCandidatesTR() const
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()
voidInitLegEffMap(TString filename)
voidInitPairEffMap(TString filename)
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_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
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 = "")
static const char*PairClassName(Int_t i)
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidProcess(TObjArray* arr)
Bool_tProcess(AliVEvent* ev1, AliVEvent* ev2 = 0)
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
voidSaveDebugTree()
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCentroidCorrFunction(TF1* fun, UInt_t varx, UInt_t vary = 0, UInt_t varz = 0)
voidSetCentroidCorrFunction(TH1* fun, UInt_t varx, UInt_t vary = 0, UInt_t varz = 0)
voidSetCFManagerPair(AliDielectronCF *const cf)
voidSetCutQA(Bool_t qa = kTRUE)
voidSetDebugTree(AliDielectronDebugTree *const tree)
voidSetDontClearArrays(Bool_t dontClearArrays = kTRUE)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetEstimatorFilename(const Char_t* filename)
voidSetEventProcess(Bool_t setValue = kTRUE)
voidSetHasMC(Bool_t hasMC)
voidSetHistogramArray(AliDielectronHF *const histoarray)
voidSetHistogramManager(AliDielectronHistos *const histos)
voidSetLegPdg(Int_t pdgLeg1, Int_t pdgLeg2)
voidSetLikeSignSubEvents(Bool_t setValue = kTRUE)
voidSetMixingHandler(AliDielectronMixingHandler* mix)
voidSetMotherPdg(Int_t pdgMother)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNoPairing(Bool_t noPairing = kTRUE)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPairArraysPointer(TObjArray* arr)
voidSetPreFilterAllSigns(Bool_t setValue = kTRUE)
voidSetPreFilterEventPlane(Bool_t setValue = kTRUE)
voidSetPreFilterUnlikeOnly(Bool_t setValue = kTRUE)
voidSetProcessLS(Bool_t doLS = kTRUE)
voidSetStoreRotatedPairs(Bool_t storeTR)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidSetTrackRotator(AliDielectronTrackRotator *const rot)
voidSetTRDcorrectionFilename(const Char_t* filename)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetUseKF(Bool_t useKF = kTRUE)
voidSetVZEROCalibrationFilename(const Char_t* filename)
voidSetVZERORecenteringFilename(const Char_t* filename)
voidSetWidthCorrFunction(TF1* fun, UInt_t varx, UInt_t vary = 0, UInt_t varz = 0)
voidSetWidthCorrFunction(TH1* fun, UInt_t varx, UInt_t vary = 0, UInt_t varz = 0)
voidSetZDCRecenteringFilename(const Char_t* filename)
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
static const char*TrackClassName(Int_t i)
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:
AliDielectron(const AliDielectron& c)
voidClearArrays()
voidEventPlanePreFilter(Int_t arr1, Int_t arr2, TObjArray arrTracks1, TObjArray arrTracks2, const AliVEvent* ev)
voidFillDebugTree()
voidFillHistograms(const AliVEvent* ev, Bool_t pairInfoOnly = kFALSE)
voidFillHistogramsMC(const AliMCEvent* ev, AliVEvent* ev1)
voidFillHistogramsPair(AliDielectronPair* pair, Bool_t fromPreFilter = kFALSE)
voidFillHistogramsTracks(TObjArray** tracks)
voidFillMCHistograms(const AliVEvent* ev)
voidFillMCHistograms(Int_t label1, Int_t label2, Int_t nSignal)
voidFillPairArrays(Int_t arr1, Int_t arr2)
voidFillPairArrayTR()
voidFillTrackArrays(AliVEvent *const ev, Int_t eventNr = 0)
Int_tGetPairIndex(Int_t arr1, Int_t arr2) const
TObject*InitEffMap(TString filename)
voidInitPairCandidateArrays()
AliDielectron&operator=(const AliDielectron& c)
TObjArray*PairArray(Int_t i)
voidPairPreFilter(Int_t arr1, Int_t arr2, TObjArray& arrTracks1, TObjArray& arrTracks2)
voidProcessMC(AliVEvent* ev1)

Data Members

public:
enum EPairType { kEv1PP
kEv1PM
kEv1MM
kEv1PEv2P
kEv1MEv2P
kEv2PP
kEv1PEv2M
kEv1MEv2M
kEv2PM
kEv2MM
kEv1PMRot
};
enum ELegType { kEv1P
kEv1M
kEv2P
kEv2M
};
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:
AliDielectronCF*fCfManagerPairCorrection Framework Manager for the Pair
Bool_tfCutQAmonitor cuts
AliDielectronDebugTree*fDebugTreeDebug tree output
Bool_tfDontClearArraysDon't clear the arrays at the end of the Process function, needed for external use of pair and tracks
TStringfEstimatorFilenamename for the pp multiplicity estimators filename
AliAnalysisFilterfEventFilterEvent cuts
AliAnalysisFilterfEventPlanePOIPreFilterPoI cuts in the event plane prefilter
AliAnalysisFilterfEventPlanePreFilterevent plane prefilter cuts
Bool_tfEventProcessProcess event (or pair array)
Bool_tfHasMCIf we run with MC, at the moment only needed in AOD
AliDielectronHF*fHistoArrayHistogram framework
AliDielectronHistos*fHistosHistogram manager
TObject*fLegEffMapsingle electron efficiency map
Bool_tfLikeSignSubEventsOption for dividing into subevents, sub1 ++ sub2 --
AliDielectronMixingHandler*fMixinghandler for event mixing
Bool_tfNoPairingif to skip pairing, can be used for track QA only
TObjArray*fPairCandidates! Pair candidate arrays
TObject*fPairEffMappair efficiency map
AliAnalysisFilterfPairFilterpair cuts
AliAnalysisFilterfPairPreFilterpair prefilter cuts
AliAnalysisFilterfPairPreFilterLegsLeg filter after the pair prefilter cuts
Int_tfPdgLeg1pdg code leg1
Int_tfPdgLeg2pdg code leg2
Int_tfPdgMotherpdg code of mother tracks
TH1*fPostPIDCntrdCorrpost pid correction object for centroids
TH1*fPostPIDWdthCorrpost pid correction object for widths
Bool_tfPreFilterAllSignsApply PreFilter find in ++/--/+- and remove from all
Bool_tfPreFilterEventPlaneFilter for the Eventplane determination in TPC
Bool_tfPreFilterUnlikeOnlyApply PreFilter either in +- or to ++/--/+- individually
Bool_tfProcessLSdo the like-sign pairing (default kTRUE)
AliDielectronCutQA*fQAmonitormonitoring of cuts
TObjArray*fSignalsMCarray of AliDielectronSignalMC
Bool_tfStoreRotatedPairsIt the rotated pairs should be stored in the pair array
TStringfTRDpidCorrectionFilenamename for the file containing the single particle TRD pid corrections
AliAnalysisFilterfTrackFilterleg cuts
AliDielectronTrackRotator*fTrackRotatorTrack rotator
TObjArrayfTracks[4]! Selected track candidates
Bool_tfUseKFif to skip pairing, can be used for track QA only
TBits*fUsedVarsused variables
TStringfVZEROCalibrationFilenamefile containing VZERO channel-by-channel calibration
TStringfVZERORecenteringFilenamefile containing VZERO Q-vector recentering averages
TStringfZDCRecenteringFilenamefile containing ZDCQ-vector recentering averages
static const char*fgkPairClassNames[11]Names for pair arrays
static const char*fgkTrackClassNames[4]Names for track arrays

Class Charts

Inheritance Chart:
TNamed
AliDielectron

Function documentation

AliDielectron()
 Default constructor

AliDielectron(const char* name, const char* title)
 Named constructor

~AliDielectron()
 Default destructor

void Init()
 Initialise objects

void Process(TObjArray* arr)
 Process the pair array

Bool_t Process(AliVEvent* ev1, AliVEvent* ev2 = 0)
 Process the events

void ProcessMC(AliVEvent* ev1)
 Process the MC data

void FillHistogramsTracks(TObjArray** tracks)
 Fill Histogram information for tracks after prefilter
 ignore mixed events - for prefilter, only single tracks +/- are relevant

void FillHistogramsMC(const AliMCEvent* ev, AliVEvent* ev1)
 Fill Histogram information for MCEvents

void FillHistograms(const AliVEvent* ev, Bool_t pairInfoOnly = kFALSE)
 Fill Histogram information for tracks and pairs

void FillHistogramsPair(AliDielectronPair* pair, Bool_t fromPreFilter = kFALSE)
 Fill Histogram information for pairs and the track in the pair
 NOTE: in this funtion the leg information may be filled multiple
       times. This funtion is used in the track rotation pairing
       and those legs are not saved!

void FillTrackArrays(AliVEvent *const ev, Int_t eventNr = 0)
 select tracks and fill track candidate arrays
 eventNr = 0: First  event, use track arrays 0 and 1
 eventNr = 1: Second event, use track arrays 2 and 3

void EventPlanePreFilter(Int_t arr1, Int_t arr2, TObjArray arrTracks1, TObjArray arrTracks2, const AliVEvent* ev)
 Prefilter tracks and tracks from pairs
 Needed for rejection in the Q-Vector of the event plane
 remove contribution of all tracks to the Q-vector that are in invariant mass window

void PairPreFilter(Int_t arr1, Int_t arr2, TObjArray& arrTracks1, TObjArray& arrTracks2)
 Prefilter tracks from pairs
 Needed for datlitz rejections
 remove all tracks from the Single track arrays that pass the cuts in this filter

void FillPairArrays(Int_t arr1, Int_t arr2)
 select pairs and fill pair candidate arrays

void FillPairArrayTR()
 select pairs and fill pair candidate arrays

void FillDebugTree()
 Fill Histogram information for tracks and pairs

void SaveDebugTree()
 delete the debug tree, this will also write the tree

void AddSignalMC(AliDielectronSignalMC* signal)
  Add an MC signal to the signals list

void FillMCHistograms(Int_t label1, Int_t label2, Int_t nSignal)
 fill QA MC TRUTH histograms for pairs and legs of all added mc signals

void FillMCHistograms(const AliVEvent* ev)
 fill QA MC histograms for pairs and legs of all added mc signals

void SetCentroidCorrFunction(TF1* fun, UInt_t varx, UInt_t vary = 0, UInt_t varz = 0)
void SetCentroidCorrFunction(TH1* fun, UInt_t varx, UInt_t vary = 0, UInt_t varz = 0)
void SetWidthCorrFunction(TF1* fun, UInt_t varx, UInt_t vary = 0, UInt_t varz = 0)
void SetWidthCorrFunction(TH1* fun, UInt_t varx, UInt_t vary = 0, UInt_t varz = 0)
TObject* InitEffMap(TString filename)
 init an efficiency object for on-the-fly correction calculations
void FillHistogramsFromPairArray(Bool_t pairInfoOnly = kFALSE)
 Fill Histogram information for tracks and pairs

void InitPairCandidateArrays()
 initialise all pair candidate arrays

TObjArray* PairArray(Int_t i)
 for internal use only: unchecked return of track array for fast access

void ClearArrays()
 Reset the Arrays

AliDielectron()
const AliAnalysisFilter& GetEventFilter() const
{ return fEventFilter; }
const AliAnalysisFilter& GetTrackFilter() const
{ return fTrackFilter; }
const AliAnalysisFilter& GetPairFilter() const
{ return fPairFilter; }
AliAnalysisFilter& GetEventFilter()
{ return fEventFilter; }
AliAnalysisFilter& GetTrackFilter()
{ return fTrackFilter; }
AliAnalysisFilter& GetPairFilter()
{ return fPairFilter; }
AliAnalysisFilter& GetPairPreFilter()
{ return fPairPreFilter; }
AliAnalysisFilter& GetPairPreFilterLegs()
{ return fPairPreFilterLegs; }
AliAnalysisFilter& GetEventPlanePreFilter()
AliAnalysisFilter& GetEventPlanePOIPreFilter()
void SetMotherPdg(Int_t pdgMother)
{ fPdgMother=pdgMother; }
void SetLegPdg(Int_t pdgLeg1, Int_t pdgLeg2)
{ fPdgLeg1=pdgLeg1; fPdgLeg2=pdgLeg2; }
Int_t GetMotherPdg() const
{ return fPdgMother; }
Int_t GetLeg1Pdg() const
{ return fPdgLeg1; }
Int_t GetLeg2Pdg() const
{ return fPdgLeg2; }
void SetCutQA(Bool_t qa = kTRUE)
{ fCutQA=qa; }
void SetNoPairing(Bool_t noPairing = kTRUE)
{ fNoPairing=noPairing; }
void SetProcessLS(Bool_t doLS = kTRUE)
{ fProcessLS=doLS; }
void SetUseKF(Bool_t useKF = kTRUE)
{ fUseKF=useKF; }
const TObjArray* GetTrackArray(Int_t i) const
{return (i>=0&&i<4)?&fTracks[i]:0;}
const TObjArray* GetPairArray(Int_t i) const
TObjArray** GetPairArraysPointer()
{ return &fPairCandidates; }
void SetPairArraysPointer(TObjArray* arr)
void SetHistogramArray(AliDielectronHF *const histoarray)
{ fHistoArray=histoarray; }
const TObjArray * GetHistogramArray() const
const TObjArray * GetQAHistArray() const
void SetHistogramManager(AliDielectronHistos *const histos)
{ fHistos=histos; }
AliDielectronHistos* GetHistoManager() const
{ return fHistos; }
const THashList * GetHistogramList() const
{ return fHistos?fHistos->GetHistogramList():0x0; }
Bool_t HasCandidates() const
{ return GetPairArray(1)?GetPairArray(1)->GetEntriesFast()>0:0; }
Bool_t HasCandidatesLikeSign() const
Bool_t HasCandidatesTR() const
{return GetPairArray(10)?GetPairArray(10)->GetEntriesFast()>0:0;}
void SetCFManagerPair(AliDielectronCF *const cf)
AliDielectronCF* GetCFManagerPair() const
{ return fCfManagerPair; }
void SetPreFilterEventPlane(Bool_t setValue = kTRUE)
void SetLikeSignSubEvents(Bool_t setValue = kTRUE)
{fLikeSignSubEvents=setValue;}
void SetPreFilterUnlikeOnly(Bool_t setValue = kTRUE)
void SetPreFilterAllSigns(Bool_t setValue = kTRUE)
{fPreFilterAllSigns=setValue;}
void SetTrackRotator(AliDielectronTrackRotator *const rot)
{ fTrackRotator=rot; }
AliDielectronTrackRotator* GetTrackRotator() const
{ return fTrackRotator; }
void SetMixingHandler(AliDielectronMixingHandler* mix)
{ fMixing=mix; }
AliDielectronMixingHandler* GetMixingHandler() const
{ return fMixing; }
void SetHasMC(Bool_t hasMC)
{ fHasMC = hasMC; }
Bool_t GetHasMC() const
{ return fHasMC; }
void SetStoreRotatedPairs(Bool_t storeTR)
{fStoreRotatedPairs = storeTR;}
void SetDontClearArrays(Bool_t dontClearArrays = kTRUE)
{ fDontClearArrays=dontClearArrays; }
Bool_t DontClearArrays() const
{ return fDontClearArrays; }
void SetDebugTree(AliDielectronDebugTree *const tree)
{ fDebugTree=tree; }
const TObjArray* GetMCSignals() const
{ return fSignalsMC; }
const char* TrackClassName(Int_t i)
{ return (i>=0&&i<4)?fgkTrackClassNames[i]:""; }
const char* PairClassName(Int_t i)
{ return (i>=0&&i<11)?fgkPairClassNames[i]:""; }
void SetEstimatorFilename(const Char_t* filename)
{fEstimatorFilename = filename;}
void SetTRDcorrectionFilename(const Char_t* filename)
void SetVZEROCalibrationFilename(const Char_t* filename)
void SetVZERORecenteringFilename(const Char_t* filename)
void SetZDCRecenteringFilename(const Char_t* filename)
void InitLegEffMap(TString filename)
{ fLegEffMap=InitEffMap(filename) ;}
void InitPairEffMap(TString filename)
{ fPairEffMap=InitEffMap(filename) ;}
Bool_t DoEventProcess() const
{ return fEventProcess; }
void SetEventProcess(Bool_t setValue = kTRUE)
{ fEventProcess=setValue; }
Int_t GetPairIndex(Int_t arr1, Int_t arr2) const
{return arr1>=arr2?arr1*(arr1+1)/2+arr2:arr2*(arr2+1)/2+arr1;}
AliDielectron & operator=(const AliDielectron& c)