ROOT logo
AliRoot » PWGHF » VERTEXINGHF » AliAnalysisTaskSECharmFraction

class AliAnalysisTaskSECharmFraction: public AliAnalysisTaskSE


 Class AliAnalysisTaskSECharmFraction
 AliAnalysisTaskSE for the extraction of the fraction of prompt charm
 using the charm hadron impact parameter to the primary vertex

 Author: Andrea Rossi, andrea.rossi@pd.infn.it

Function Members (Methods)

public:
AliAnalysisTaskSECharmFraction()
AliAnalysisTaskSECharmFraction(const char* name)
AliAnalysisTaskSECharmFraction(const char* name, AliRDHFCutsD0toKpi* cutsA, AliRDHFCutsD0toKpi* cutsB)
virtual~AliAnalysisTaskSECharmFraction()
virtual voidTTask::Abort()MENU
voidTObject::AbstractMethod(const char* method) const
virtual voidTTask::Add(TTask* task)
virtual voidAliAnalysisTaskSE::AddAODBranch(const char* cname, void* addobj, const char* fname = "")
virtual AliAODEvent*AliAnalysisTaskSE::AODEvent() const
virtual voidTObject::AppendPad(Option_t* option = "")
Bool_tAliAnalysisTask::AreSlotsConnected()
virtual voidTTask::Browse(TBrowser* b)
Bool_tAliAnalysisTask::CheckCircularDeps()
voidCheckInvMassD0(AliAODRecoDecayHF2Prong* d, Double_t& invMassD0, Double_t& invMassD0bar, Bool_t& isPeakD0, Bool_t& isPeakD0bar, Bool_t& isSideBandD0, Bool_t& isSideBandD0bar)
voidAliAnalysisTask::CheckNotify(Bool_t init = kFALSE)
Int_tCheckOrigin(const TClonesArray* arrayMC, const AliAODMCParticle* mcPartCandidate) const
virtual Bool_tAliAnalysisTask::CheckOwnership() const
virtual Bool_tAliAnalysisTask::CheckPostData() const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTTask::CleanTasks()
virtual voidTTask::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
Bool_tAliAnalysisTask::ConnectInput(Int_t islot, AliAnalysisDataContainer* cont)
virtual voidAliAnalysisTaskSE::ConnectInputData(Option_t* option = "")
Bool_tAliAnalysisTask::ConnectOutput(Int_t islot, AliAnalysisDataContainer* cont)
AliAODRecoDecayHF*ConstructFakeTrueSecVtx(const AliAODMCParticle* b1, const AliAODMCParticle* b2, const AliAODMCParticle* mum, Double_t* primaryVtxTrue)
virtual voidTTask::Continue()MENU
virtual voidTNamed::Copy(TObject& named) const
virtual voidAliAnalysisTaskSE::CreateOutputObjects()
virtual const char*AliAnalysisTaskSE::CurrentFileName()
virtual Int_tAliAnalysisTaskSE::DebugLevel() 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 Long64_tAliAnalysisTaskSE::Entry() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual AliESDfriend*AliAnalysisTaskSE::ESDfriend() const
virtual const AliEventTag*AliAnalysisTaskSE::EventTag() const
virtual voidAliAnalysisTaskSE::Exec(Option_t* option)
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 voidTTask::ExecuteTask(Option_t* option = "0")MENU
virtual voidTTask::ExecuteTasks(Option_t* option)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
voidFillAziHistos(AliAODRecoDecayHF2Prong* d, TList*& list, Int_t ptbin, Double_t* azilist, Int_t* trkIDlist, Int_t nprim, Int_t okD0, Int_t okD0bar, Bool_t isPeakD0, Bool_t isPeakD0bar, Bool_t isSideBandD0, Bool_t isSideBandD0bar) const
Bool_tFillAziList(AliAODEvent* aod, Double_t* azilist, Int_t* trkIDlist, Int_t& nprim) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidAliAnalysisTask::FinishTaskOutput()
Int_tGetAnalysisLevel()
voidAliAnalysisTask::GetBranches(const char* type, TString& result) const
Int_tTTask::GetBreakin() const
Int_tTTask::GetBreakout() const
Bool_tGetCheckBitD0flag()
virtual UInt_tAliAnalysisTaskSE::GetCollisionCandidates() const
AliAODRecoDecayHF*GetD0toKPiSignalType(const AliAODRecoDecayHF2Prong* d, TClonesArray* arrayMC, Int_t& signaltype, Double_t& massMumTrue, Double_t* primaryVtx, Int_t& isD0D0bar)
AliAODRecoDecayHF*GetD0toKPiSignalTypeObsolete(const AliAODRecoDecayHF2Prong* d, TClonesArray* arrayMC, Int_t& signaltype, Double_t& massMumTrue, Double_t* primaryVtx)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
TObject*AliAnalysisTask::GetInputData(Int_t islot) const
AliAnalysisDataSlot*AliAnalysisTask::GetInputSlot(Int_t islot) const
TClass*AliAnalysisTask::GetInputType(Int_t islot) const
Bool_tGetIsSplitMassD0D0bar()
TList*TTask::GetListOfTasks() const
AliRDHFCutsD0toKpi*GetLooseCut()
virtual const char*TNamed::GetName() const
Int_tAliAnalysisTask::GetNinputs() const
Int_tGetNMaxTrForVtx()
Int_tAliAnalysisTask::GetNoutputs() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TObject*AliAnalysisTask::GetOutputData(Int_t islot) const
AliAnalysisDataSlot*AliAnalysisTask::GetOutputSlot(Int_t islot) const
TClass*AliAnalysisTask::GetOutputType(Int_t islot) const
AliAODVertex*GetPrimaryVtxSkipped(AliAODEvent* aodev, AliAODRecoDecayHF2Prong* d)
TObject*AliAnalysisTask::GetPublishedData() const
virtual TList*AliAnalysisTaskSE::GetQAHistos() const
AliRDHFCutsD0toKpi*GetTightCut()
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
Bool_tAliAnalysisTask::HasBranches() const
Bool_tAliAnalysisTask::HasExecuted() 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
virtual voidInit()
virtual AliVEvent*AliAnalysisTaskSE::InputEvent() const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tTTask::IsActive() const
Bool_tAliAnalysisTask::IsChecked() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tAliAnalysisTaskSE::IsEventInBinZero()
virtual Bool_tTTask::IsFolder() const
Bool_tAliAnalysisTask::IsInitialized() const
Bool_tTObject::IsOnHeap() const
Bool_tAliAnalysisTask::IsOutputReady(Int_t islot) const
Bool_tAliAnalysisTask::IsPostEventLoop() const
Bool_tAliAnalysisTask::IsReady() const
virtual Bool_tTNamed::IsSortable() const
virtual Bool_tAliAnalysisTaskSE::IsStandardAOD() const
Bool_tAliAnalysisTask::IsUsed() const
Bool_tAliAnalysisTask::IsZombie() const
voidAliAnalysisTaskSE::LoadBranches() const
virtual voidLocalInit()
virtual voidTTask::ls(Option_t* option = "*") constMENU
voidTObject::MayNotUse(const char* method) const
virtual AliMCEvent*AliAnalysisTaskSE::MCEvent() const
virtual Bool_tAliAnalysisTaskSE::Notify()
virtual Bool_tAliAnalysisTask::NotifyBinChange()
virtual voidAliAnalysisTaskSE::NotifyRun()
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 TTree*AliAnalysisTaskSE::OutputTree() const
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidAliAnalysisTask::PrintContainers(Option_t* option = "all", Int_t indent = 0) const
virtual voidAliAnalysisTask::PrintTask(Option_t* option = "all", Int_t indent = 0) const
Bool_tAliAnalysisTask::ProducersTouched() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidAliAnalysisTask::Reset()
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 voidAliAnalysisTaskSE::SelectCollisionCandidates(UInt_t offlineTriggerMask = AliVEvent::kMB)
voidSetAcceptanceCut(const Double_t eta = 0.8, const Double_t nITSpoints = 5., const Double_t nSPDpoints = 2.)
voidTTask::SetActive(Bool_t active = kTRUE)TOGGLE
voidSetAnalysisLevel(Int_t level)
voidSetAnalyzeLikeSign(Bool_t likesign = kFALSE)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidAliAnalysisTask::SetBranches(const char* names)
voidTTask::SetBreakin(Int_t breakin = 1)TOGGLE
voidTTask::SetBreakout(Int_t breakout = 1)TOGGLE
voidSetCheckBitD0flag(Bool_t checkfl)
voidAliAnalysisTask::SetChecked(Bool_t flag = kTRUE)
virtual voidAliAnalysisTaskSE::SetDebugLevel(Int_t level)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetLargeInvMassCut(const Double_t largeInvMassCut = 2.)
voidSetMaxZvtxForSkipEventSelection(Double_t zmax)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNMaxTrForVtx(const Int_t ntrMaxforVtx)
static voidTObject::SetObjectStat(Bool_t stat)
voidAliAnalysisTask::SetPostEventLoop(Bool_t flag = kTRUE)
voidSetPtBins(Int_t nbins, const Float_t* ptbins)
voidSetPtWeightsFromDataPbPb276overLHC12a17a()
voidSetReadMC(Bool_t readMC = kTRUE)
voidSetRejecCandidateMCUpgrade(Bool_t selection)
voidSetSideBandInvMassCut(const Double_t sidebandInvMassCut = 0.054)
voidSetSideBandInvMassWindow(const Double_t sidebandInvMassWindow = 0.108)
voidSetSignalInvMassCut(const Double_t signalInvMassCut = 0.027)
voidSetSkipEventSelection(Bool_t skip)
voidSetSplitMassD0D0bar(Bool_t splitD0D0bar = kTRUE)
Int_tSetStandardCuts()
voidSetStandardMassSelection()
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidAliAnalysisTask::SetUsed(Bool_t flag = kTRUE)
voidSetUseMC(Bool_t useMC)
voidSetUsePID(Bool_t pid)
voidAliAnalysisTask::SetZombie(Bool_t flag = kTRUE)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
Bool_tSpecialSelD0(AliAODRecoDecayHF2Prong* d, Int_t& nusedforVtx)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
virtual voidTerminate(Option_t* option)
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidUserCreateOutputObjects()
virtual voidUserExec(Option_t* option)
virtual voidAliAnalysisTaskSE::UserExecMix(Option_t*)
virtual Bool_tAliAnalysisTaskSE::UserNotify()
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:
voidAliAnalysisTaskSE::ConnectMultiHandler()
voidAliAnalysisTask::DefineInput(Int_t islot, TClass* type)
voidAliAnalysisTask::DefineOutput(Int_t islot, TClass* type)
voidAliAnalysisTaskSE::DisconnectMultiHandler()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidAliAnalysisTask::EnableBranch(Int_t islot, const char* bname) const
char*AliAnalysisTask::GetBranchAddress(Int_t islot, const char* branch) const
voidTObject::MakeZombie()
TFile*AliAnalysisTask::OpenFile(Int_t iout, Option_t* option = "RECREATE") const
Bool_tAliAnalysisTask::PostData(Int_t iout, TObject* data, Option_t* option = "")
Bool_tAliAnalysisTask::SetBranchAddress(Int_t islot, const char* branch, void* address) const
private:
AliAnalysisTaskSECharmFraction(const AliAnalysisTaskSECharmFraction&)
voidFillHistoMCproperties(TClonesArray* arrayMC)
Bool_tFillHistos(AliAODRecoDecayHF2Prong* d, TList*& list, Int_t ptbin, Int_t okD0, Int_t okD0bar, Double_t invMassD0, Double_t invMassD0bar, Bool_t isPeakD0, Bool_t isPeakD0bar, Bool_t isSideBandD0, Bool_t isSideBandD0bar, Double_t massmumtrue, AliAODRecoDecayHF* aodDMC, Double_t* vtxTrue, Int_t isD0D0barMC)
AliAnalysisTaskSECharmFraction&operator=(const AliAnalysisTaskSECharmFraction&)

