]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/macros/AliAnalysisTaskFemto.cxx
869aa6697f17f41cc0ecfdd9fc5cd0a8677e37bb
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / macros / AliAnalysisTaskFemto.cxx
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
15 ClassImp(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
28 void 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
67 void 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
79 void 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
105 void 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
121 void AliAnalysisTaskFemto::SetFemtoReader(AliFemtoEventReaderESDChain *aReader)\r
122 {\r
123   fReader = aReader;\r
124 }\r
125 //________________________________________________________________________\r
126 void 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