]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis/AliFMDAnalysisTaskSE.cxx
Upgrade following the 900 GeV data. A lot of extra things added - histograms etc...
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis / AliFMDAnalysisTaskSE.cxx
1 #include "AliFMDAnalysisTaskSE.h"
2 #include "AliESDEvent.h"
3 #include "iostream"
4 #include "AliESDFMD.h"
5 #include "AliMCEventHandler.h"
6 #include "AliAnalysisManager.h"
7 #include "AliFMDAnaParameters.h"
8 #include "AliLog.h"
9
10 ClassImp(AliFMDAnalysisTaskSE)
11
12 //_____________________________________________________________________
13 AliFMDAnalysisTaskSE::AliFMDAnalysisTaskSE():
14 AliAnalysisTaskSE(),
15   fListOfHistos(0),
16   fSharing("Sharing",kFALSE),
17   fDensity("Density",kFALSE),
18   fBackground("BackgroundCorrected",kFALSE),
19   fDndeta("dNdeta",kFALSE), 
20   fParams(0)
21 {
22   // Default constructor
23 }
24 //_____________________________________________________________________
25 AliFMDAnalysisTaskSE::AliFMDAnalysisTaskSE(const char* name):
26   AliAnalysisTaskSE(name),
27   fListOfHistos(0),
28   fSharing("Sharing",kFALSE),
29   fDensity("Density",kFALSE),
30   fBackground("BackgroundCorrected",kFALSE),
31   fDndeta("dNdeta",kFALSE), 
32   fParams(0)
33 {
34   SetParams(AliFMDAnaParameters::Instance());
35   DefineOutput(1, TList::Class());
36 }
37 //_____________________________________________________________________
38 void AliFMDAnalysisTaskSE::UserCreateOutputObjects()
39 {
40 // Create the output containers
41 //
42   fListOfHistos = new TList();
43   
44   AliESDFMD* fmd = new AliESDFMD();
45   AliESDVertex* vertex = new AliESDVertex();
46   
47   TList* densitylist = new TList();
48   
49   TList* bgcorlist = new TList();
50   
51   fSharing.SetFMDData(fmd);
52   fSharing.SetVertex(vertex);
53   fSharing.SetOutputList(fListOfHistos);
54   
55   fDensity.Init();
56   fDensity.SetOutputList(densitylist);
57   fDensity.SetInputESDFMD(fmd) ;
58   fDensity.SetInputVertex(vertex);
59   
60   fBackground.SetInputList(densitylist);
61   fBackground.SetOutputList(bgcorlist);
62   fBackground.SetHitList(fListOfHistos);
63
64   fDndeta.SetInputList(bgcorlist); 
65   fDndeta.SetOutputList(fListOfHistos); 
66   
67   fSharing.CreateOutputObjects();
68   fDensity.CreateOutputObjects();
69   fBackground.CreateOutputObjects();
70   fDndeta.CreateOutputObjects();
71   
72   
73   
74 }
75 //_____________________________________________________________________
76 void AliFMDAnalysisTaskSE::Init()
77 {
78   std::cout<<"Init"<<std::endl;
79 }
80 //_____________________________________________________________________
81 void AliFMDAnalysisTaskSE::UserExec(Option_t */*option*/)
82 {
83   // Execute analysis for current event
84   //
85   //  AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
86     PostData(1, fListOfHistos);
87   AliESDEvent* fESD = (AliESDEvent*)InputEvent();
88   fSharing.SetInputESD(fESD);
89   
90   fSharing.Exec("");
91   if(fSharing.GetEventStatus()) {
92     fDensity.Exec("");
93     if(fDensity.GetEventStatus()) {
94       fBackground.Exec("");  
95       fDndeta.Exec("");
96       
97     }
98     else return;
99   }
100   else return;
101   
102   //fListOfHistos = fBackground.GetOutputList();
103   
104  
105 }
106 //_____________________________________________________________________
107 void AliFMDAnalysisTaskSE::Terminate(Option_t */*option*/)
108 {
109   
110   TList* outputList = (TList*)GetOutputData(1);
111   
112   
113   fSharing.SetOutputList(outputList);
114   fBackground.SetHitList(outputList);
115   fDndeta.SetOutputList(outputList); 
116   fSharing.Terminate("");
117   fBackground.Terminate("");
118   fDndeta.Terminate("");
119   
120   
121   // TFile file("fmd_ana_histos_tmp.root","RECREATE");
122   //  fListOfHistos->Write();
123   // file.Close();
124 }
125
126 //_____________________________________________________________________
127 void AliFMDAnalysisTaskSE::Print(Option_t* option) const
128 {
129   AliInfo(Form("FMD Single Event Analysis Task\n"
130                "Parameters set to %p", fParams));
131   TString opt(option);
132   opt.ToLower();
133   if (opt.Contains("s")) { 
134     fSharing.Print(option);     
135     fDensity.Print(option);     
136     fBackground.Print(option);  
137     fDndeta.Print(option);      
138   }
139   if (opt.Contains("p") && fParams) 
140     fParams->Print(option);      
141 }
142
143 //_____________________________________________________________________
144 //
145 // EOF
146 //