Data Members

protected:
Bool_tTTask::fActivetrue if task is active
TStringAliAnalysisTask::fBranchNamesList of input branches that need to be loaded for this task
Int_tTTask::fBreakin=1 if a break point set at task extry
Int_tTTask::fBreakout=1 if a break point set at task exit
Int_tAliAnalysisTaskSE::fCurrentRunNumber! Current run number
Int_tAliAnalysisTaskSE::fDebugDebug flag
AliESDfriend*AliAnalysisTaskSE::fESDfriend! ESD friend
Int_tAliAnalysisTaskSE::fEntryCurrent entry in the chain
Bool_tTTask::fHasExecutedTrue if task has executed
TList*AliAnalysisTaskSE::fHistosQA! Output histos for QA
Bool_tAliAnalysisTask::fInitializedTrue if Init() was called
AliVEvent*AliAnalysisTaskSE::fInputEvent! VEvent Input
AliInputEventHandler*AliAnalysisTaskSE::fInputHandler! Input Handler
TObjArray*AliAnalysisTask::fInputsArray of input slots
AliMCEvent*AliAnalysisTaskSE::fMCEvent! MC
AliInputEventHandler*AliAnalysisTaskSE::fMCEventHandler! pointer to MCEventHandler
AliMultiInputEventHandler*AliAnalysisTaskSE::fMultiInputHandler! pointer to multihandler
TStringTNamed::fNameobject identifier
Int_tAliAnalysisTask::fNinputsNumber of inputs
Int_tAliAnalysisTask::fNoutputsNumber of outputs
UInt_tAliAnalysisTaskSE::fOfflineTriggerMaskTask processes collision candidates only
TStringTTask::fOptionOption specified in ExecuteTask
AliAODEvent*AliAnalysisTaskSE::fOutputAOD! AOD out
Bool_t*AliAnalysisTask::fOutputReady[fNoutputs] Flags for output readyness
TObjArray*AliAnalysisTask::fOutputsArray of output slots
TObject*AliAnalysisTask::fPublishedData! published data
Bool_tAliAnalysisTask::fReadyFlag if the task is ready
TList*TTask::fTasksList of Tasks
TStringTNamed::fTitleobject title
TTree*AliAnalysisTaskSE::fTreeAAOD output Tree
static TClonesArray*AliAnalysisTaskSE::fgAODCaloClusters! CaloClusters for replication
static TClonesArray*AliAnalysisTaskSE::fgAODDimuons! Dimuons replication
static AliAODCaloTrigger*AliAnalysisTaskSE::fgAODEMCALTrigger! Emcal Trigger for replication
static AliAODCaloCells*AliAnalysisTaskSE::fgAODEmcalCells! Emcal Cell replication
static TClonesArray*AliAnalysisTaskSE::fgAODFMDClusters! FMDClusters for replication
static AliVHeader*AliAnalysisTaskSE::fgAODHeader! Header for replication
static TClonesArray*AliAnalysisTaskSE::fgAODHmpidRings! HMPID replication
static TClonesArray*AliAnalysisTaskSE::fgAODJets! Jets for replication
static TClonesArray*AliAnalysisTaskSE::fgAODMCParticles! MC Particles for replicatio
static AliAODCaloTrigger*AliAnalysisTaskSE::fgAODPHOSTrigger! Phos Trigger for replication
static TClonesArray*AliAnalysisTaskSE::fgAODPMDClusters! PMDClusters for replication
static AliAODCaloCells*AliAnalysisTaskSE::fgAODPhosCells! Phos Cell replication
static AliAODTracklets*AliAnalysisTaskSE::fgAODTracklets! Tracklets for replication
static TClonesArray*AliAnalysisTaskSE::fgAODTracks! Tracks for replication
static TClonesArray*AliAnalysisTaskSE::fgAODV0s! V0s for replication
static AliAODVZERO*AliAnalysisTaskSE::fgAODVZERO! VZERO for replication
static TClonesArray*AliAnalysisTaskSE::fgAODVertices! Vertices for replication
static TTask*TTask::fgBeginTaskpointer to task initiator
static TTask*TTask::fgBreakPointpointer to current break point
static AliTOFHeader*AliAnalysisTaskSE::fgTOFHeader! TOFHeader for replication
private:
Double_tfAcceptanceCuts[3]array with acceptance cuts
Bool_tfCleanCandOwnVtxflag to switch on/off cleaning of the candidate own vtx
AliNormalizationCounter*fCounter!counter for the normalization
AliRDHFCutsD0toKpi*fCutsLooseLoose cuts object
AliRDHFCutsD0toKpi*fCutsTightVertexer heavy flavour
Int_tfFastAnalysisLevel of analysis speed: default is 1, switch it to 2 to fill the THnSparse
Bool_tfLikeSignFlag to analyse Like Sign array
TH1F*fNentries!histo for #AOD analysed, container 1
Int_tfNtrMaxforVtxN Max acceptable tracks used for vertex (0,1,2)
Bool_tfReadMCFlag To switch on/off access to MC
TH1F*fSignalType!histo for the type of MC signal , container 2
TH1F*fSignalTypeLsCuts!histo for the type of MC signal with loose cuts , container 3
TH1F*fSignalTypeTghCuts!histo for the type of MC signal with tight cuts, container 4
Bool_tfUseMCflag to use or not MC info
AliVertexingHFUtils*fVertUtilvertexing HF Util
TF1*fWeightPtfunction with pt weights used only for MC histos for reflections and signal mass shape
Double_tfZvtxUpgrcut value on max zvtx used ONLY if fskipEventSelection is kTRUE
Bool_tfcheckD0BitFlag to check the D0 bit flag
Double_tflargeInvMassCutinvariant mass cut to accept all inv mass window
TList*flistLsCutsBack!TList for background with loose cuts, container 12
TList*flistLsCutsFromB!TList for D from B or D from Dstar from B with loose cuts, container 13
TList*flistLsCutsFromDstar!TList for D from Dstar with loose cuts, container 14
TList*flistLsCutsOther!TList for others with loose cuts, container 15
TList*flistLsCutsSignal!TList for signal (D prompt) with loose cuts, container 11
TList*flistMCproperties!TLists for MC properties of D0 w.r.t. B mesons and c quarks cntainer 5
TList*flistNoCutsBack!TList for background with nocuts, container 7
TList*flistNoCutsFromB!TList for D from B or D from Dstar from Bwith nocuts, container 8
TList*flistNoCutsFromDstar!TList for D from Dstar with nocuts, container 9
TList*flistNoCutsOther!TList for others with nocuts, container 10
TList*flistNoCutsSignal!TList for signal (D prompt) with nocuts, container 6
TList*flistTghCutsBack!TList for backgrnd with tight cuts, container 17
TList*flistTghCutsFromB!TList for D from B or D from Dstar from Bwith tight cuts, container 18
TList*flistTghCutsFromDstar!TList for D from Dstar Dstar with tight cuts, container 19
TList*flistTghCutsOther!TList for others with tight cuts, container 20
TList*flistTghCutsSignal!TList for signal (D prompt) with tight cuts, container 16
Double_tfmD0PDGMC D0 mass
Int_tfnbinsNumber of pt bins
Double_tfptAll!Sum of pt of the reco tracks
Double_tfptAllSq!Sum of the square of the pt of the reco tracks
Double_tfptMax[3]!Three largest track pt in the event
Float_t*fptbins[fnbins] ptbins
Bool_tfselectForUpgradeswitch to reject candidates from HIJING and not Pythia for upgrade studies
Double_tfsidebandInvMassCutinvariant mass cut to define side band region lower limit
Double_tfsidebandInvMassWindowinvariant mass cut to define side band region width
Double_tfsignalInvMassCutinvariant mass cut to define signal region
Bool_tfskipEventSelectionswitch to skip event selection (for upgrade studies)
Bool_tfsplitMassD0D0barFlag to use two shistos for D0 and D0bar invariant masses
Bool_tfusePIDFlag to use PID

