]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FEMTOSCOPY/macros/AliAnalysisTaskFemto.cxx
Fix so that the trigger configuration can be loaded correctly within the shuttle...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / macros / AliAnalysisTaskFemto.cxx
CommitLineData
77f44ccf 1#define AliAnalysisTaskFemto_cxx\r
2#include "TROOT.h"\r
3#include "TChain.h"\r
4#include "TH1.h"\r
5#include "TCanvas.h"\r
6#include "TSystem.h"\r
7#include "TFile.h"\r
8\r
9#include "AliAnalysisTask.h"\r
10\r
11#include "AliESDEvent.h"\r
12\r
13#include "AliAnalysisTaskFemto.h"\r
14\r
15ClassImp(AliAnalysisTaskFemto)\r
16\r
17//________________________________________________________________________\r
18 AliAnalysisTaskFemto::AliAnalysisTaskFemto(const char *name) :AliAnalysisTask(name,""), fESD(0), fHistPt(0) {\r
19 // Constructor.\r
20 // Input slot #0 works with an Ntuple\r
21 DefineInput(0, TChain::Class());\r
22 // DefineInput(1, TChain::Class());\r
23 // Output slot #0 writes into a TH1 container\r
24 DefineOutput(0, TH1F::Class());\r
25}\r
26\r
27//________________________________________________________________________\r
28void AliAnalysisTaskFemto::ConnectInputData(Option_t *) {\r
29 printf(" ConnectInputData %s\n", GetName());\r
30\r
31// char ** address = (char **)GetBranchAddress(0, "ESD");\r
32// cout << "Got tree address " << address << endl;\r
33// if (address) {\r
34// fESD = (AliESDEvent*)(*address);\r
35// }\r
36// else {\r
37// fESD = new AliESDEvent();\r
38// fESD->\r
39// // SetBranchAddress(0, "ESD", &fESD);\r
40// }\r
41 TChain *inpchain = (TChain *) GetInputData(0);\r
42 fESD = new AliESDEvent();\r
43 fESD->ReadFromTree(inpchain);\r
44 \r
45 \r
46\r
47// char ** addressfriend = (char **)GetBranchAddress(1, "ESDfriend");\r
48// cout << "Got friend address " << addressfriend << endl;\r
49// if (addressfriend) {\r
50// fESDfriend = (AliESDfriend*)(*address);\r
51// }\r
52// else {\r
53// fESDfriend = new AliESDfriend();\r
54// SetBranchAddress(1, "ESDfriend", &fESDfriend);\r
55// }\r
56\r
57\r
58// TString fileName(chain->GetCurrentFile()->GetName());\r
59// fileName.ReplaceAll("AliESDs", "AliESDfriends");\r
60// cout << "Reading friend " << fileName.Data() << endl;;\r
61// chain->AddFriend("esdFriendTree",fileName.Data());\r
62// SetBranchAddress(0, "ESDfriend",&fESDfriend);\r
63\r
64}\r
65\r
66//________________________________________________________________________\r
67void AliAnalysisTaskFemto::CreateOutputObjects() {\r
68 if (!fHistPt) {\r
69 fHistPt = new TH1F("fHistPt","This is the Pt distribution",15,0.1,3.1);\r
70 fHistPt->SetStats(kTRUE);\r
71 fHistPt->GetXaxis()->SetTitle("P_{T} [GeV]");\r
72 fHistPt->GetYaxis()->SetTitle("#frac{dN}{dP_{T}}");\r
73 fHistPt->GetXaxis()->SetTitleColor(1);\r
74 fHistPt->SetMarkerStyle(kFullCircle);\r
75 }\r
76}\r
77\r
78//________________________________________________________________________\r
79void AliAnalysisTaskFemto::Exec(Option_t *) {\r
80 // Task making a pt distribution.\r
81 // Get input data\r
82 TChain *chain = (TChain*)GetInputData(0);\r
83 Long64_t ientry = chain->GetReadEntry();\r
84 if (!fESD) return;\r
85 // if (!chain->GetCurrentFile())\r
86 // return 0;\r
87 \r
88 printf("Tracks: %d \n",fESD->GetNumberOfTracks());\r
89 \r
90 if (fESD->GetNumberOfTracks() > 0) {\r
91 cout << "Chain has " << chain->GetListOfFriends() << " friends" << endl;\r
92 cout << "First track is " << fESD->GetTrack(0)->Get1P() << " momentum" << endl;\r
93 \r
94 fReader->SetESDSource(fESD);\r
95 // fReader->SetESDfriendSource(*fESDfriend);\r
96 \r
97 fManager->ProcessEvent();\r
98 \r
99 // Post final data. It will be written to a file with option "RECREATE"\r
100 PostData(0, fHistPt);\r
101 }\r
102} \r
103\r
104//________________________________________________________________________\r
105void AliAnalysisTaskFemto::Terminate(Option_t *) {\r
106 // Draw some histogram at the end.\r
107// if (!gROOT->IsBatch()) {\r
108// TCanvas *c1 = new TCanvas("c1","Pt",10,10,310,310);\r
109// c1->SetFillColor(10);\r
110// c1->SetHighLightColor(10);\r
111 \r
112// c1->cd(1)->SetLeftMargin(0.15);\r
113// c1->cd(1)->SetBottomMargin(0.15); \r
114// c1->cd(1)->SetLogy();\r
115// //fHistPt = (TH1F*)GetOutputData(0);\r
116// if (fHistPt) fHistPt->DrawCopy("E");\r
117// }\r
118 \r
119}\r
120//________________________________________________________________________\r
121void AliAnalysisTaskFemto::SetFemtoReader(AliFemtoEventReaderESDChain *aReader)\r
122{\r
123 fReader = aReader;\r
124}\r
125//________________________________________________________________________\r
126void AliAnalysisTaskFemto::SetFemtoManager(AliFemtoManager *aManager)\r
127{\r
128 fManager = aManager;\r
129}\r
130//________________________________________________________________________\r
131// void AliAnalysisTaskFemto::SetFriendAddress(AliESDfriend **aFriendAddress)\r
132// {\r
133// fESDfriend = aFriendAddress;\r
134// }\r
135\r