#include <TChain.h>
#include "AliAnalysisManager.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "TNtuple.h"
#include "TH1F.h"
#include "TFile.h"
#include "AliLog.h"
#include "AliAnalysisTaskPtMothFromPtDaugh.h"
#include "AliPtMothFromPtDaugh.h"
#include "AliAnalysisTaskSE.h"
ClassImp(AliAnalysisTaskPtMothFromPtDaugh)
AliAnalysisTaskPtMothFromPtDaugh::AliAnalysisTaskPtMothFromPtDaugh() :
AliAnalysisTaskSE(),
fPtMothDaugh(0),
fDecayKine(0),
fReadKineFromNtupla(0),
fFileNtuplaName(0),
fList(0)
{
AliInfo("Default Constructor!\n");
}
AliAnalysisTaskPtMothFromPtDaugh::AliAnalysisTaskPtMothFromPtDaugh(Bool_t IsNtuplaCreated) :
AliAnalysisTaskSE("TaskAliPtMothFromDaugh"),
fPtMothDaugh(0),
fDecayKine(0),
fReadKineFromNtupla(IsNtuplaCreated),
fFileNtuplaName(0),
fList(0)
{
if(!IsNtuplaCreated){
DefineInput(0,TChain::Class()); DefineOutput(2,TNtuple::Class());}
else {AliInfo("Ntupla is already created! Loop on events is skipped!\n");}
DefineOutput(1,TList::Class());
}
AliAnalysisTaskPtMothFromPtDaugh::~AliAnalysisTaskPtMothFromPtDaugh()
{
if(fPtMothDaugh)
{ delete fPtMothDaugh; fPtMothDaugh=0;}
if(fDecayKine)
{ delete fDecayKine; fDecayKine=0;}
if(fFileNtuplaName)
{ delete fFileNtuplaName; fFileNtuplaName=0;}
if (fList)
{ delete fList; fList = 0; }
}
void AliAnalysisTaskPtMothFromPtDaugh::UserCreateOutputObjects()
{
fList = new TList();
fList->SetOwner();
if(fReadKineFromNtupla) return;
if(!AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()) {
Fatal("UserCreateOutputObjects", "This task needs a MC handler");
return;
}
fDecayKine=new TNtuple("DecayKine","Decay kinematics","pdgM:pxM:pyM:pzM:yM:etaM:pdgD:pxD:pyD:pzD:yD:etaD");
return;
}
void AliAnalysisTaskPtMothFromPtDaugh::UserExec(Option_t *)
{
AliMCEventHandler* mcHandler = dynamic_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
if(!mcHandler) {AliError("Could not get MC event handler!"); return; }
mcHandler->SetReadTR(kFALSE);
AliMCEvent* mcEvent = mcHandler->MCEvent();
if(!mcEvent){ AliError("Could not get MC event!"); return; }
AliStack* stack = mcEvent->Stack();
if(!stack){ AliError("Could not get stack!"); return; }
Int_t nPrims = stack->GetNprimary();
float *inf = new float[12];
for (Int_t iTrack = 0; iTrack < nPrims; ++iTrack) {
TParticle *part = stack->Particle(iTrack);
Int_t pdg=TMath::Abs(part->GetPdgCode());
Double_t y,y2;
Int_t labelDaugh;
if(fPtMothDaugh->IsMothers(pdg))
{
if(!fPtMothDaugh->IsSelectedDaugh(part,labelDaugh,stack)) continue;
TParticle *pDaugh=stack->Particle(labelDaugh);
fPtMothDaugh->Rapidity(part,y);
fPtMothDaugh->Rapidity(pDaugh,y2);
inf[0]=part->GetPdgCode();
inf[1]=part->Px();
inf[2]=part->Py();
inf[3]=part->Pz();
inf[4]=y;
inf[5]=part->Eta();
inf[6]=pDaugh->GetPdgCode();
inf[7]=pDaugh->Px();
inf[8]=pDaugh->Py();
inf[9]=pDaugh->Pz();
inf[10]=y2;
inf[11]=pDaugh->Eta();
fDecayKine->Fill(inf);
}
}
PostData(2,fDecayKine);
PostData(1,fList);
delete [] inf;
return;
}
void AliAnalysisTaskPtMothFromPtDaugh::Terminate(Option_t *)
{
if(fReadKineFromNtupla) fDecayKine = ReadNtuplaFromFile(fFileNtuplaName);
else{
fDecayKine = dynamic_cast<TNtuple*>(GetOutputData(2));
fList = dynamic_cast<TList*>(GetOutputData(1));
}
if(!fDecayKine) { AliInfo("TNtupla not available!\n"); return; }
if(!fList) { AliInfo("TList not availble!\n"); return; }
fPtMothDaugh->SetDecayNtupla(fDecayKine);
fPtMothDaugh->EvaluatePtMoth();
TH1F *fHistoPt = (TH1F*)fPtMothDaugh->GetHistoPtMother()->Clone();
TH1F *fHistoPtMin = (TH1F*)fPtMothDaugh->GetHistoPtMinMother()->Clone();
fList->Add(fHistoPt);
fList->Add(fHistoPtMin);
PostData(1,fList);
return;
}
TNtuple *AliAnalysisTaskPtMothFromPtDaugh::ReadNtuplaFromFile(char *inFileName)
{
TFile *f = new TFile(inFileName,"READ");
if(!f) {AliError(Form("File %s with TNtupla doesn't exist!",inFileName)); return 0x0;}
TNtuple *DecayKine=(TNtuple*)f->Get("DecayKine");
if(!DecayKine) { AliError("The TNtupla doesn't exist!\n"); return 0x0;}
return DecayKine;
}
AliAnalysisTaskPtMothFromPtDaugh.cxx:1 AliAnalysisTaskPtMothFromPtDaugh.cxx:2 AliAnalysisTaskPtMothFromPtDaugh.cxx:3 AliAnalysisTaskPtMothFromPtDaugh.cxx:4 AliAnalysisTaskPtMothFromPtDaugh.cxx:5 AliAnalysisTaskPtMothFromPtDaugh.cxx:6 AliAnalysisTaskPtMothFromPtDaugh.cxx:7 AliAnalysisTaskPtMothFromPtDaugh.cxx:8 AliAnalysisTaskPtMothFromPtDaugh.cxx:9 AliAnalysisTaskPtMothFromPtDaugh.cxx:10 AliAnalysisTaskPtMothFromPtDaugh.cxx:11 AliAnalysisTaskPtMothFromPtDaugh.cxx:12 AliAnalysisTaskPtMothFromPtDaugh.cxx:13 AliAnalysisTaskPtMothFromPtDaugh.cxx:14 AliAnalysisTaskPtMothFromPtDaugh.cxx:15 AliAnalysisTaskPtMothFromPtDaugh.cxx:16 AliAnalysisTaskPtMothFromPtDaugh.cxx:17 AliAnalysisTaskPtMothFromPtDaugh.cxx:18 AliAnalysisTaskPtMothFromPtDaugh.cxx:19 AliAnalysisTaskPtMothFromPtDaugh.cxx:20 AliAnalysisTaskPtMothFromPtDaugh.cxx:21 AliAnalysisTaskPtMothFromPtDaugh.cxx:22 AliAnalysisTaskPtMothFromPtDaugh.cxx:23 AliAnalysisTaskPtMothFromPtDaugh.cxx:24 AliAnalysisTaskPtMothFromPtDaugh.cxx:25 AliAnalysisTaskPtMothFromPtDaugh.cxx:26 AliAnalysisTaskPtMothFromPtDaugh.cxx:27 AliAnalysisTaskPtMothFromPtDaugh.cxx:28 AliAnalysisTaskPtMothFromPtDaugh.cxx:29 AliAnalysisTaskPtMothFromPtDaugh.cxx:30 AliAnalysisTaskPtMothFromPtDaugh.cxx:31 AliAnalysisTaskPtMothFromPtDaugh.cxx:32 AliAnalysisTaskPtMothFromPtDaugh.cxx:33 AliAnalysisTaskPtMothFromPtDaugh.cxx:34 AliAnalysisTaskPtMothFromPtDaugh.cxx:35 AliAnalysisTaskPtMothFromPtDaugh.cxx:36 AliAnalysisTaskPtMothFromPtDaugh.cxx:37 AliAnalysisTaskPtMothFromPtDaugh.cxx:38 AliAnalysisTaskPtMothFromPtDaugh.cxx:39 AliAnalysisTaskPtMothFromPtDaugh.cxx:40 AliAnalysisTaskPtMothFromPtDaugh.cxx:41 AliAnalysisTaskPtMothFromPtDaugh.cxx:42 AliAnalysisTaskPtMothFromPtDaugh.cxx:43 AliAnalysisTaskPtMothFromPtDaugh.cxx:44 AliAnalysisTaskPtMothFromPtDaugh.cxx:45 AliAnalysisTaskPtMothFromPtDaugh.cxx:46 AliAnalysisTaskPtMothFromPtDaugh.cxx:47 AliAnalysisTaskPtMothFromPtDaugh.cxx:48 AliAnalysisTaskPtMothFromPtDaugh.cxx:49 AliAnalysisTaskPtMothFromPtDaugh.cxx:50 AliAnalysisTaskPtMothFromPtDaugh.cxx:51 AliAnalysisTaskPtMothFromPtDaugh.cxx:52 AliAnalysisTaskPtMothFromPtDaugh.cxx:53 AliAnalysisTaskPtMothFromPtDaugh.cxx:54 AliAnalysisTaskPtMothFromPtDaugh.cxx:55 AliAnalysisTaskPtMothFromPtDaugh.cxx:56 AliAnalysisTaskPtMothFromPtDaugh.cxx:57 AliAnalysisTaskPtMothFromPtDaugh.cxx:58 AliAnalysisTaskPtMothFromPtDaugh.cxx:59 AliAnalysisTaskPtMothFromPtDaugh.cxx:60 AliAnalysisTaskPtMothFromPtDaugh.cxx:61 AliAnalysisTaskPtMothFromPtDaugh.cxx:62 AliAnalysisTaskPtMothFromPtDaugh.cxx:63 AliAnalysisTaskPtMothFromPtDaugh.cxx:64 AliAnalysisTaskPtMothFromPtDaugh.cxx:65 AliAnalysisTaskPtMothFromPtDaugh.cxx:66 AliAnalysisTaskPtMothFromPtDaugh.cxx:67 AliAnalysisTaskPtMothFromPtDaugh.cxx:68 AliAnalysisTaskPtMothFromPtDaugh.cxx:69 AliAnalysisTaskPtMothFromPtDaugh.cxx:70 AliAnalysisTaskPtMothFromPtDaugh.cxx:71 AliAnalysisTaskPtMothFromPtDaugh.cxx:72 AliAnalysisTaskPtMothFromPtDaugh.cxx:73 AliAnalysisTaskPtMothFromPtDaugh.cxx:74 AliAnalysisTaskPtMothFromPtDaugh.cxx:75 AliAnalysisTaskPtMothFromPtDaugh.cxx:76 AliAnalysisTaskPtMothFromPtDaugh.cxx:77 AliAnalysisTaskPtMothFromPtDaugh.cxx:78 AliAnalysisTaskPtMothFromPtDaugh.cxx:79 AliAnalysisTaskPtMothFromPtDaugh.cxx:80 AliAnalysisTaskPtMothFromPtDaugh.cxx:81 AliAnalysisTaskPtMothFromPtDaugh.cxx:82 AliAnalysisTaskPtMothFromPtDaugh.cxx:83 AliAnalysisTaskPtMothFromPtDaugh.cxx:84 AliAnalysisTaskPtMothFromPtDaugh.cxx:85 AliAnalysisTaskPtMothFromPtDaugh.cxx:86 AliAnalysisTaskPtMothFromPtDaugh.cxx:87 AliAnalysisTaskPtMothFromPtDaugh.cxx:88 AliAnalysisTaskPtMothFromPtDaugh.cxx:89 AliAnalysisTaskPtMothFromPtDaugh.cxx:90 AliAnalysisTaskPtMothFromPtDaugh.cxx:91 AliAnalysisTaskPtMothFromPtDaugh.cxx:92 AliAnalysisTaskPtMothFromPtDaugh.cxx:93 AliAnalysisTaskPtMothFromPtDaugh.cxx:94 AliAnalysisTaskPtMothFromPtDaugh.cxx:95 AliAnalysisTaskPtMothFromPtDaugh.cxx:96 AliAnalysisTaskPtMothFromPtDaugh.cxx:97 AliAnalysisTaskPtMothFromPtDaugh.cxx:98 AliAnalysisTaskPtMothFromPtDaugh.cxx:99 AliAnalysisTaskPtMothFromPtDaugh.cxx:100 AliAnalysisTaskPtMothFromPtDaugh.cxx:101 AliAnalysisTaskPtMothFromPtDaugh.cxx:102 AliAnalysisTaskPtMothFromPtDaugh.cxx:103 AliAnalysisTaskPtMothFromPtDaugh.cxx:104 AliAnalysisTaskPtMothFromPtDaugh.cxx:105 AliAnalysisTaskPtMothFromPtDaugh.cxx:106 AliAnalysisTaskPtMothFromPtDaugh.cxx:107 AliAnalysisTaskPtMothFromPtDaugh.cxx:108 AliAnalysisTaskPtMothFromPtDaugh.cxx:109 AliAnalysisTaskPtMothFromPtDaugh.cxx:110 AliAnalysisTaskPtMothFromPtDaugh.cxx:111 AliAnalysisTaskPtMothFromPtDaugh.cxx:112 AliAnalysisTaskPtMothFromPtDaugh.cxx:113 AliAnalysisTaskPtMothFromPtDaugh.cxx:114 AliAnalysisTaskPtMothFromPtDaugh.cxx:115 AliAnalysisTaskPtMothFromPtDaugh.cxx:116 AliAnalysisTaskPtMothFromPtDaugh.cxx:117 AliAnalysisTaskPtMothFromPtDaugh.cxx:118 AliAnalysisTaskPtMothFromPtDaugh.cxx:119 AliAnalysisTaskPtMothFromPtDaugh.cxx:120 AliAnalysisTaskPtMothFromPtDaugh.cxx:121 AliAnalysisTaskPtMothFromPtDaugh.cxx:122 AliAnalysisTaskPtMothFromPtDaugh.cxx:123 AliAnalysisTaskPtMothFromPtDaugh.cxx:124 AliAnalysisTaskPtMothFromPtDaugh.cxx:125 AliAnalysisTaskPtMothFromPtDaugh.cxx:126 AliAnalysisTaskPtMothFromPtDaugh.cxx:127 AliAnalysisTaskPtMothFromPtDaugh.cxx:128 AliAnalysisTaskPtMothFromPtDaugh.cxx:129 AliAnalysisTaskPtMothFromPtDaugh.cxx:130 AliAnalysisTaskPtMothFromPtDaugh.cxx:131 AliAnalysisTaskPtMothFromPtDaugh.cxx:132 AliAnalysisTaskPtMothFromPtDaugh.cxx:133 AliAnalysisTaskPtMothFromPtDaugh.cxx:134 AliAnalysisTaskPtMothFromPtDaugh.cxx:135 AliAnalysisTaskPtMothFromPtDaugh.cxx:136 AliAnalysisTaskPtMothFromPtDaugh.cxx:137 AliAnalysisTaskPtMothFromPtDaugh.cxx:138 AliAnalysisTaskPtMothFromPtDaugh.cxx:139 AliAnalysisTaskPtMothFromPtDaugh.cxx:140 AliAnalysisTaskPtMothFromPtDaugh.cxx:141 AliAnalysisTaskPtMothFromPtDaugh.cxx:142 AliAnalysisTaskPtMothFromPtDaugh.cxx:143 AliAnalysisTaskPtMothFromPtDaugh.cxx:144 AliAnalysisTaskPtMothFromPtDaugh.cxx:145 AliAnalysisTaskPtMothFromPtDaugh.cxx:146 AliAnalysisTaskPtMothFromPtDaugh.cxx:147 AliAnalysisTaskPtMothFromPtDaugh.cxx:148 AliAnalysisTaskPtMothFromPtDaugh.cxx:149 AliAnalysisTaskPtMothFromPtDaugh.cxx:150 AliAnalysisTaskPtMothFromPtDaugh.cxx:151 AliAnalysisTaskPtMothFromPtDaugh.cxx:152 AliAnalysisTaskPtMothFromPtDaugh.cxx:153 AliAnalysisTaskPtMothFromPtDaugh.cxx:154 AliAnalysisTaskPtMothFromPtDaugh.cxx:155 AliAnalysisTaskPtMothFromPtDaugh.cxx:156 AliAnalysisTaskPtMothFromPtDaugh.cxx:157 AliAnalysisTaskPtMothFromPtDaugh.cxx:158 AliAnalysisTaskPtMothFromPtDaugh.cxx:159 AliAnalysisTaskPtMothFromPtDaugh.cxx:160 AliAnalysisTaskPtMothFromPtDaugh.cxx:161 AliAnalysisTaskPtMothFromPtDaugh.cxx:162 AliAnalysisTaskPtMothFromPtDaugh.cxx:163 AliAnalysisTaskPtMothFromPtDaugh.cxx:164 AliAnalysisTaskPtMothFromPtDaugh.cxx:165 AliAnalysisTaskPtMothFromPtDaugh.cxx:166 AliAnalysisTaskPtMothFromPtDaugh.cxx:167 AliAnalysisTaskPtMothFromPtDaugh.cxx:168 AliAnalysisTaskPtMothFromPtDaugh.cxx:169 AliAnalysisTaskPtMothFromPtDaugh.cxx:170 AliAnalysisTaskPtMothFromPtDaugh.cxx:171 AliAnalysisTaskPtMothFromPtDaugh.cxx:172 AliAnalysisTaskPtMothFromPtDaugh.cxx:173 AliAnalysisTaskPtMothFromPtDaugh.cxx:174 AliAnalysisTaskPtMothFromPtDaugh.cxx:175 AliAnalysisTaskPtMothFromPtDaugh.cxx:176 AliAnalysisTaskPtMothFromPtDaugh.cxx:177 AliAnalysisTaskPtMothFromPtDaugh.cxx:178 AliAnalysisTaskPtMothFromPtDaugh.cxx:179 AliAnalysisTaskPtMothFromPtDaugh.cxx:180 AliAnalysisTaskPtMothFromPtDaugh.cxx:181 AliAnalysisTaskPtMothFromPtDaugh.cxx:182 AliAnalysisTaskPtMothFromPtDaugh.cxx:183 AliAnalysisTaskPtMothFromPtDaugh.cxx:184 AliAnalysisTaskPtMothFromPtDaugh.cxx:185 AliAnalysisTaskPtMothFromPtDaugh.cxx:186 AliAnalysisTaskPtMothFromPtDaugh.cxx:187 AliAnalysisTaskPtMothFromPtDaugh.cxx:188 AliAnalysisTaskPtMothFromPtDaugh.cxx:189 AliAnalysisTaskPtMothFromPtDaugh.cxx:190 AliAnalysisTaskPtMothFromPtDaugh.cxx:191 AliAnalysisTaskPtMothFromPtDaugh.cxx:192 AliAnalysisTaskPtMothFromPtDaugh.cxx:193 AliAnalysisTaskPtMothFromPtDaugh.cxx:194 AliAnalysisTaskPtMothFromPtDaugh.cxx:195 AliAnalysisTaskPtMothFromPtDaugh.cxx:196 AliAnalysisTaskPtMothFromPtDaugh.cxx:197 AliAnalysisTaskPtMothFromPtDaugh.cxx:198 AliAnalysisTaskPtMothFromPtDaugh.cxx:199 AliAnalysisTaskPtMothFromPtDaugh.cxx:200 AliAnalysisTaskPtMothFromPtDaugh.cxx:201 AliAnalysisTaskPtMothFromPtDaugh.cxx:202 AliAnalysisTaskPtMothFromPtDaugh.cxx:203 AliAnalysisTaskPtMothFromPtDaugh.cxx:204 AliAnalysisTaskPtMothFromPtDaugh.cxx:205 AliAnalysisTaskPtMothFromPtDaugh.cxx:206 AliAnalysisTaskPtMothFromPtDaugh.cxx:207 AliAnalysisTaskPtMothFromPtDaugh.cxx:208 AliAnalysisTaskPtMothFromPtDaugh.cxx:209 AliAnalysisTaskPtMothFromPtDaugh.cxx:210 AliAnalysisTaskPtMothFromPtDaugh.cxx:211 AliAnalysisTaskPtMothFromPtDaugh.cxx:212 AliAnalysisTaskPtMothFromPtDaugh.cxx:213 AliAnalysisTaskPtMothFromPtDaugh.cxx:214 AliAnalysisTaskPtMothFromPtDaugh.cxx:215 AliAnalysisTaskPtMothFromPtDaugh.cxx:216 AliAnalysisTaskPtMothFromPtDaugh.cxx:217 AliAnalysisTaskPtMothFromPtDaugh.cxx:218 AliAnalysisTaskPtMothFromPtDaugh.cxx:219 AliAnalysisTaskPtMothFromPtDaugh.cxx:220 AliAnalysisTaskPtMothFromPtDaugh.cxx:221 AliAnalysisTaskPtMothFromPtDaugh.cxx:222 AliAnalysisTaskPtMothFromPtDaugh.cxx:223 AliAnalysisTaskPtMothFromPtDaugh.cxx:224 AliAnalysisTaskPtMothFromPtDaugh.cxx:225 AliAnalysisTaskPtMothFromPtDaugh.cxx:226 AliAnalysisTaskPtMothFromPtDaugh.cxx:227 AliAnalysisTaskPtMothFromPtDaugh.cxx:228 AliAnalysisTaskPtMothFromPtDaugh.cxx:229 AliAnalysisTaskPtMothFromPtDaugh.cxx:230