Added LHC10h run list for flow analysis (Giacomo)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSED0Mass.h
CommitLineData
49061176 1#ifndef ALIANALYSISTASKSED0MASS_H
2#define ALIANALYSISTASKSED0MASS_H
3
4/* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
27de2dfb 7/* $Id$ */
8
49061176 9//*************************************************************************
10// Class AliAnalysisTaskSED0Mass
11// AliAnalysisTaskSE for D0 candidates invariant mass histogram
a41f6fad 12// and comparison to MC truth (kinematics stored in the AOD) and cut variables
13// distributions
49061176 14// Authors: A.Dainese, andrea.dainese@ln.infn.it
15// and C.Bianchin, chiara.bianchin@pd.infn.it
16//*************************************************************************
17
18#include <TROOT.h>
19#include <TSystem.h>
20#include <TNtuple.h>
21#include <TH1F.h>
22
23#include "AliAnalysisTaskSE.h"
ea0d8716 24#include "AliRDHFCutsD0toKpi.h"
a96083b9 25#include "AliNormalizationCounter.h"
ea0d8716 26
4e61a020 27class AliAODEvent;
49061176 28
29class AliAnalysisTaskSED0Mass : public AliAnalysisTaskSE
30{
31 public:
32
33 AliAnalysisTaskSED0Mass();
ea0d8716 34 AliAnalysisTaskSED0Mass(const char *name,AliRDHFCutsD0toKpi* cuts);
49061176 35 virtual ~AliAnalysisTaskSED0Mass();
36
37
38 // Implementation of interface methods
39 virtual void UserCreateOutputObjects();
40 virtual void Init();
41 virtual void LocalInit() {Init();}
42 virtual void UserExec(Option_t *option);
43 virtual void Terminate(Option_t *option);
44
feb73eca 45 void SetArray(Int_t type=AliAnalysisTaskSED0Mass::kD0){fArray=type;}
feb73eca 46 enum{kD0,kLS};
ce39f0ac 47
48 void SetReadMC(Bool_t readMC=kFALSE){fReadMC=readMC;}
ea0d8716 49 void SetCutOnDistr(Bool_t cutondistr=kFALSE){fCutOnDistr=cutondistr;}
6b3e3c78 50 void SetUsePid4Distr(Bool_t usepid=kTRUE){fUsePid4Distr=usepid;}
449b1302 51 void SetFillOnlyD0D0bar(Int_t flagfill){fFillOnlyD0D0bar=flagfill;}
d7688946 52 void SetFillVarHists(Bool_t flag) {fFillVarHists=flag;}
a8ce111e 53 void SetSystem(Int_t sys){fSys=sys; if(fSys==1) SetFillVarHists(kFALSE);}
2b35ac47 54 void SetRejectSDDClusters(Bool_t flag) { fIsRejectSDDClusters=flag; }
6b3e3c78 55
56 Bool_t GetCutOnDistr() const {return fCutOnDistr;}
57 Bool_t GetUsePid4Distr() const {return fUsePid4Distr;}
449b1302 58 Int_t GetFillOnlyD0D0bar() const {return fFillOnlyD0D0bar;}
a8ce111e 59 Int_t GetSystem() const {return fSys;}
2b35ac47 60 Bool_t GetRejectSDDClusters() { return fIsRejectSDDClusters; }
449b1302 61
49061176 62 private:
63
64 AliAnalysisTaskSED0Mass(const AliAnalysisTaskSED0Mass &source);
65 AliAnalysisTaskSED0Mass& operator=(const AliAnalysisTaskSED0Mass& source);
d7688946 66 void FillMassHists(AliAODRecoDecayHF2Prong *part, TClonesArray *arrMC, AliRDHFCutsD0toKpi *cuts, TList *listout);
4e61a020 67 void FillVarHists(AliAODEvent *aodev,AliAODRecoDecayHF2Prong *part, TClonesArray *arrMC, AliRDHFCutsD0toKpi *cuts, TList *listout);
d7688946 68 AliAODVertex* GetPrimaryVtxSkipped(AliAODEvent *aodev);
4e61a020 69
6b3e3c78 70 TList *fOutputMass; //! list send on output slot 1
71 TList *fDistr; //! list send on output slot 2
72 TH1F *fNentries; //! histogram with number of events on output slot 3
09f85846 73 AliRDHFCutsD0toKpi *fCuts; // Cuts - sent to output slot 4
6b3e3c78 74 Int_t fArray; // can be D0 or Like Sign candidates
75 Bool_t fReadMC; // flag for MC array: kTRUE = read it, kFALSE = do not read it
76 Bool_t fCutOnDistr; // flag to decide if apply cut also on distributions: 0 no cuts, 1 looser cuts, 2 tighter cuts
77 Bool_t fUsePid4Distr; // flag to use the particle identification to fill the signal histograms of distributions. It has effect only with fReadMC=kFALSE
a96083b9 78 AliNormalizationCounter *fCounter;//!AliNormalizationCounter on output slot 6
6b3e3c78 79 Int_t fNPtBins; // number of pt bins
6b3e3c78 80 Double_t fLsNormalization; // normalization
449b1302 81 Int_t fFillOnlyD0D0bar; // flag to fill mass histogram with D0/D0bar only (0 = fill with both, 1 = fill with D0 only, 2 = fill with D0bar only)
d7688946 82 TObjArray fDaughterTracks; // keeps the daughter tracks
83 Int_t fIsSelectedCandidate; // selection outcome
84 Bool_t fFillVarHists; // flag to enable filling variable histos
a8ce111e 85 Int_t fSys; // fSys=0 -> p-p; fSys=1 ->PbPb (in this case fFillVarHists=kFALSE by default: set it to kTRUE *after* if needed)
2b35ac47 86 Bool_t fIsRejectSDDClusters; // flag to reject events with SDD clusters
6b3e3c78 87
2b35ac47 88 ClassDef(AliAnalysisTaskSED0Mass,15); // AliAnalysisTaskSE for D0->Kpi
49061176 89};
90
91#endif
87020237 92