]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/AliAnalysisTaskSESelectHF4Prong.h
d988cb1a8d7eb5b9bfd49c8de8d5a0452df2a6e6
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSESelectHF4Prong.h
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>
17 #include <TH1F.h>\r
18 #include <TH2F.h>
19 #include <TList.h>
20 #include <TClonesArray.h>
21 #include <TChain.h>
22
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"
29
30
31 class AliAnalysisTaskSESelectHF4Prong : public AliAnalysisTaskSE
32 {
33  public:
34
35   AliAnalysisTaskSESelectHF4Prong();
36   AliAnalysisTaskSESelectHF4Prong(const char *name,AliRDHFCutsD0toKpipipi* cuts);
37   virtual ~AliAnalysisTaskSESelectHF4Prong();
38
39
40   // Implementation of interface methods
41   virtual void UserCreateOutputObjects();
42   virtual void Init();
43   virtual void LocalInit() {Init();}
44   virtual void UserExec(Option_t *option);
45   virtual void Terminate(Option_t *option);
46   
47  private:
48
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
53
54   Double_t fmassD0[2];
55   Double_t fmassD0bar[2];
56   Int_t fSelected;
57
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
64
65   //output histograms\r
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
72
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
79
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
86
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
93
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
100
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
106
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
110
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
130
131   TH1F *fPtSel;                                        //! Pt of selected candidates
132  
133   AliRDHFCutsD0toKpipipi *fCuts;                        //! Cuts container
134
135   AliAnalysisVertexingHF *fVHF;         // analysis (used to pass the cuts)
136
137   ClassDef(AliAnalysisTaskSESelectHF4Prong,2); // AliAnalysisTaskSE for the reconstruction of heavy-flavour decay candidates
138 };
139
140 #endif
141