Class Charts

Inheritance Chart:
TTask
AliAnalysisTask
AliAnalysisTaskSE
AliAnalysisTaskSECharmFraction

Function documentation

AliAnalysisTaskSECharmFraction()
Default constructor
AliAnalysisTaskSECharmFraction(const char* name)
 Constructor
AliAnalysisTaskSECharmFraction(const char* name, AliRDHFCutsD0toKpi* cutsA, AliRDHFCutsD0toKpi* cutsB)
 Constructor
~AliAnalysisTaskSECharmFraction()
void Init()
 Initialization
void UserCreateOutputObjects()
 Create histograms
 Called once
void UserExec(Option_t* option)
 Execute analysis for current event:
 heavy flavor candidates association to MC truth
Int_t SetStandardCuts()
 creating cuts for D0 -> Kpi

void CheckInvMassD0(AliAODRecoDecayHF2Prong* d, Double_t& invMassD0, Double_t& invMassD0bar, Bool_t& isPeakD0, Bool_t& isPeakD0bar, Bool_t& isSideBandD0, Bool_t& isSideBandD0bar)
Check wheter the candidate inv. mass is compatible with signal or sideband inv. mass selection
AliAODRecoDecayHF* GetD0toKPiSignalType(const AliAODRecoDecayHF2Prong* d, TClonesArray* arrayMC, Int_t& signaltype, Double_t& massMumTrue, Double_t* primaryVtx, Int_t& isD0D0bar)
THIS METHOD CHECK THE TYPE OF SIGNAL/BACKGROUND THE CANDIDATE IS.
  IF (!AND ONLY IF) THE TWO DAUGHTERS COME FROM A COMMONE MOTHER A FAKE TRUE SECONDARY VERTEX IS CONSTRUCTED (aodDMC)

 THE FOLLOWING SCHEME IS ADOPTED: signaltype is set to
  1:signal (D0 prompt); 2: signal D0 from Dstar; 3: D0 fromB 4: D0 from Dstar fromB
 then background categories: -1: one or both daughters is a fake track
                             5: both daughters come from a D meson != D0
                             6: both daughters come from a D0->4prongs
                             7: both daughetrs are primaries
                             8: generic background (can include one of the previous if desired)
                             9: daughters out of acceptance
                            10: pathologic cases (not clear)
                            11: end of the method without output
                            12: different result than MatchToMC method
