1 #ifndef ALIANALYSISTASKSESELECTHF4PRONG_H
2 #define ALIANALYSISTASKSESELECTHF4PRONG_H
4 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
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 //*************************************************************************
20 #include <TClonesArray.h>
23 #include "AliAnalysisTaskSE.h"
24 #include "AliAODEvent.h"
\r
25 #include "AliAnalysisManager.h"
26 #include "AliAnalysisVertexingHF.h"
27 #include "AliRDHFCuts.h"
28 #include "AliRDHFCutsD0toKpipipi.h"
31 class AliAnalysisTaskSESelectHF4Prong : public AliAnalysisTaskSE
35 AliAnalysisTaskSESelectHF4Prong();
36 AliAnalysisTaskSESelectHF4Prong(const char *name,AliRDHFCutsD0toKpipipi* cuts);
37 virtual ~AliAnalysisTaskSESelectHF4Prong();
40 // Implementation of interface methods
41 virtual void UserCreateOutputObjects();
43 virtual void LocalInit() {Init();}
44 virtual void UserExec(Option_t *option);
45 virtual void Terminate(Option_t *option);
49 AliAnalysisTaskSESelectHF4Prong(const AliAnalysisTaskSESelectHF4Prong &source);
50 AliAnalysisTaskSESelectHF4Prong& operator=(const AliAnalysisTaskSESelectHF4Prong& source);
51 TClonesArray *fVerticesHFTClArr; //! Array of heavy-flavour vertices
52 TClonesArray *fCharm4ProngTClArr; //! Array of D0->K3pi
55 Double_t fmassD0bar[2];
58 TList *fOutput; //! list send on output slot 1
59 TList *fOutput2; //! list send on output slot 2
60 TList *fOutput3; //! list send on output slot 3
61 TList *fOutput4; //! list send on output slot 4
62 TList *fOutput5; //! list send on output slot 5
63 TList *fOutputC; //! list send on output slot 6
66 TH1F *fhInvMassD0Sum_10Mev_Bin1; //! Invariant mass D01+D02 (good hyp) _10Mev BIN1
67 TH1F *fhInvMassD0barSum_10Mev_Bin1; //! Invariant mass D0bar1+D0bar2 (good hyp) _10Mev
68 TH1F *fhInvMassSumAll_10Mev_Bin1; //! Invariant mass superimpose (good hyp only)_10Mev
69 TH1F *fhInvMassD0Sum_5Mev_Bin1; //! Invariant mass D01+D02 (good hyp) _5Mev
70 TH1F *fhInvMassD0barSum_5Mev_Bin1; //! Invariant mass D0bar1+D0bar2 (good hyp) _5Mev
71 TH1F *fhInvMassSumAll_5Mev_Bin1; //! Invariant mass superimpose (good hyp only)_5Mev
73 TH1F *fhInvMassD0Sum_10Mev_Bin2; //! Invariant mass D01+D02 (good hyp) _10Mev BIN2
74 TH1F *fhInvMassD0barSum_10Mev_Bin2; //! Invariant mass D0bar1+D0bar2 (good hyp) _10Mev
75 TH1F *fhInvMassSumAll_10Mev_Bin2; //! Invariant mass superimpose (good hyp only)_10Mev
76 TH1F *fhInvMassD0Sum_5Mev_Bin2; //! Invariant mass D01+D02 (good hyp) _5Mev
77 TH1F *fhInvMassD0barSum_5Mev_Bin2; //! Invariant mass D0bar1+D0bar2 (good hyp) _5Mev
78 TH1F *fhInvMassSumAll_5Mev_Bin2; //! Invariant mass superimpose (good hyp only)_5Mev
80 TH1F *fhInvMassD0Sum_10Mev_Bin3; //! Invariant mass D01+D02 (good hyp) _10Mev BIN3
81 TH1F *fhInvMassD0barSum_10Mev_Bin3; //! Invariant mass D0bar1+D0bar2 (good hyp) _10Mev
82 TH1F *fhInvMassSumAll_10Mev_Bin3; //! Invariant mass superimpose (good hyp only)_10Mev
83 TH1F *fhInvMassD0Sum_5Mev_Bin3; //! Invariant mass D01+D02 (good hyp) _5Mev
84 TH1F *fhInvMassD0barSum_5Mev_Bin3; //! Invariant mass D0bar1+D0bar2 (good hyp) _5Mev
85 TH1F *fhInvMassSumAll_5Mev_Bin3; //! Invariant mass superimpose (good hyp only)_5Mev
87 TH1F *fhInvMassD0Sum_10Mev_Bin4; //! Invariant mass D01+D02 (good hyp) _10Mev BIN4
88 TH1F *fhInvMassD0barSum_10Mev_Bin4; //! Invariant mass D0bar1+D0bar2 (good hyp) _10Mev
89 TH1F *fhInvMassSumAll_10Mev_Bin4; //! Invariant mass superimpose (good hyp only)_10Mev
90 TH1F *fhInvMassD0Sum_5Mev_Bin4; //! Invariant mass D01+D02 (good hyp) _5Mev
91 TH1F *fhInvMassD0barSum_5Mev_Bin4; //! Invariant mass D0bar1+D0bar2 (good hyp) _5Mev
92 TH1F *fhInvMassSumAll_5Mev_Bin4; //! Invariant mass superimpose (good hyp only)_5Mev
94 TH1F *fhInvMassD0Sum_10Mev_Bin5; //! Invariant mass D01+D02 (good hyp) _10Mev BIN5
95 TH1F *fhInvMassD0barSum_10Mev_Bin5; //! Invariant mass D0bar1+D0bar2 (good hyp) _10Mev
96 TH1F *fhInvMassSumAll_10Mev_Bin5; //! Invariant mass superimpose (good hyp only)_10Mev
97 TH1F *fhInvMassD0Sum_5Mev_Bin5; //! Invariant mass D01+D02 (good hyp) _5Mev
98 TH1F *fhInvMassD0barSum_5Mev_Bin5; //! Invariant mass D0bar1+D0bar2 (good hyp) _5Mev
99 TH1F *fhInvMassSumAll_5Mev_Bin5; //! Invariant mass superimpose (good hyp only)_5Mev
101 TH1F *fhInvMassMultipleOnly_Bin1; //! Invariant mass superimpose good hyp only for multiple hyps accepted Bin1
102 TH1F *fhInvMassMultipleOnly_Bin2; //! Invariant mass superimpose good hyp only for multiple hyps accepted Bin2
103 TH1F *fhInvMassMultipleOnly_Bin3; //! Invariant mass superimpose good hyp only for multiple hyps accepted Bin3
104 TH1F *fhInvMassMultipleOnly_Bin4; //! Invariant mass superimpose good hyp only for multiple hyps accepted Bin4
105 TH1F *fhInvMassMultipleOnly_Bin5; //! Invariant mass superimpose good hyp only for multiple hyps accepted Bin5
107 TH2F *fScatterP4PID; //! K momentum vs like sign Pi momentum after PID
108 TH2F *fPtVsY; //! Pt vs Y of selected candidates (by PPR cuts)
109 TH2F *fPtVsYAll; //! Pt vs Y of all candidates
111 TH1F *fEventCounter; //! Event Counter
112 TH1F *fCutDCA; //! DCA histogram doubl.
113 TH1F *fCutDCA3; //! DCA histogram trips
114 TH1F *fCutDCA2; //! DCA histogram quads1
115 TH1F *fCutDCA5; //! DCA histogram quads2
116 TH1F *fCutVertexDist2; //! Vertex doubl. to primary distance
117 TH1F *fCutVertexDist3; //! Vertex trips to primary distance
118 TH1F *fCutVertexDist4; //! Vertex quads to primary distance
119 TH1F *fCutCosinePoint; //! Cosine of pointing angle
120 TH1F *fCutPt; //! Candidate D0 Pt
121 TH1F *fCutY; //! Candidate D0 Y
122 TH1F *fPIDSel; //! PID Selected
123 TH1F *fPIDSel_Bin1; //! PID Selected Bin1
124 TH1F *fPIDSel_Bin2; //! PID Selected Bin2
125 TH1F *fPIDSel_Bin3; //! PID Selected Bin3
126 TH1F *fPIDSel_Bin4; //! PID Selected Bin4
127 TH1F *fPIDSel_Bin5; //! PID Selected Bin5
128 TH1F *fMultipleHyps; //! Multiple hypotesis accepted counter
129 TH1F *fMultipleHypsType; //! Multiple hypotesis accepted counter
131 TH1F *fPtSel; //! Pt of selected candidates
133 AliRDHFCutsD0toKpipipi *fCuts; //! Cuts container
135 AliAnalysisVertexingHF *fVHF; // analysis (used to pass the cuts)
137 ClassDef(AliAnalysisTaskSESelectHF4Prong,2); // AliAnalysisTaskSE for the reconstruction of heavy-flavour decay candidates