]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/charmFlow/AliAnalysisTaskFlowD2H.h
Code reworking to analize ESD and AOD (H.Qvigstad)
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / charmFlow / AliAnalysisTaskFlowD2H.h
1 /* Copyright(c) 1998-1999, ALICExperiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3 /* $Id$ */
4
5 #ifndef ALIANALYSISTASKFLOWD2H_H
6 #define ALIANALYSISTASKFLOWD2H_H
7
8 #include "AliAnalysisTaskSE.h"
9
10 //==============================================================================
11 // FlowD2H main task:
12 // >> Make flowEvent with RPcuts and POIcuts given in constructor and passes it
13 //    to the daughter tasks.
14 // >> The POIcuts are polymorphic based on the AliRDHFCuts class allowing the 
15 //    use of all charmed candidates reconstructed in the central barrel.
16 // Author: Carlos Perez (cperez@cern.ch)
17 //==============================================================================
18
19 class AliAODEvent;
20 class AliRDHFCuts;
21 class AliRDHFCutsD0toKpi;
22 class AliFlowEventCuts;
23 class AliFlowEvent;
24 class AliFlowCandidateTrack;
25 class AliFlowTrackCuts;
26 class TList;
27 class TH1D;
28
29 class AliAnalysisTaskFlowD2H : public AliAnalysisTaskSE {
30   public:
31     AliAnalysisTaskFlowD2H();
32     AliAnalysisTaskFlowD2H( const Char_t *name, 
33                             AliFlowTrackCuts *cutsTPC,
34                             AliFlowTrackCuts *cutsVZE,
35                             AliRDHFCuts *cutsPOIs, 
36                             Int_t specie );
37     void SetDebug() {fDebugV2 = true;}
38     void SetSwapAsumption() {fSwap = true;}
39     virtual ~AliAnalysisTaskFlowD2H();
40     virtual void UserCreateOutputObjects();
41     virtual void UserExec(Option_t *);
42     virtual void Terminate(Option_t *);
43     void SetCommonConstants(Int_t massBins, Double_t minMass, Double_t maxMass, Int_t ptWidth);
44
45   private:
46     AliAnalysisTaskFlowD2H(const AliAnalysisTaskFlowD2H& analysisTask);
47     AliAnalysisTaskFlowD2H& operator=(const AliAnalysisTaskFlowD2H& analysisTask);
48     void AddHistograms();
49     void FillD0toKpi( const AliAODEvent *aod );
50     void FillD0toKpipipi( const AliAODEvent *aod );
51     void FillDStartoKpipi( const AliAODEvent *aod );
52     void FillDplustoKpipi( const AliAODEvent *aod );
53     void FillDstoKKpi( const AliAODEvent *aod );
54     void FillJpsitoee( const AliAODEvent *aod );
55     void FillLctoV0( const AliAODEvent *aod );
56     void FillLctopKpi( const AliAODEvent *aod );
57     void MakeTrack( Double_t mass, Double_t pt,
58                     Double_t phi, Double_t eta,
59                     Int_t nDaughters, const Int_t *iID );
60
61     AliFlowEvent *fTPCEvent; //!
62     AliFlowEvent *fVZEEvent; //!
63     AliFlowTrackCuts *fCutsTPC; 
64     AliFlowTrackCuts *fCutsVZE; 
65     AliFlowTrackCuts *fNoPOIs; 
66
67     AliRDHFCuts *fCutsPOI; // cuts for POIs
68     Int_t  fSource; // AliRDHFCuts::ESele
69     Bool_t fDebugV2; // fully talkative task
70     Bool_t fSwap;   // swap assumption (for neutral)
71
72     Int_t fMassBins; // configures mass bins for the analysis
73     Double_t fMinMass; // configures mass range for the analysis
74     Double_t fMaxMass; // configures mass range for the analysis
75     Int_t fPtBinWidth; // configures pt bin width for the analysis
76
77     TList *fHList; //! List for histos
78     TH1D *fEvent;  // Event counter
79     TH1D *fCC;     // CC histogram
80     TH1D *fRFPMTPC; // Multiplicity RFPTPC
81     TH1D *fRFPPhiTPC; // Phi RFPTPC
82
83     TObjArray *fCandidates; // Array of selected candidates
84
85   ClassDef(AliAnalysisTaskFlowD2H, 5);
86 };
87
88 #endif