Int_t CheckOrigin(const TClonesArray* arrayMC, const AliAODMCParticle* mcPartCandidate) const
 checking whether the mother of the particles come from a charm or a bottom quark

AliAODRecoDecayHF* GetD0toKPiSignalTypeObsolete(const AliAODRecoDecayHF2Prong* d, TClonesArray* arrayMC, Int_t& signaltype, Double_t& massMumTrue, Double_t* primaryVtx)
THIS METHOD CHECK THE TYPE OF SIGNAL/BACKGROUND THE CANDIDATE IS.
  IF (!AND ONLY IF) THE TWO DAUGHTERS COME FROM A COMMONE MOTHER A FAKE TRUE SECONDARY VERTEX IS CONSTRUCTED (aodDMC)

 THE FOLLOWING SCHEME IS ADOPTED: signaltype is set to
  1:signal (D0 prompt); 2: signal D0 from Dstar; 3: D0 fromB 4: D0 from Dstar fromB
 then background categories: -1: one or both daughters is a fake track
                             5: both daughters come from a D meson != D0
                             6: both daughters come from a D0->4prongs
                             7: both daughetrs are primaries
                             8: generic background (can include one of the previous if desired)
                             9: daughters out of acceptance
                            10: pathologic cases (not clear)
                            11: end of the method without output
                            12: different result than MatchToMC method
