]>
Commit | Line | Data |
---|---|---|
601736df | 1 | #ifndef ALIANALYSISTASKSESELECTHF4PRONG_H |
2 | #define ALIANALYSISTASKSESELECTHF4PRONG_H | |
3 | ||
4 | /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //************************************************************************* | |
8 | // Class AliAnalysisTaskSESelectHF4Prong | |
9 | // AliAnalysisTaskSE for the selection of heavy-flavour decay candidates | |
10 | // and creation of a stand-alone AOD for 4prong D0 decay | |
11 | // Author: A.Dainese, andrea.dainese@lnl.infn.it | |
12 | // F.Colamaria, fabio.colamaria@ba.infn.it | |
13 | //************************************************************************* | |
14 | ||
15 | #include <TROOT.h> | |
16 | #include <TSystem.h> | |
a65a7e70 | 17 | #include <TH1F.h> |
601736df | 18 | #include <TH2F.h> |
19 | #include <TList.h> | |
20 | #include <TClonesArray.h> | |
21 | #include <TChain.h> | |
22 | ||
23 | #include "AliAnalysisTaskSE.h" | |
601736df | 24 | #include "AliRDHFCutsD0toKpipipi.h" |
d49603e8 | 25 | #include "AliAODMCParticle.h" |
a65a7e70 | 26 | class AliAODEvent; |
ac679a67 | 27 | class AliAnalysisManager; |
d49603e8 | 28 | class AliAnalysisVertexingHF; |
ac679a67 | 29 | class AliRDHFCuts; |
601736df | 30 | |
31 | class AliAnalysisTaskSESelectHF4Prong : public AliAnalysisTaskSE | |
32 | { | |
33 | public: | |
34 | ||
35 | AliAnalysisTaskSESelectHF4Prong(); | |
36 | AliAnalysisTaskSESelectHF4Prong(const char *name,AliRDHFCutsD0toKpipipi* cuts); | |
37 | virtual ~AliAnalysisTaskSESelectHF4Prong(); | |
38 | ||
601736df | 39 | // Implementation of interface methods |
40 | virtual void UserCreateOutputObjects(); | |
41 | virtual void Init(); | |
42 | virtual void LocalInit() {Init();} | |
43 | virtual void UserExec(Option_t *option); | |
44 | virtual void Terminate(Option_t *option); | |
d49603e8 | 45 | |
46 | void SetPtBinH(Double_t* ptlimits); | |
47 | void PrintPtBinHandMCFlag(); | |
48 | void SetMCTruth(int flag) {fMCTruth = flag;}; | |
49 | Int_t GetMCTruth() const {return fMCTruth;} | |
601736df | 50 | |
d49603e8 | 51 | void AnalysisReflection(AliAODEvent* aodIn, AliAODRecoDecayHF4Prong* d, Int_t hyp01, Int_t hyp02, Int_t hyp03, Int_t hyp04); |
52 | Int_t StudyMCTruth(TClonesArray* mcArray, AliAODRecoDecayHF4Prong* d); | |
53 | void FillReflHistos(AliAODRecoDecayHF4Prong* d, Int_t hyp01, Int_t hyp02, Int_t hyp03, Int_t hyp04, Int_t flagLayer1, Int_t flagLayer2, Int_t flagLayer3, Int_t flagLayer4); | |
54 | void FillReflD0Histos(AliAODRecoDecayHF4Prong* d, Int_t hyp01, Int_t hyp02, Int_t hyp03, Int_t hyp04, Int_t flagLayforD0_1, Int_t flagLayforD0_2, Int_t flagLayforD0_3, Int_t flagLayforD0_4); | |
55 | void FillReflD0barHistos(AliAODRecoDecayHF4Prong* d, Int_t hyp01, Int_t hyp02, Int_t hyp03, Int_t hyp04, Int_t flagLayforD0bar_1, Int_t flagLayforD0bar_2, Int_t flagLayforD0bar_3, Int_t flagLayforD0bar_4); | |
56 | ||
601736df | 57 | private: |
58 | ||
59 | AliAnalysisTaskSESelectHF4Prong(const AliAnalysisTaskSESelectHF4Prong &source); | |
60 | AliAnalysisTaskSESelectHF4Prong& operator=(const AliAnalysisTaskSESelectHF4Prong& source); | |
61 | TClonesArray *fVerticesHFTClArr; //! Array of heavy-flavour vertices | |
62 | TClonesArray *fCharm4ProngTClArr; //! Array of D0->K3pi | |
63 | ||
d49603e8 | 64 | Double_t fPtBinH[6]; //bin i has pt between values i and i+1 |
65 | Double_t fmassD0[2]; //!To store invariant mass for D0 hypotheses | |
66 | Double_t fmassD0bar[2]; //!To store invariant mass for D0bar hypotheses | |
67 | Int_t fSelected; //!Flag for selection of candidate | |
68 | Int_t fMCTruth; //flag for MC truth analysis | |
601736df | 69 | |
70 | TList *fOutput; //! list send on output slot 1 | |
71 | TList *fOutput2; //! list send on output slot 2 | |
72 | TList *fOutput3; //! list send on output slot 3 | |
73 | TList *fOutput4; //! list send on output slot 4 | |
74 | TList *fOutput5; //! list send on output slot 5 | |
75 | TList *fOutputC; //! list send on output slot 6 | |
76 | ||
a65a7e70 | 77 | //output histograms |
ac679a67 | 78 | TH1F *fhInvMassD0Sum10MevBin1; //! Invariant mass D01+D02 (good hyp) 10Mev BIN1 |
79 | TH1F *fhInvMassD0barSum10MevBin1; //! Invariant mass D0bar1+D0bar2 (good hyp) 10Mev | |
d49603e8 | 80 | TH1F *fhInvMassSumAll10MevBin1; //! Invariant mass superimpose (good hyp only) 10Mev |
ac679a67 | 81 | TH1F *fhInvMassD0Sum5MevBin1; //! Invariant mass D01+D02 (good hyp) 5Mev |
82 | TH1F *fhInvMassD0barSum5MevBin1; //! Invariant mass D0bar1+D0bar2 (good hyp) 5Mev | |
d49603e8 | 83 | TH1F *fhInvMassSumAll5MevBin1; //! Invariant mass superimpose (good hyp only) 5Mev |
ac679a67 | 84 | |
85 | TH1F *fhInvMassD0Sum10MevBin2; //! Invariant mass D01+D02 (good hyp) 10Mev BIN2 | |
86 | TH1F *fhInvMassD0barSum10MevBin2; //! Invariant mass D0bar1+D0bar2 (good hyp) 10Mev | |
d49603e8 | 87 | TH1F *fhInvMassSumAll10MevBin2; //! Invariant mass superimpose (good hyp only) 10Mev |
ac679a67 | 88 | TH1F *fhInvMassD0Sum5MevBin2; //! Invariant mass D01+D02 (good hyp) 5Mev |
89 | TH1F *fhInvMassD0barSum5MevBin2; //! Invariant mass D0bar1+D0bar2 (good hyp) 5Mev | |
d49603e8 | 90 | TH1F *fhInvMassSumAll5MevBin2; //! Invariant mass superimpose (good hyp only) 5Mev |
ac679a67 | 91 | |
92 | TH1F *fhInvMassD0Sum10MevBin3; //! Invariant mass D01+D02 (good hyp) 10Mev BIN3 | |
93 | TH1F *fhInvMassD0barSum10MevBin3; //! Invariant mass D0bar1+D0bar2 (good hyp) 10Mev | |
d49603e8 | 94 | TH1F *fhInvMassSumAll10MevBin3; //! Invariant mass superimpose (good hyp only) 10Mev |
ac679a67 | 95 | TH1F *fhInvMassD0Sum5MevBin3; //! Invariant mass D01+D02 (good hyp) 5Mev |
96 | TH1F *fhInvMassD0barSum5MevBin3; //! Invariant mass D0bar1+D0bar2 (good hyp) 5Mev | |
d49603e8 | 97 | TH1F *fhInvMassSumAll5MevBin3; //! Invariant mass superimpose (good hyp only) 5Mev |
ac679a67 | 98 | |
99 | TH1F *fhInvMassD0Sum10MevBin4; //! Invariant mass D01+D02 (good hyp) 10Mev BIN4 | |
100 | TH1F *fhInvMassD0barSum10MevBin4; //! Invariant mass D0bar1+D0bar2 (good hyp) 10Mev | |
d49603e8 | 101 | TH1F *fhInvMassSumAll10MevBin4; //! Invariant mass superimpose (good hyp only) 10Mev |
ac679a67 | 102 | TH1F *fhInvMassD0Sum5MevBin4; //! Invariant mass D01+D02 (good hyp) 5Mev |
103 | TH1F *fhInvMassD0barSum5MevBin4; //! Invariant mass D0bar1+D0bar2 (good hyp) 5Mev | |
d49603e8 | 104 | TH1F *fhInvMassSumAll5MevBin4; //! Invariant mass superimpose (good hyp only) 5Mev |
ac679a67 | 105 | |
106 | TH1F *fhInvMassD0Sum10MevBin5; //! Invariant mass D01+D02 (good hyp) 10Mev BIN5 | |
107 | TH1F *fhInvMassD0barSum10MevBin5; //! Invariant mass D0bar1+D0bar2 (good hyp) 10Mev | |
d49603e8 | 108 | TH1F *fhInvMassSumAll10MevBin5; //! Invariant mass superimpose (good hyp only) 10Mev |
ac679a67 | 109 | TH1F *fhInvMassD0Sum5MevBin5; //! Invariant mass D01+D02 (good hyp) 5Mev |
110 | TH1F *fhInvMassD0barSum5MevBin5; //! Invariant mass D0bar1+D0bar2 (good hyp) 5Mev | |
d49603e8 | 111 | TH1F *fhInvMassSumAll5MevBin5; //! Invariant mass superimpose (good hyp only) 5Mev |
112 | ||
113 | TH2F *fhReflBin1; //! Analysis for reflection - Bin1 | |
114 | TH2F *fhReflBin2; //! Analysis for reflection - Bin2 | |
115 | TH2F *fhReflBin3; //! Analysis for reflection - Bin3 | |
116 | TH2F *fhReflBin4; //! Analysis for reflection - Bin4 | |
117 | TH2F *fhReflBin5; //! Analysis for reflection - Bin5 | |
118 | TH2F *fhReflD0Bin1; //! Analysis for reflection - D0 study - Bin1 | |
119 | TH2F *fhReflD0Bin2; //! Analysis for reflection - D0 study - Bin2 | |
120 | TH2F *fhReflD0Bin3; //! Analysis for reflection - D0 study - Bin3 | |
121 | TH2F *fhReflD0Bin4; //! Analysis for reflection - D0 study - Bin4 | |
122 | TH2F *fhReflD0Bin5; //! Analysis for reflection - D0 study - Bin5 | |
123 | TH2F *fhReflD0barBin1; //! Analysis for reflection - D0bar study - Bin1 | |
124 | TH2F *fhReflD0barBin2; //! Analysis for reflection - D0bar study - Bin2 | |
125 | TH2F *fhReflD0barBin3; //! Analysis for reflection - D0bar study - Bin3 | |
126 | TH2F *fhReflD0barBin4; //! Analysis for reflection - D0bar study - Bin4 | |
127 | TH2F *fhReflD0barBin5; //! Analysis for reflection - D0bar study - Bin5 | |
601736df | 128 | |
129 | TH2F *fScatterP4PID; //! K momentum vs like sign Pi momentum after PID | |
130 | TH2F *fPtVsY; //! Pt vs Y of selected candidates (by PPR cuts) | |
131 | TH2F *fPtVsYAll; //! Pt vs Y of all candidates | |
132 | ||
133 | TH1F *fEventCounter; //! Event Counter | |
134 | TH1F *fCutDCA; //! DCA histogram doubl. | |
135 | TH1F *fCutDCA3; //! DCA histogram trips | |
136 | TH1F *fCutDCA2; //! DCA histogram quads1 | |
137 | TH1F *fCutDCA5; //! DCA histogram quads2 | |
138 | TH1F *fCutVertexDist2; //! Vertex doubl. to primary distance | |
139 | TH1F *fCutVertexDist3; //! Vertex trips to primary distance | |
140 | TH1F *fCutVertexDist4; //! Vertex quads to primary distance | |
141 | TH1F *fCutCosinePoint; //! Cosine of pointing angle | |
142 | TH1F *fCutPt; //! Candidate D0 Pt | |
143 | TH1F *fCutY; //! Candidate D0 Y | |
144 | TH1F *fPIDSel; //! PID Selected | |
ac679a67 | 145 | TH1F *fPIDSelBin1; //! PID Selected Bin1 |
146 | TH1F *fPIDSelBin2; //! PID Selected Bin2 | |
147 | TH1F *fPIDSelBin3; //! PID Selected Bin3 | |
148 | TH1F *fPIDSelBin4; //! PID Selected Bin4 | |
149 | TH1F *fPIDSelBin5; //! PID Selected Bin5 | |
d49603e8 | 150 | TH2F *fMultipleHyps; //! Multiple hypotesis accepted counter |
151 | TH2F *fMultipleHypsType; //! Multiple hypotesis accepted counter | |
601736df | 152 | |
153 | TH1F *fPtSel; //! Pt of selected candidates | |
154 | ||
d49603e8 | 155 | AliRDHFCutsD0toKpipipi *fCuts; // Cuts container |
601736df | 156 | |
d49603e8 | 157 | ClassDef(AliAnalysisTaskSESelectHF4Prong,2); // AliAnalysisTaskSE for the reconstruction of heavy-flavour decay candidates |
601736df | 158 | }; |
159 | ||
160 | #endif | |
161 |