1 #include "AliFMDAnalysisTaskSE.h"
2 #include "AliESDEvent.h"
5 #include "AliMCEventHandler.h"
6 #include "AliAnalysisManager.h"
7 #include "AliFMDAnaParameters.h"
9 #include "AliFMDDndeta.h"
10 #include "TDirectory.h"
11 ClassImp(AliFMDAnalysisTaskSE)
13 //_____________________________________________________________________
14 AliFMDAnalysisTaskSE::AliFMDAnalysisTaskSE():
17 fSharing("Sharing",kFALSE),
18 fDensity("Density",kFALSE),
19 fBackground("BackgroundCorrected",kFALSE),
20 fDndeta("dNdeta",kFALSE),
21 fBFCorrelation("BFCorrelation",kFALSE),
24 // Default constructor
26 //_____________________________________________________________________
27 AliFMDAnalysisTaskSE::AliFMDAnalysisTaskSE(const char* name):
28 AliAnalysisTaskSE(name),
30 fSharing("Sharing",kFALSE),
31 fDensity("Density",kFALSE),
32 fBackground("BackgroundCorrected",kFALSE),
33 fDndeta("dNdeta",kFALSE),
34 fBFCorrelation("BFCorrelation",kFALSE),
37 SetParams(AliFMDAnaParameters::Instance());
38 DefineOutput(1, TList::Class());
40 //_____________________________________________________________________
41 void AliFMDAnalysisTaskSE::UserCreateOutputObjects()
43 // Create the output containers
45 fListOfHistos = new TList();
47 AliESDFMD* fmd = new AliESDFMD();
48 AliESDVertex* vertex = new AliESDVertex();
50 TList* densitylist = new TList();
52 TList* bgcorlist = new TList();
54 fSharing.SetFMDData(fmd);
55 fSharing.SetVertex(vertex);
56 fSharing.SetOutputList(fListOfHistos);
59 fDensity.SetOutputList(densitylist);
60 fDensity.SetInputESDFMD(fmd) ;
61 fDensity.SetInputVertex(vertex);
63 fBackground.SetInputList(densitylist);
64 fBackground.SetOutputList(bgcorlist);
65 fBackground.SetHitList(fListOfHistos);
67 fDndeta.SetInputList(bgcorlist);
68 fDndeta.SetOutputList(fListOfHistos);
69 fBFCorrelation.SetInputList(bgcorlist);
70 fBFCorrelation.SetOutputList(fListOfHistos);
72 fSharing.CreateOutputObjects();
73 fDensity.CreateOutputObjects();
74 fBackground.CreateOutputObjects();
75 fDndeta.CreateOutputObjects();
76 fBFCorrelation.CreateOutputObjects();
78 PostData(1, fListOfHistos);
80 //_____________________________________________________________________
81 void AliFMDAnalysisTaskSE::Init()
83 std::cout<<"Init"<<std::endl;
85 //_____________________________________________________________________
86 void AliFMDAnalysisTaskSE::UserExec(Option_t */*option*/)
88 // Execute analysis for current event
91 //AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
94 AliESDEvent* fESD = (AliESDEvent*)InputEvent();
95 //std::cout<<fESD->GetBeamEnergy()<<" "<<fESD->GetBeamType()<<" "<<fESD->GetCurrentL3()<<std::endl;
96 fSharing.SetInputESD(fESD);
99 if(fSharing.GetEventStatus()) {
101 if(fDensity.GetEventStatus()) {
102 fBackground.Exec("");
104 fBFCorrelation.Exec("");
110 PostData(1, fListOfHistos);
112 //fListOfHistos = fBackground.GetOutputList();
116 //_____________________________________________________________________
117 void AliFMDAnalysisTaskSE::Terminate(Option_t */*option*/)
120 TList* outputList = (TList*)GetOutputData(1);
123 fSharing.SetOutputList(outputList);
124 fBackground.SetHitList(outputList);
125 fDndeta.SetOutputList(outputList);
126 fBFCorrelation.SetOutputList(outputList);
127 fSharing.Terminate("");
128 fBackground.Terminate("");
129 fDndeta.Terminate("");
130 fBFCorrelation.Terminate("");
135 t.GenerateMult(AliFMDDndeta::kMult);
137 TList* dNdetalist = t.GetMultList(AliFMDDndeta::kMult);
138 TList* cloneList = (TList*)dNdetalist->Clone("dNdeta");
139 cloneList->SetName("dNdeta");
140 outputList->Add(cloneList);
142 t.GenerateMult(AliFMDDndeta::kMultTrVtx);
143 TList* dNdetalist2 = t.GetMultList(AliFMDDndeta::kMultTrVtx);
144 TList* cloneList2 = (TList*)dNdetalist2->Clone("dNdetaTrVtx");
145 cloneList2->SetName("dNdetaTrVtx");
146 outputList->Add(cloneList2);
148 t.GenerateMult(AliFMDDndeta::kHits);
149 TList* dNdetalist3 = t.GetMultList(AliFMDDndeta::kHits);
150 TList* cloneList3 = (TList*)dNdetalist3->Clone("Hits");
151 cloneList3->SetName("Hits");
152 outputList->Add(cloneList3);
153 t.GenerateMult(AliFMDDndeta::kHitsTrVtx);
154 TList* dNdetalist4 = t.GetMultList(AliFMDDndeta::kHits);
155 TList* cloneList4 = (TList*)dNdetalist4->Clone("HitsTrVtx");
156 cloneList4->SetName("HitsTrVtx");
157 outputList->Add(cloneList4);
158 // TFile file("fmd_ana_histos_tmp.root","RECREATE");
159 // fListOfHistos->Write();
163 AliWarning("no merged output from manager");
168 //_____________________________________________________________________
169 void AliFMDAnalysisTaskSE::Print(Option_t* option) const
171 AliInfo(Form("FMD Single Event Analysis Task\n"
172 "Parameters set to %p", fParams));
175 if (opt.Contains("s")) {
176 fSharing.Print(option);
177 fDensity.Print(option);
178 fBackground.Print(option);
179 fDndeta.Print(option);
180 fBFCorrelation.Print(option);
182 if (opt.Contains("p") && fParams)
183 fParams->Print(option);
186 //_____________________________________________________________________