AliAODRecoDecayHF* ConstructFakeTrueSecVtx(const AliAODMCParticle* b1, const AliAODMCParticle* b2, const AliAODMCParticle* mum, Double_t* primaryVtxTrue)
 CONSTRUCT A FAKE TRUE SECONDARY VERTEX (aodDMC)
NOTE THAT ONLY ONE MOTHER IS CONSIDERED: THE METHOD REQUIRES THE DAUGHTERS COME FROM THE SAME MOTHER 
Bool_t FillHistos(AliAODRecoDecayHF2Prong* d, TList*& list, Int_t ptbin, Int_t okD0, Int_t okD0bar, Double_t invMassD0, Double_t invMassD0bar, Bool_t isPeakD0, Bool_t isPeakD0bar, Bool_t isSideBandD0, Bool_t isSideBandD0bar, Double_t massmumtrue, AliAODRecoDecayHF* aodDMC, Double_t* vtxTrue, Int_t isD0D0barMC)
void FillHistoMCproperties(TClonesArray* arrayMC)
            HERE LOOK AT global properties of D0 mesons, c quarks and B


void SetPtBins(Int_t nbins, const Float_t* ptbins)
void SetStandardMassSelection()
SET THE DEFAULT VALUES FOR INVARIANT MASS SELECTION
Bool_t SpecialSelD0(AliAODRecoDecayHF2Prong* d, Int_t& nusedforVtx)
AliAODVertex* GetPrimaryVtxSkipped(AliAODEvent* aodev, AliAODRecoDecayHF2Prong* d)
Calculate the primary vertex w/o the daughter tracks of the candidate
Bool_t FillAziList(AliAODEvent* aod, Double_t* azilist, Int_t* trkIDlist, Int_t& nprim) const
void FillAziHistos(AliAODRecoDecayHF2Prong* d, TList*& list, Int_t ptbin, Double_t* azilist, Int_t* trkIDlist, Int_t nprim, Int_t okD0, Int_t okD0bar, Bool_t isPeakD0, Bool_t isPeakD0bar, Bool_t isSideBandD0, Bool_t isSideBandD0bar) const
void SetPtWeightsFromDataPbPb276overLHC12a17a()
 Method cp paste from AliCFTaskVertexingHF
 ad-hoc weight function from ratio of
 D0 pt spectra in PbPb 2011 0-10% centrality and
 pt spectra from MC production LHC12a17a (PYTHIA Perugia0 with pthard bins)
