ROOT logo
AliRoot » PWGDQ » DIELECTRON » AliDielectronV0Cuts

class AliDielectronV0Cuts: public AliDielectronVarCuts

Cut class providing cuts to V0 candidates
Selection or deselection of V0 candiates can be done.

Authors:
Julian Book <Julian.Book@cern.ch>


Class to provide some V0 selection using exactley the same cuts in ESDs as in AODs.
It implements the PID cut class AliDielectronPID and the standard AliDielectronVarCuts for
the configuration of leg respective pair cuts. These pair cuts are applied on the KFparticle
build by the legs.

Some QA cuts for the tracks are applied before the V0 pair is build. These cuts are:
AliDielectronVarCuts dauQAcuts1;
dauQAcuts1.AddCut(AliDielectronVarManager::kPt,            0.05, 100.0);
dauQAcuts1.AddCut(AliDielectronVarManager::kEta,          -0.9,    0.9);
dauQAcuts1.AddCut(AliDielectronVarManager::kNclsTPC,      50.0,  160.0);
dauQAcuts1.AddCut(AliDielectronVarManager::kTPCchi2Cl,     0.0,    4.0);
AliDielectronTrackCuts dauQAcuts2;
dauQAcuts2.SetRequireTPCRefit(kTRUE);



Example configuration:

  AliDielectronV0Cuts *gammaV0Cuts = new AliDielectronV0Cuts("IsGamma","IsGamma");

  // which V0 finder you want to use
  gammaV0Cuts->SetV0finder(kOnTheFly);  // kAll(default), kOffline or kOnTheFly

  // add some pdg codes (they are used then by the KF package and important for gamma conversions)
  gammaV0Cuts->SetPdgCodes(22,11,11); // mother, daughter1 and 2

  // add default PID cuts (defined in AliDielectronPID)
  // requirement can be set to at least one(kAny) of the tracks or to both(kBoth)
  gammaV0Cuts->SetDefaultPID(16, AliDielectronV0Cuts::kAny);

  // add the pair cuts for V0 candidates
  gammaV0Cuts->AddCut(AliDielectronVarManager::kCosPointingAngle, TMath::Cos(0.02),   1.0, kFALSE);
  gammaV0Cuts->AddCut(AliDielectronVarManager::kChi2NDF,                       0.0,  10.0, kFALSE);
  gammaV0Cuts->AddCut(AliDielectronVarManager::kLegDist,                       0.0,   0.25, kFALSE);
  gammaV0Cuts->AddCut(AliDielectronVarManager::kR,                             3.0,  90.0, kFALSE);
  gammaV0Cuts->AddCut(AliDielectronVarManager::kPsiPair,                       0.0,   0.05, kFALSE);
  gammaV0Cuts->AddCut(AliDielectronVarManager::kM,                             0.0,   0.05, kFALSE);
  gammaV0Cuts->AddCut(AliDielectronVarManager::kArmPt,                         0.0,   0.05, kFALSE);

  // selection or rejection of V0 tracks
  gammaV0Cuts->SetExcludeTracks(kTRUE);

  // add the V0cuts directly to the track filter or to some cut group of it




Function Members (Methods)

public:
AliDielectronV0Cuts()
AliDielectronV0Cuts(const char* name, const char* title)
virtual~AliDielectronV0Cuts()
voidTObject::AbstractMethod(const char* method) const
voidAliDielectronVarCuts::AddCut(AliDielectronVarManager::ValueTypes type, Double_t value, Bool_t excludeRange = kFALSE)
voidAliDielectronVarCuts::AddCut(AliDielectronVarManager::ValueTypes type, Double_t min, Double_t max, Bool_t excludeRange = kFALSE)
voidAliDielectronVarCuts::AddCut(AliDielectronVarManager::ValueTypes type, Double_t min, TH1 *const max, Bool_t excludeRange = kFALSE)
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
Bool_tAliDielectronVarCuts::GetCutOnMCtruth() const
AliDielectronVarCuts::CutTypeAliDielectronVarCuts::GetCutType() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual UInt_tAliAnalysisCuts::GetFilterMask() const
virtual const char*TObject::GetIconName() 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
virtual TList*AliAnalysisCuts::GetOutput()
virtual UInt_tAliDielectronVarCuts::GetSelectedCutsMask() const
virtual UInt_tAliVCuts::GetSelectionMask(const TObject*)
virtual TObject*AliAnalysisCuts::GetStatistics(Option_t*) const
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
virtual voidAliAnalysisCuts::Init()
voidInitEvent(AliVTrack* trk)
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_tIsNewEvent(const AliVEvent* ev)
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 voidPrint(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidResetUniqueEventNumbers()
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)
voidAliDielectronVarCuts::SetCutOnMCtruth(Bool_t mc = kTRUE)
voidAliDielectronVarCuts::SetCutType(AliDielectronVarCuts::CutType type)
voidSetDefaultPID(Int_t def, AliDielectronV0Cuts::PIDCutType type = kBoth)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetExcludeTracks(Bool_t exclude)
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)
voidSetPdgCodes(Int_t mother, Int_t negDaughter, Int_t posDaughter)
virtual voidAliAnalysisCuts::SetSelected(Bool_t dec)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetV0finder(AliDielectronV0Cuts::EV0finder finder)
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()

Data Members

public:
enum EV0finder { kAll
kOffline
kOnTheFly
};
enum PIDCutType { kBoth
kAny
};
enum AliDielectronVarCuts::CutType { kAll
kAny
};
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_tfBunchCrossbunch cross number
Bool_tfExcludeTrackscut logic: exclude or include tracks corresponding to a V0 candidate
Int_tfMotherPdgtarget pdg code of the mother
Int_tfNegPdgtarget pdg code of the negative daughter
UInt_tfOrbitorbit number
Int_tfPIDdefault PID usage (see AliDielectronPID)
AliDielectronV0Cuts::PIDCutTypefPIDCutTypeapply PIDcuts to one or both daughter tracks
UInt_tfPeriodperiod number
Int_tfPosPdgtarget pdg code of the positive daughter
TBitsfV0TrackArrarray with booleans where TrackID corresponds to bitnumber
AliDielectronV0Cuts::EV0finderfV0finderwhich v0 finder

Class Charts

Inheritance Chart:
TNamed
AliVCuts
AliAnalysisCuts
AliDielectronVarCuts
AliDielectronV0Cuts

Function documentation

AliDielectronV0Cuts()
 Default costructor

AliDielectronV0Cuts(const char* name, const char* title)
 Named contructor

~AliDielectronV0Cuts()
 Destructor

void InitEvent(AliVTrack* trk)
 Init the V0 candidates

Bool_t IsSelected(TObject* track)
 Make cut decision

Bool_t IsNewEvent(const AliVEvent* ev)
 check weather we process a new event

void Print(Option_t* option = "") const
 Print cuts and the range

AliDielectronV0Cuts()
Bool_t IsSelected(TObject* track)
void SetV0finder(AliDielectronV0Cuts::EV0finder finder)
{fV0finder=finder;}
void SetPdgCodes(Int_t mother, Int_t negDaughter, Int_t posDaughter)
{fMotherPdg=mother; fNegPdg=negDaughter; fPosPdg=posDaughter;}
void SetExcludeTracks(Bool_t exclude)
{fExcludeTracks=exclude;}
void SetDefaultPID(Int_t def, AliDielectronV0Cuts::PIDCutType type = kBoth)
{fPID=def; fPIDCutType=type; }
void ResetUniqueEventNumbers()
AliDielectronV0Cuts & operator=(const AliDielectronV0Cuts& c)