#include "TChain.h"
#include "AliAnalysisDataSlot.h"
#include "AliAnalysisDataContainer.h"
#include "AliAnalysisManager.h"
#include "AliMCEvent.h"
#include "AliVEvent.h"
#include "AliAnalysisTaskPythiaMpi.h"
#include "AliGenEventHeader.h"
#include "AliVParticle.h"
#include "AliPythia.h"
#include "AliPythia8.h"
using namespace std;
ClassImp(AliAnalysisTaskPythiaMpi)
AliAnalysisTaskPythiaMpi::AliAnalysisTaskPythiaMpi():
fMcEvent(0x0),
fMcHandler(0x0),
fOutputList(0),
fHistEvents(0),
fHistPt(0),
fHistEta(0),
fHistMpi(0),
fHistMultMpi(0),
fHistdNdetaMpi(0)
{
}
AliAnalysisTaskPythiaMpi::AliAnalysisTaskPythiaMpi(const char* name):
AliAnalysisTaskSE(name),
fMcEvent(0x0),
fMcHandler(0x0),
fOutputList(0),
fHistEvents(0),
fHistPt(0),
fHistEta(0),
fHistMpi(0),
fHistMultMpi(0),
fHistdNdetaMpi(0)
{
Info("AliAnalysisMpi","Calling Constructor");
DefineInput(0, TChain::Class());
DefineOutput(1, TList::Class());
}
AliAnalysisTaskPythiaMpi& AliAnalysisTaskPythiaMpi::operator=(const AliAnalysisTaskPythiaMpi& c)
{
if(this!=&c) {
AliAnalysisTaskSE::operator=(c);
fMcEvent = c.fMcEvent;
fMcHandler = c.fMcHandler;
fOutputList = c.fOutputList;
fHistEvents = c.fHistEvents;
fHistPt = c.fHistPt;
fHistEta = c.fHistEta;
fHistMpi = c.fHistMpi;
fHistMultMpi = c.fHistMultMpi;
fHistdNdetaMpi = c.fHistdNdetaMpi;
}
return *this;
}
AliAnalysisTaskPythiaMpi::AliAnalysisTaskPythiaMpi(const AliAnalysisTaskPythiaMpi& c):
AliAnalysisTaskSE(c),
fMcEvent(c.fMcEvent),
fMcHandler(c.fMcHandler),
fOutputList(c.fOutputList),
fHistEvents(c.fHistEvents),
fHistPt(c.fHistPt),
fHistEta(c.fHistEta),
fHistMpi(c.fHistMpi),
fHistMultMpi(c.fHistMultMpi),
fHistdNdetaMpi(c.fHistdNdetaMpi)
{
}
AliAnalysisTaskPythiaMpi::~AliAnalysisTaskPythiaMpi()
{
Info("~AliAnalysisTaskPythiaMpi","Calling Destructor");
if(fOutputList) delete fOutputList;
if(fHistEvents) delete fHistEvents;
if(fHistPt) delete fHistPt;
if(fHistEta) delete fHistEta;
if(fHistMpi) delete fHistMpi;
if(fHistMultMpi) delete fHistMultMpi;
if(fHistdNdetaMpi) delete fHistdNdetaMpi;
}
void AliAnalysisTaskPythiaMpi::UserCreateOutputObjects()
{
Info("CreateOutputObjects","CreateOutputObjects of task %s",GetName());
fOutputList = new TList();
fOutputList->SetOwner(kTRUE);
fHistEvents = new TH1I("fHistNEvents","fHistNEvents",2,0,2);
fHistEvents->GetXaxis()->SetBinLabel(1,"All events");
fHistEvents->GetXaxis()->SetBinLabel(2,"Events with |zVtx|<10cm");
fHistPt = new TH1F("fHistPt","p_{T} distribution",15,0.2,5.0);
fHistPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
fHistPt->GetYaxis()->SetTitle("dN/dp_{T} (GeV/c^{-1})");
fHistPt->SetMarkerStyle(kFullCircle);
fHistEta = new TH1F("fHistEta","eta distribution",20,-1,1);
fHistEta->GetXaxis()->SetTitle("#eta");
fHistEta->GetYaxis()->SetTitle("dN/d#eta");
fHistEta->SetMarkerStyle(kFullCircle);
fHistMpi = new TH1F("fHistMpi","MPIs distribution",50,0,50);
fHistMpi->GetXaxis()->SetTitle("#MPIs");
fHistMpi->GetYaxis()->SetTitle("dN/dMPIs");
fHistMpi->SetMarkerStyle(kFullCircle);
fHistMultMpi = new TH2F("fHistMultMpi","Multiplicity vs MPIs",50,0,50,100,0,1e4);
fHistMultMpi->GetXaxis()->SetTitle("#MPIs");
fHistMultMpi->GetYaxis()->SetTitle("MC particles");
fHistMultMpi->SetMarkerStyle(kFullDotSmall);
fHistdNdetaMpi = new TH2F("fHistdNdetaMpi","dN/d#etadMPIs",50,0,50,100,-5,5);
fHistdNdetaMpi->GetXaxis()->SetTitle("#MPIs");
fHistdNdetaMpi->GetYaxis()->SetTitle("#eta");
fOutputList->Add(fHistEvents);
fOutputList->Add(fHistPt);
fOutputList->Add(fHistEta);
fOutputList->Add(fHistMpi);
fOutputList->Add(fHistMultMpi);
fOutputList->Add(fHistdNdetaMpi);
PostData(1,fOutputList);
return;
}
void AliAnalysisTaskPythiaMpi::Init()
{
if(fDebug > 1) printf("AnalysisTaskPythiaMpi::Init() \n");
fMcHandler = dynamic_cast<AliInputEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
}
void AliAnalysisTaskPythiaMpi::LocalInit()
{
if(fDebug > 1) printf("AnalysisTaskPythiaMpi::LocalInit() \n");
Init();
}
void AliAnalysisTaskPythiaMpi::UserExec(Option_t*)
{
Info("UserExec","Start of method");
if(fDebug > 1) printf("AliAnalysisTaskPythiaMpi::UserExec \n");
Init();
fHistEvents->Fill(0.5);
if(fMcHandler){
fMcEvent = fMcHandler->MCEvent();
}else{
if(fDebug > 1) printf("AnalysisTaskPythiaMpi::Handler() fMcHandler=NULL\n");
return;
}
if(!fMcEvent){
if(fDebug > 1) printf("AnalysisTaskPythiaMpi::Exec() fMcEvent=NULL \n");
return;
}
const AliVVertex *vtxMC = fMcEvent->GetPrimaryVertex();
Float_t zVtx = vtxMC->GetZ();
if(TMath::Abs(zVtx)<10) fHistEvents->Fill(1.5);
else return;
Printf("MC particles: %d",fMCEvent->GetNumberOfTracks());
Double_t Nmpi = (AliPythia8::Instance())->GetNMPI();
fHistMpi->Fill(Nmpi);
fHistMultMpi->Fill(Nmpi,fMCEvent->GetNumberOfTracks());
for(Int_t iTracks = 0; iTracks < fMCEvent->GetNumberOfTracks(); iTracks++){
AliVParticle* track = fMCEvent->GetTrack(iTracks);
if(!track){
Printf("ERROR: Could not receive track %d (mc loop)",iTracks);
continue;
}
fHistPt->Fill(track->Pt());
fHistEta->Fill(track->Eta());
fHistdNdetaMpi->Fill(Nmpi,track->Eta());
}
PostData(1, fOutputList);
return;
}
void AliAnalysisTaskPythiaMpi::Terminate(Option_t*){
Info("Terminate","Start and end of Method");
AliAnalysisTaskSE::Terminate();
fOutputList = dynamic_cast<TList*>(GetOutputData(1));
if (!fOutputList) {
printf("ERROR: fOutputList not available\n");
return;
}
}
AliAnalysisTaskPythiaMpi.cxx:1 AliAnalysisTaskPythiaMpi.cxx:2 AliAnalysisTaskPythiaMpi.cxx:3 AliAnalysisTaskPythiaMpi.cxx:4 AliAnalysisTaskPythiaMpi.cxx:5 AliAnalysisTaskPythiaMpi.cxx:6 AliAnalysisTaskPythiaMpi.cxx:7 AliAnalysisTaskPythiaMpi.cxx:8 AliAnalysisTaskPythiaMpi.cxx:9 AliAnalysisTaskPythiaMpi.cxx:10 AliAnalysisTaskPythiaMpi.cxx:11 AliAnalysisTaskPythiaMpi.cxx:12 AliAnalysisTaskPythiaMpi.cxx:13 AliAnalysisTaskPythiaMpi.cxx:14 AliAnalysisTaskPythiaMpi.cxx:15 AliAnalysisTaskPythiaMpi.cxx:16 AliAnalysisTaskPythiaMpi.cxx:17 AliAnalysisTaskPythiaMpi.cxx:18 AliAnalysisTaskPythiaMpi.cxx:19 AliAnalysisTaskPythiaMpi.cxx:20 AliAnalysisTaskPythiaMpi.cxx:21 AliAnalysisTaskPythiaMpi.cxx:22 AliAnalysisTaskPythiaMpi.cxx:23 AliAnalysisTaskPythiaMpi.cxx:24 AliAnalysisTaskPythiaMpi.cxx:25 AliAnalysisTaskPythiaMpi.cxx:26 AliAnalysisTaskPythiaMpi.cxx:27 AliAnalysisTaskPythiaMpi.cxx:28 AliAnalysisTaskPythiaMpi.cxx:29 AliAnalysisTaskPythiaMpi.cxx:30 AliAnalysisTaskPythiaMpi.cxx:31 AliAnalysisTaskPythiaMpi.cxx:32 AliAnalysisTaskPythiaMpi.cxx:33 AliAnalysisTaskPythiaMpi.cxx:34 AliAnalysisTaskPythiaMpi.cxx:35 AliAnalysisTaskPythiaMpi.cxx:36 AliAnalysisTaskPythiaMpi.cxx:37 AliAnalysisTaskPythiaMpi.cxx:38 AliAnalysisTaskPythiaMpi.cxx:39 AliAnalysisTaskPythiaMpi.cxx:40 AliAnalysisTaskPythiaMpi.cxx:41 AliAnalysisTaskPythiaMpi.cxx:42 AliAnalysisTaskPythiaMpi.cxx:43 AliAnalysisTaskPythiaMpi.cxx:44 AliAnalysisTaskPythiaMpi.cxx:45 AliAnalysisTaskPythiaMpi.cxx:46 AliAnalysisTaskPythiaMpi.cxx:47 AliAnalysisTaskPythiaMpi.cxx:48 AliAnalysisTaskPythiaMpi.cxx:49 AliAnalysisTaskPythiaMpi.cxx:50 AliAnalysisTaskPythiaMpi.cxx:51 AliAnalysisTaskPythiaMpi.cxx:52 AliAnalysisTaskPythiaMpi.cxx:53 AliAnalysisTaskPythiaMpi.cxx:54 AliAnalysisTaskPythiaMpi.cxx:55 AliAnalysisTaskPythiaMpi.cxx:56 AliAnalysisTaskPythiaMpi.cxx:57 AliAnalysisTaskPythiaMpi.cxx:58 AliAnalysisTaskPythiaMpi.cxx:59 AliAnalysisTaskPythiaMpi.cxx:60 AliAnalysisTaskPythiaMpi.cxx:61 AliAnalysisTaskPythiaMpi.cxx:62 AliAnalysisTaskPythiaMpi.cxx:63 AliAnalysisTaskPythiaMpi.cxx:64 AliAnalysisTaskPythiaMpi.cxx:65 AliAnalysisTaskPythiaMpi.cxx:66 AliAnalysisTaskPythiaMpi.cxx:67 AliAnalysisTaskPythiaMpi.cxx:68 AliAnalysisTaskPythiaMpi.cxx:69 AliAnalysisTaskPythiaMpi.cxx:70 AliAnalysisTaskPythiaMpi.cxx:71 AliAnalysisTaskPythiaMpi.cxx:72 AliAnalysisTaskPythiaMpi.cxx:73 AliAnalysisTaskPythiaMpi.cxx:74 AliAnalysisTaskPythiaMpi.cxx:75 AliAnalysisTaskPythiaMpi.cxx:76 AliAnalysisTaskPythiaMpi.cxx:77 AliAnalysisTaskPythiaMpi.cxx:78 AliAnalysisTaskPythiaMpi.cxx:79 AliAnalysisTaskPythiaMpi.cxx:80 AliAnalysisTaskPythiaMpi.cxx:81 AliAnalysisTaskPythiaMpi.cxx:82 AliAnalysisTaskPythiaMpi.cxx:83 AliAnalysisTaskPythiaMpi.cxx:84 AliAnalysisTaskPythiaMpi.cxx:85 AliAnalysisTaskPythiaMpi.cxx:86 AliAnalysisTaskPythiaMpi.cxx:87 AliAnalysisTaskPythiaMpi.cxx:88 AliAnalysisTaskPythiaMpi.cxx:89 AliAnalysisTaskPythiaMpi.cxx:90 AliAnalysisTaskPythiaMpi.cxx:91 AliAnalysisTaskPythiaMpi.cxx:92 AliAnalysisTaskPythiaMpi.cxx:93 AliAnalysisTaskPythiaMpi.cxx:94 AliAnalysisTaskPythiaMpi.cxx:95 AliAnalysisTaskPythiaMpi.cxx:96 AliAnalysisTaskPythiaMpi.cxx:97 AliAnalysisTaskPythiaMpi.cxx:98 AliAnalysisTaskPythiaMpi.cxx:99 AliAnalysisTaskPythiaMpi.cxx:100 AliAnalysisTaskPythiaMpi.cxx:101 AliAnalysisTaskPythiaMpi.cxx:102 AliAnalysisTaskPythiaMpi.cxx:103 AliAnalysisTaskPythiaMpi.cxx:104 AliAnalysisTaskPythiaMpi.cxx:105 AliAnalysisTaskPythiaMpi.cxx:106 AliAnalysisTaskPythiaMpi.cxx:107 AliAnalysisTaskPythiaMpi.cxx:108 AliAnalysisTaskPythiaMpi.cxx:109 AliAnalysisTaskPythiaMpi.cxx:110 AliAnalysisTaskPythiaMpi.cxx:111 AliAnalysisTaskPythiaMpi.cxx:112 AliAnalysisTaskPythiaMpi.cxx:113 AliAnalysisTaskPythiaMpi.cxx:114 AliAnalysisTaskPythiaMpi.cxx:115 AliAnalysisTaskPythiaMpi.cxx:116 AliAnalysisTaskPythiaMpi.cxx:117 AliAnalysisTaskPythiaMpi.cxx:118 AliAnalysisTaskPythiaMpi.cxx:119 AliAnalysisTaskPythiaMpi.cxx:120 AliAnalysisTaskPythiaMpi.cxx:121 AliAnalysisTaskPythiaMpi.cxx:122 AliAnalysisTaskPythiaMpi.cxx:123 AliAnalysisTaskPythiaMpi.cxx:124 AliAnalysisTaskPythiaMpi.cxx:125 AliAnalysisTaskPythiaMpi.cxx:126 AliAnalysisTaskPythiaMpi.cxx:127 AliAnalysisTaskPythiaMpi.cxx:128 AliAnalysisTaskPythiaMpi.cxx:129 AliAnalysisTaskPythiaMpi.cxx:130 AliAnalysisTaskPythiaMpi.cxx:131 AliAnalysisTaskPythiaMpi.cxx:132 AliAnalysisTaskPythiaMpi.cxx:133 AliAnalysisTaskPythiaMpi.cxx:134 AliAnalysisTaskPythiaMpi.cxx:135 AliAnalysisTaskPythiaMpi.cxx:136 AliAnalysisTaskPythiaMpi.cxx:137 AliAnalysisTaskPythiaMpi.cxx:138 AliAnalysisTaskPythiaMpi.cxx:139 AliAnalysisTaskPythiaMpi.cxx:140 AliAnalysisTaskPythiaMpi.cxx:141 AliAnalysisTaskPythiaMpi.cxx:142 AliAnalysisTaskPythiaMpi.cxx:143 AliAnalysisTaskPythiaMpi.cxx:144 AliAnalysisTaskPythiaMpi.cxx:145 AliAnalysisTaskPythiaMpi.cxx:146 AliAnalysisTaskPythiaMpi.cxx:147 AliAnalysisTaskPythiaMpi.cxx:148 AliAnalysisTaskPythiaMpi.cxx:149 AliAnalysisTaskPythiaMpi.cxx:150 AliAnalysisTaskPythiaMpi.cxx:151 AliAnalysisTaskPythiaMpi.cxx:152 AliAnalysisTaskPythiaMpi.cxx:153 AliAnalysisTaskPythiaMpi.cxx:154 AliAnalysisTaskPythiaMpi.cxx:155 AliAnalysisTaskPythiaMpi.cxx:156 AliAnalysisTaskPythiaMpi.cxx:157 AliAnalysisTaskPythiaMpi.cxx:158 AliAnalysisTaskPythiaMpi.cxx:159 AliAnalysisTaskPythiaMpi.cxx:160 AliAnalysisTaskPythiaMpi.cxx:161 AliAnalysisTaskPythiaMpi.cxx:162 AliAnalysisTaskPythiaMpi.cxx:163 AliAnalysisTaskPythiaMpi.cxx:164 AliAnalysisTaskPythiaMpi.cxx:165 AliAnalysisTaskPythiaMpi.cxx:166 AliAnalysisTaskPythiaMpi.cxx:167 AliAnalysisTaskPythiaMpi.cxx:168 AliAnalysisTaskPythiaMpi.cxx:169 AliAnalysisTaskPythiaMpi.cxx:170 AliAnalysisTaskPythiaMpi.cxx:171 AliAnalysisTaskPythiaMpi.cxx:172 AliAnalysisTaskPythiaMpi.cxx:173 AliAnalysisTaskPythiaMpi.cxx:174 AliAnalysisTaskPythiaMpi.cxx:175 AliAnalysisTaskPythiaMpi.cxx:176 AliAnalysisTaskPythiaMpi.cxx:177 AliAnalysisTaskPythiaMpi.cxx:178 AliAnalysisTaskPythiaMpi.cxx:179 AliAnalysisTaskPythiaMpi.cxx:180 AliAnalysisTaskPythiaMpi.cxx:181 AliAnalysisTaskPythiaMpi.cxx:182 AliAnalysisTaskPythiaMpi.cxx:183 AliAnalysisTaskPythiaMpi.cxx:184 AliAnalysisTaskPythiaMpi.cxx:185 AliAnalysisTaskPythiaMpi.cxx:186 AliAnalysisTaskPythiaMpi.cxx:187 AliAnalysisTaskPythiaMpi.cxx:188 AliAnalysisTaskPythiaMpi.cxx:189 AliAnalysisTaskPythiaMpi.cxx:190 AliAnalysisTaskPythiaMpi.cxx:191 AliAnalysisTaskPythiaMpi.cxx:192 AliAnalysisTaskPythiaMpi.cxx:193 AliAnalysisTaskPythiaMpi.cxx:194 AliAnalysisTaskPythiaMpi.cxx:195 AliAnalysisTaskPythiaMpi.cxx:196 AliAnalysisTaskPythiaMpi.cxx:197 AliAnalysisTaskPythiaMpi.cxx:198 AliAnalysisTaskPythiaMpi.cxx:199 AliAnalysisTaskPythiaMpi.cxx:200 AliAnalysisTaskPythiaMpi.cxx:201 AliAnalysisTaskPythiaMpi.cxx:202 AliAnalysisTaskPythiaMpi.cxx:203 AliAnalysisTaskPythiaMpi.cxx:204 AliAnalysisTaskPythiaMpi.cxx:205 AliAnalysisTaskPythiaMpi.cxx:206 AliAnalysisTaskPythiaMpi.cxx:207 AliAnalysisTaskPythiaMpi.cxx:208 AliAnalysisTaskPythiaMpi.cxx:209 AliAnalysisTaskPythiaMpi.cxx:210 AliAnalysisTaskPythiaMpi.cxx:211 AliAnalysisTaskPythiaMpi.cxx:212 AliAnalysisTaskPythiaMpi.cxx:213 AliAnalysisTaskPythiaMpi.cxx:214 AliAnalysisTaskPythiaMpi.cxx:215 AliAnalysisTaskPythiaMpi.cxx:216 AliAnalysisTaskPythiaMpi.cxx:217 AliAnalysisTaskPythiaMpi.cxx:218 AliAnalysisTaskPythiaMpi.cxx:219 AliAnalysisTaskPythiaMpi.cxx:220 AliAnalysisTaskPythiaMpi.cxx:221 AliAnalysisTaskPythiaMpi.cxx:222 AliAnalysisTaskPythiaMpi.cxx:223 AliAnalysisTaskPythiaMpi.cxx:224 AliAnalysisTaskPythiaMpi.cxx:225 AliAnalysisTaskPythiaMpi.cxx:226 AliAnalysisTaskPythiaMpi.cxx:227 AliAnalysisTaskPythiaMpi.cxx:228 AliAnalysisTaskPythiaMpi.cxx:229 AliAnalysisTaskPythiaMpi.cxx:230 AliAnalysisTaskPythiaMpi.cxx:231 AliAnalysisTaskPythiaMpi.cxx:232 AliAnalysisTaskPythiaMpi.cxx:233 AliAnalysisTaskPythiaMpi.cxx:234 AliAnalysisTaskPythiaMpi.cxx:235 AliAnalysisTaskPythiaMpi.cxx:236 AliAnalysisTaskPythiaMpi.cxx:237 AliAnalysisTaskPythiaMpi.cxx:238 AliAnalysisTaskPythiaMpi.cxx:239 AliAnalysisTaskPythiaMpi.cxx:240 AliAnalysisTaskPythiaMpi.cxx:241 AliAnalysisTaskPythiaMpi.cxx:242 AliAnalysisTaskPythiaMpi.cxx:243 AliAnalysisTaskPythiaMpi.cxx:244 AliAnalysisTaskPythiaMpi.cxx:245 AliAnalysisTaskPythiaMpi.cxx:246 AliAnalysisTaskPythiaMpi.cxx:247 AliAnalysisTaskPythiaMpi.cxx:248 AliAnalysisTaskPythiaMpi.cxx:249 AliAnalysisTaskPythiaMpi.cxx:250 AliAnalysisTaskPythiaMpi.cxx:251 AliAnalysisTaskPythiaMpi.cxx:252 AliAnalysisTaskPythiaMpi.cxx:253 AliAnalysisTaskPythiaMpi.cxx:254 AliAnalysisTaskPythiaMpi.cxx:255 AliAnalysisTaskPythiaMpi.cxx:256 AliAnalysisTaskPythiaMpi.cxx:257 AliAnalysisTaskPythiaMpi.cxx:258 AliAnalysisTaskPythiaMpi.cxx:259 AliAnalysisTaskPythiaMpi.cxx:260 AliAnalysisTaskPythiaMpi.cxx:261 AliAnalysisTaskPythiaMpi.cxx:262 AliAnalysisTaskPythiaMpi.cxx:263 AliAnalysisTaskPythiaMpi.cxx:264 AliAnalysisTaskPythiaMpi.cxx:265 AliAnalysisTaskPythiaMpi.cxx:266 AliAnalysisTaskPythiaMpi.cxx:267 AliAnalysisTaskPythiaMpi.cxx:268 AliAnalysisTaskPythiaMpi.cxx:269 AliAnalysisTaskPythiaMpi.cxx:270 AliAnalysisTaskPythiaMpi.cxx:271 AliAnalysisTaskPythiaMpi.cxx:272 AliAnalysisTaskPythiaMpi.cxx:273 AliAnalysisTaskPythiaMpi.cxx:274 AliAnalysisTaskPythiaMpi.cxx:275 AliAnalysisTaskPythiaMpi.cxx:276 AliAnalysisTaskPythiaMpi.cxx:277 AliAnalysisTaskPythiaMpi.cxx:278 AliAnalysisTaskPythiaMpi.cxx:279 AliAnalysisTaskPythiaMpi.cxx:280 AliAnalysisTaskPythiaMpi.cxx:281 AliAnalysisTaskPythiaMpi.cxx:282