void Terminate(Option_t* option)
TERMINATE METHOD: NOTHING TO DO
AliAnalysisTaskSECharmFraction()
void LocalInit()
{Init();}
void SetReadMC(Bool_t readMC = kTRUE)
{fReadMC=readMC;}
void SetSplitMassD0D0bar(Bool_t splitD0D0bar = kTRUE)
{fsplitMassD0D0bar=splitD0D0bar;}
Bool_t GetIsSplitMassD0D0bar()
void SetUsePID(Bool_t pid)
{fusePID=pid;}
void SetAnalyzeLikeSign(Bool_t likesign = kFALSE)
{fLikeSign=likesign;}
void SetNMaxTrForVtx(const Int_t ntrMaxforVtx)
{fNtrMaxforVtx=ntrMaxforVtx;}
Int_t GetNMaxTrForVtx()
{return fNtrMaxforVtx;}
void SetSignalInvMassCut(const Double_t signalInvMassCut = 0.027)
{fsignalInvMassCut=signalInvMassCut;}
void SetLargeInvMassCut(const Double_t largeInvMassCut = 2.)
{flargeInvMassCut=largeInvMassCut;}
void SetSideBandInvMassCut(const Double_t sidebandInvMassCut = 0.054)
void SetSideBandInvMassWindow(const Double_t sidebandInvMassWindow = 0.108)
void SetAcceptanceCut(const Double_t eta = 0.8, const Double_t nITSpoints = 5., const Double_t nSPDpoints = 2.)
{fAcceptanceCuts[0]=eta;fAcceptanceCuts[1]=nITSpoints;fAcceptanceCuts[2]=nSPDpoints;}
void SetAnalysisLevel(Int_t level)
{fFastAnalysis=level;}
void SetCheckBitD0flag(Bool_t checkfl)
{fcheckD0Bit=checkfl;}
Bool_t GetCheckBitD0flag()
{return fcheckD0Bit;}
Int_t GetAnalysisLevel()
{return fFastAnalysis;}
void SetUseMC(Bool_t useMC)
{fUseMC=useMC;}
void SetRejecCandidateMCUpgrade(Bool_t selection)
{fselectForUpgrade=selection;}
void SetSkipEventSelection(Bool_t skip)
void SetMaxZvtxForSkipEventSelection(Double_t zmax)
{fZvtxUpgr=zmax;}
AliRDHFCutsD0toKpi* GetLooseCut()
 ######### THE FOLLOWING IS FOR FURTHER IMPLEMENATION ############
     Int_t GetPtBin(Double_t pt)const;
     void SetD0Cuts(Int_t ptbin,Double_t &*d0cutsLoose,Double_t &*d0cutsTight);

     //  void InvMassSelection();

     void SetCheckMC(Bool_t checkMC){fcheckMC=checkMC;}
     void SetCheckMC_D0(Bool_t check_D0){fcheckMCD0=check_D0;}
     void SetCheckMC_2prongs(Bool_t check2prongs){fcheckMC2prongs=check2prongs;}
     void SetCheckMC_prompt(Bool_t checkprompt){fcheckMCprompt=checkprompt;}
     void SetCheckMC_fromB(Bool_t checkfromB){fcheckMCfromB=checkfromB;}
     void SetCheckMC_fromDstar(Bool_t skipD0star){fSkipD0star=skipD0star;}
     void SetUseCuts(Bool_t usecuts){fD0usecuts=usecuts;}
     void SetSideBands(Double_t sideband){fSideBands=sideband;}
     void SetStudyPureBackground(Bool_t back){fStudyPureBackground=back;}

AliRDHFCutsD0toKpi* GetTightCut()
AliAnalysisTaskSECharmFraction& operator=(const AliAnalysisTaskSECharmFraction& )