#ifndef ALIANALYSISTASKCHECKPERFORMANCECASCADEPBPB_H #define ALIANALYSISTASKCHECKPERFORMANCECASCADEPBPB_H /* See cxx source for full Copyright notice */ // //----------------------------------------------------------------- // // AliAnalysisTaskCheckPerformanceCascadePbPb class // // This task is for a performance study of cascade identification. // // It works with MC info and ESD. // // Use with AOD tree = under development // // Origin : A.Maire Jan2010, antonin.maire@ires.in2p3.fr // // Modified : M.Nicassio Feb2011, maria.nicassio@ba.infn.it // //----------------------------------------------------------------- class TList; class TH1F; class TH2F; class AliESDEvent; class AliESDpid; class AliESDtrackCuts; class AliCFContainer; #include "AliAnalysisTaskSE.h" class AliAnalysisTaskCheckPerformanceCascadePbPb : public AliAnalysisTaskSE { public: AliAnalysisTaskCheckPerformanceCascadePbPb(); AliAnalysisTaskCheckPerformanceCascadePbPb(const char *name ); virtual ~AliAnalysisTaskCheckPerformanceCascadePbPb(); //virtual void ConnectInputData(Option_t *); virtual void UserCreateOutputObjects(); virtual void UserExec(Option_t *option); virtual Int_t DoESDTrackWithTPCrefitMultiplicity(const AliESDEvent *lESDevent); virtual void Terminate(Option_t *); void SetDebugLevelCascade(Int_t lDebugCascade = 0) {fDebugCascade = lDebugCascade;} void SetCollidingSystems (Short_t collidingSystems = 0) {fCollidingSystems = collidingSystems;} void SetAnalysisType (const char* analysisType = "ESD") { fAnalysisType = analysisType;} void SetRelaunchV0CascVertexers (Bool_t rerunV0CascVertexers = 0 ) { fkRerunV0CascVertexers = rerunV0CascVertexers; } void SetQualityCutZprimVtxPos (Bool_t qualityCutZprimVtxPos = kTRUE) { fkQualityCutZprimVtxPos = qualityCutZprimVtxPos; } void SetRejectEventPileUp (Bool_t rejectPileUp = kTRUE) { fkRejectEventPileUp = rejectPileUp; } void SetQualityCutNoTPConlyPrimVtx (Bool_t qualityCutNoTPConlyPrimVtx = kTRUE) { fkQualityCutNoTPConlyPrimVtx = qualityCutNoTPConlyPrimVtx;} void SetQualityCutTPCrefit (Bool_t qualityCutTPCrefit = kTRUE) { fkQualityCutTPCrefit = qualityCutTPCrefit; } void SetQualityCut80TPCcls (Bool_t qualityCut80TPCcls = kTRUE) { fkQualityCut80TPCcls = qualityCut80TPCcls; } void SetAlephParamFor1PadTPCCluster(Bool_t onePadTPCCluster = kTRUE) { fkIsDataRecoWith1PadTPCCluster = onePadTPCCluster ; } void SetExtraSelections (Bool_t extraSelections = 0 ) { fkExtraSelections = extraSelections; } void SetUseCFCont (Bool_t usecfcont = 0 ) { fUseCFCont = usecfcont; } void SetCentralityLowLim (Float_t centrlowlim = 0. ) { fCentrLowLim = centrlowlim; } void SetCentralityUpLim (Float_t centruplim = 100. ) { fCentrUpLim = centruplim; } void SetCentralityEst (TString centrest = "V0M") { fCentrEstimator = centrest; } void SetVertexRange (Float_t vtxrange = 0. ) { fVtxRange = vtxrange; } void SetApplyAccCut (Bool_t acccut = kFALSE) { fApplyAccCut = acccut;} private: // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ... // your data member object is created on the worker nodes and streaming is not needed. // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14 Int_t fDebugCascade; // Denug Flag for this task devoted to cascade TString fAnalysisType; // "ESD" or "AOD" analysis type TString fTriggerMaskType; // type of trigger to use in UserExec : AliVEvent::kMB or kHighMult ? Short_t fCollidingSystems; // 0 = pp collisions or 1 = AA collisions AliESDpid *fESDpid; // Tool data member to manage the TPC Bethe-Bloch info AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition //TPaveText *fPaveTextBookKeeping; // TString to store all the relevant info necessary for book keeping (v0 cuts, cascade cuts, quality cuts, ...) Bool_t fkRerunV0CascVertexers; // Boolean : kTRUE = relaunch both V0 + Cascade vertexers Bool_t fkQualityCutZprimVtxPos; // Boolean : kTRUE = cut on the prim.vtx z-position Bool_t fkRejectEventPileUp; // Boolean : kTRUE = enable the rejection of events tagged as pile-up by SPD (AliESDEvent::IsPileupFromSPD) Bool_t fkQualityCutNoTPConlyPrimVtx; // Boolean : kTRUE = prim vtx should be SPD or Tracking vertex Bool_t fkQualityCutTPCrefit; // Boolean : kTRUE = ask for TPCrefit for the 3 daughter tracks Bool_t fkQualityCut80TPCcls; // Boolean : kTRUE = ask for 80 TPC clusters for each daughter track Bool_t fkIsDataRecoWith1PadTPCCluster; // Boolean : kTRUE = data reconstructed with the "one pad cluster" algo in TPC (important for the ALEPH param for TPC PID) Bool_t fkExtraSelections; // Boolean : kTRUE = apply tighter selections, before starting the analysis Bool_t fUseCFCont; // enables usage of CF containers Float_t fCentrLowLim; // Lower limit for centrality percentile selection Float_t fCentrUpLim; // Upper limit for centrality percentile selection TString fCentrEstimator; // String for the centrality estimator Float_t fVtxRange; // to select events with |zvtx|