1 #define AliAnalysisTaskRLPt_cxx
14 #include "AliAnalysisTaskRL.h"
15 #include "AliAnalysisTaskRLPt.h"
17 ClassImp(AliAnalysisTaskRLPt)
19 //________________________________________________________________________
20 AliAnalysisTaskRLPt::AliAnalysisTaskRLPt(const char *name) :AliAnalysisTaskRL(name,""), fESD(0), fHistPt(0) {
22 // Input slot #0 works with an Ntuple
23 DefineInput(0, TChain::Class());
24 // Output slot #0 writes into a TH1 container
25 DefineOutput(0, TH1F::Class());
28 //___________________________________________________________________________
29 void AliAnalysisTaskRLPt::ConnectInputData(Option_t *) {
30 // Initialize branches.
31 printf(" ConnectInputData of task %s\n", GetName());
33 char ** address = (char **)GetBranchAddress(0, "ESD");
34 if (address) fESD = (AliESD*)(*address);
37 SetBranchAddress(0, "ESD", &fESD);
42 //___________________________________________________________________________
43 void AliAnalysisTaskRLPt::CreateOutputObjects() {
44 printf(" CreateOutputObjects of task %s\n", GetName());
46 fHistPt = new TH1F("fHistPt","This is the Pt distribution",15,0.1,3.1);
47 fHistPt->SetStats(kTRUE);
48 fHistPt->GetXaxis()->SetTitle("P_{T} [GeV]");
49 fHistPt->GetYaxis()->SetTitle("#frac{dN}{dP_{T}}");
50 fHistPt->GetXaxis()->SetTitleColor(1);
51 fHistPt->SetMarkerStyle(kFullCircle);
55 //________________________________________________________________________
56 void AliAnalysisTaskRLPt::Exec(Option_t *) {
57 // Task making a pt distribution.
59 TTree *tinput = (TTree*)GetInputData(0);
60 Long64_t ientry = tinput->GetReadEntry();
61 if (AliAnalysisTaskRL::GetEntry(ientry) == kFALSE) {
62 printf("Couldn't get event from the runLoader\n");
67 AliStack* stack = GetStack();
69 AliDebug(AliLog::kError, "Stack not available");
72 // loop over mc particles
73 Int_t nPrim = stack->GetNprimary();
74 printf("Particles: %d - Tracks: %d \n",nPrim,fESD->GetNumberOfTracks());
75 for(Int_t i = 0; i < nPrim; i++) {
76 TParticle * particle = stack->Particle(i);
77 if(TMath::Abs(particle->Eta()) > 1.0) continue;
78 fHistPt->Fill(particle->Pt());
81 // Post final data. It will be written to a file with option "RECREATE"
85 //________________________________________________________________________
86 void AliAnalysisTaskRLPt::Terminate(Option_t *) {
87 // Draw some histogram at the end.
88 if (!gROOT->IsBatch()) {
89 TCanvas *c1 = new TCanvas("c1","Pt",10,10,310,310);
90 c1->SetFillColor(10); c1->SetHighLightColor(10);
91 c1->cd(1)->SetLeftMargin(0.15); c1->cd(1)->SetBottomMargin(0.15);
93 fHistPt->DrawCopy("E");