]>
Commit | Line | Data |
---|---|---|
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 TList; | |
20 | class TH2D; | |
21 | class TProfile; | |
22 | ||
23 | class AliAODEvent; | |
24 | ||
25 | class AliFlowEvent; | |
26 | class AliFlowCandidateTrack; | |
27 | class AliFlowTrackCuts; | |
28 | ||
29 | class AliRDHFCuts; | |
30 | class AliRDHFCutsD0toKpi; | |
31 | ||
32 | class AliAnalysisTaskFlowD2H : public AliAnalysisTaskSE { | |
33 | public: | |
34 | AliAnalysisTaskFlowD2H(); | |
35 | AliAnalysisTaskFlowD2H( const Char_t *name, AliFlowTrackCuts *cutsRPs, | |
36 | AliRDHFCuts *cutsPOIs, Int_t specie ); | |
37 | void SetDebug() {fDebugV2 = true;} | |
38 | void SetPOIEtaRange( Double_t minEta, Double_t maxEta ) | |
39 | { fPOIEta[0] = minEta; fPOIEta[1] = maxEta; } | |
40 | void SetFlowEtaRangeAB( Double_t minA, Double_t maxA, Double_t minB, Double_t maxB ) | |
41 | { fFlowEta[0] = minA; fFlowEta[1] = maxA; | |
42 | fFlowEta[2] = minB; fFlowEta[3] = maxB; } | |
43 | void SetFlowPtRange( Int_t minPt, Int_t maxPt ) | |
44 | { fFlowPts[0] = minPt; fFlowPts[1] = maxPt; } | |
45 | void SetFlowBandRange( Int_t band, Double_t minMass, Double_t maxMass ) | |
46 | { fFlowBands[0][band] = minMass; | |
47 | fFlowBands[1][band] = maxMass; } //TODO | |
48 | virtual ~AliAnalysisTaskFlowD2H(); | |
49 | virtual void UserCreateOutputObjects(); | |
50 | virtual void UserExec(Option_t *); | |
51 | virtual void Terminate(Option_t *); | |
52 | virtual void NotifyRun(); | |
53 | ||
54 | private: | |
55 | AliAnalysisTaskFlowD2H(const AliAnalysisTaskFlowD2H& analysisTask); | |
56 | AliAnalysisTaskFlowD2H& operator=(const AliAnalysisTaskFlowD2H& analysisTask); | |
57 | void AddHistograms(); | |
58 | void FillD0toKpi( AliAODEvent *aod, AliFlowEvent *mb[5]); | |
59 | void FillD0toKpipipi( AliAODEvent *aod, AliFlowEvent *mb[5]); | |
60 | void FillDStartoKpipi( const AliAODEvent *aod, AliFlowEvent *mb[5]); | |
61 | void FillDplustoKpipi( const AliAODEvent *aod, AliFlowEvent *mb[5]); | |
62 | void FillDstoKKpi( AliAODEvent *aod, AliFlowEvent *mb[5]); | |
63 | void FillJpsitoee( AliAODEvent *aod, AliFlowEvent *mb[5]); | |
64 | void FillLctoV0( AliAODEvent *aod, AliFlowEvent *mb[5]); | |
65 | void FillLctopKpi( AliAODEvent *aod, AliFlowEvent *mb[5]); | |
66 | AliFlowCandidateTrack* MakeTrack( Double_t mass, Double_t pt, | |
67 | Double_t phi, Double_t eta, | |
68 | Int_t nDaughters, const Int_t *iID ); | |
69 | AliFlowTrackCuts *fCutsRP; // cuts for RPs | |
70 | AliRDHFCuts *fCutsPOI; // cuts for POIs | |
71 | Int_t fSource; // AliRDHFCuts::ESele | |
72 | Bool_t fDebugV2; // fully talkative task | |
73 | TList *fHList; // List for histos | |
74 | TProfile *fAnaCuts; // store analysis related cuts | |
75 | TH2D *fEvent[2]; // Events histogram | |
76 | TH2D *fMass[2]; // Mass spectra | |
77 | Double_t fPOIEta[2]; // Eta cut for POI | |
78 | Double_t fFlowEta[4]; // SP subEvents | |
79 | Int_t fFlowPts[2]; // Pt range | |
80 | Double_t fFlowBands[2][5]; // Mass bands TODO | |
81 | ||
82 | ClassDef(AliAnalysisTaskFlowD2H, 1); | |
83 | }; | |
84 | ||
85 | #endif |