#include "AliStack.h"
#include "TParticle.h"
#include "AliCaloPhoton.h"
#include "TH1.h"
#include "AliAnalysisTaskPi0FlowMCParamWeights.h"
ClassImp(AliAnalysisTaskPi0FlowMCParamWeights);
AliAnalysisTaskPi0FlowMCParamWeights::AliAnalysisTaskPi0FlowMCParamWeights(const char* name, AliAnalysisTaskPi0Flow::Period period)
: AliAnalysisTaskPi0FlowMC(name, period)
{}
AliAnalysisTaskPi0FlowMCParamWeights::~AliAnalysisTaskPi0FlowMCParamWeights()
{}
void AliAnalysisTaskPi0FlowMCParamWeights::UserCreateOutputObjects()
{
AliAnalysisTaskPi0FlowMC::UserCreateOutputObjects();
TH1 * hist = 0;
char key[80];
const int kNPID = 14;
const char* pidNames[kNPID] = {"All", "Allcore", "Disp", "Disp2", "Dispcore", "Disp2core", "CPV", "CPVcore", "CPV2", "CPV2core", "Both", "Bothcore", "Both2", "Both2core"};
for(UInt_t iBin=0; iBin<GetNumberOfCentralityBins(); iBin++) {
for(Int_t ipid=0; ipid < kNPID; ipid++){
sprintf(key,"hPi0%s_cen%d", pidNames[ipid],iBin);
hist = dynamic_cast<TH1*>(fOutputContainer->FindObject(key));
hist->Sumw2(); printf(" ->Sumw2 invoked for %s.\n",key);
sprintf(key,"hMiPi0%s_cen%d", pidNames[ipid],iBin);
hist = dynamic_cast<TH1*>(fOutputContainer->FindObject(key));
hist->Sumw2(); printf(" ->Sumw2 invoked for %s.\n",key);
}
}
}
Double_t AliAnalysisTaskPi0FlowMCParamWeights::PrimaryWeight(Int_t primary){
if(primary<0 || primary>=fStack->GetNtrack())
return 1 ;
TParticle* particle = fStack->Particle(primary);
Double_t r=particle->R() ;
Int_t mother = particle->GetFirstMother() ;
while(mother>-1){
if(r<1.)
break ;
particle = fStack->Particle(mother);
mother = particle->GetFirstMother() ;
r=particle->R() ;
}
return TMath::Max(0.,PrimaryParticleWeight(particle)) ;
}
Double_t AliAnalysisTaskPi0FlowMCParamWeights::PrimaryParticleWeight(TParticle * particle){
Int_t pdg = particle->GetPdgCode() ;
Double_t x = particle->Pt() ;
Int_t mother = particle->GetFirstMother() ;
while(TMath::Abs(pdg)<100){
if(mother>-1){
TParticle * tmpP=fStack->Particle(mother) ;
pdg=tmpP->GetPdgCode() ;
x = tmpP->Pt() ;
mother = tmpP->GetFirstMother() ;
}
else{
return 1.;
}
}
Double_t w = 15.9695 -26.2752*x + 16.7259*x*x -4.77561*x*x*x +0.602569*x*x*x*x;
return 1./w;
}
AliAnalysisTaskPi0FlowMCParamWeights.cxx:1 AliAnalysisTaskPi0FlowMCParamWeights.cxx:2 AliAnalysisTaskPi0FlowMCParamWeights.cxx:3 AliAnalysisTaskPi0FlowMCParamWeights.cxx:4 AliAnalysisTaskPi0FlowMCParamWeights.cxx:5 AliAnalysisTaskPi0FlowMCParamWeights.cxx:6 AliAnalysisTaskPi0FlowMCParamWeights.cxx:7 AliAnalysisTaskPi0FlowMCParamWeights.cxx:8 AliAnalysisTaskPi0FlowMCParamWeights.cxx:9 AliAnalysisTaskPi0FlowMCParamWeights.cxx:10 AliAnalysisTaskPi0FlowMCParamWeights.cxx:11 AliAnalysisTaskPi0FlowMCParamWeights.cxx:12 AliAnalysisTaskPi0FlowMCParamWeights.cxx:13 AliAnalysisTaskPi0FlowMCParamWeights.cxx:14 AliAnalysisTaskPi0FlowMCParamWeights.cxx:15 AliAnalysisTaskPi0FlowMCParamWeights.cxx:16 AliAnalysisTaskPi0FlowMCParamWeights.cxx:17 AliAnalysisTaskPi0FlowMCParamWeights.cxx:18 AliAnalysisTaskPi0FlowMCParamWeights.cxx:19 AliAnalysisTaskPi0FlowMCParamWeights.cxx:20 AliAnalysisTaskPi0FlowMCParamWeights.cxx:21 AliAnalysisTaskPi0FlowMCParamWeights.cxx:22 AliAnalysisTaskPi0FlowMCParamWeights.cxx:23 AliAnalysisTaskPi0FlowMCParamWeights.cxx:24 AliAnalysisTaskPi0FlowMCParamWeights.cxx:25 AliAnalysisTaskPi0FlowMCParamWeights.cxx:26 AliAnalysisTaskPi0FlowMCParamWeights.cxx:27 AliAnalysisTaskPi0FlowMCParamWeights.cxx:28 AliAnalysisTaskPi0FlowMCParamWeights.cxx:29 AliAnalysisTaskPi0FlowMCParamWeights.cxx:30 AliAnalysisTaskPi0FlowMCParamWeights.cxx:31 AliAnalysisTaskPi0FlowMCParamWeights.cxx:32 AliAnalysisTaskPi0FlowMCParamWeights.cxx:33 AliAnalysisTaskPi0FlowMCParamWeights.cxx:34 AliAnalysisTaskPi0FlowMCParamWeights.cxx:35 AliAnalysisTaskPi0FlowMCParamWeights.cxx:36 AliAnalysisTaskPi0FlowMCParamWeights.cxx:37 AliAnalysisTaskPi0FlowMCParamWeights.cxx:38 AliAnalysisTaskPi0FlowMCParamWeights.cxx:39 AliAnalysisTaskPi0FlowMCParamWeights.cxx:40 AliAnalysisTaskPi0FlowMCParamWeights.cxx:41 AliAnalysisTaskPi0FlowMCParamWeights.cxx:42 AliAnalysisTaskPi0FlowMCParamWeights.cxx:43 AliAnalysisTaskPi0FlowMCParamWeights.cxx:44 AliAnalysisTaskPi0FlowMCParamWeights.cxx:45 AliAnalysisTaskPi0FlowMCParamWeights.cxx:46 AliAnalysisTaskPi0FlowMCParamWeights.cxx:47 AliAnalysisTaskPi0FlowMCParamWeights.cxx:48 AliAnalysisTaskPi0FlowMCParamWeights.cxx:49 AliAnalysisTaskPi0FlowMCParamWeights.cxx:50 AliAnalysisTaskPi0FlowMCParamWeights.cxx:51 AliAnalysisTaskPi0FlowMCParamWeights.cxx:52 AliAnalysisTaskPi0FlowMCParamWeights.cxx:53 AliAnalysisTaskPi0FlowMCParamWeights.cxx:54 AliAnalysisTaskPi0FlowMCParamWeights.cxx:55 AliAnalysisTaskPi0FlowMCParamWeights.cxx:56 AliAnalysisTaskPi0FlowMCParamWeights.cxx:57 AliAnalysisTaskPi0FlowMCParamWeights.cxx:58 AliAnalysisTaskPi0FlowMCParamWeights.cxx:59 AliAnalysisTaskPi0FlowMCParamWeights.cxx:60 AliAnalysisTaskPi0FlowMCParamWeights.cxx:61 AliAnalysisTaskPi0FlowMCParamWeights.cxx:62 AliAnalysisTaskPi0FlowMCParamWeights.cxx:63 AliAnalysisTaskPi0FlowMCParamWeights.cxx:64 AliAnalysisTaskPi0FlowMCParamWeights.cxx:65 AliAnalysisTaskPi0FlowMCParamWeights.cxx:66 AliAnalysisTaskPi0FlowMCParamWeights.cxx:67 AliAnalysisTaskPi0FlowMCParamWeights.cxx:68 AliAnalysisTaskPi0FlowMCParamWeights.cxx:69 AliAnalysisTaskPi0FlowMCParamWeights.cxx:70 AliAnalysisTaskPi0FlowMCParamWeights.cxx:71 AliAnalysisTaskPi0FlowMCParamWeights.cxx:72 AliAnalysisTaskPi0FlowMCParamWeights.cxx:73 AliAnalysisTaskPi0FlowMCParamWeights.cxx:74 AliAnalysisTaskPi0FlowMCParamWeights.cxx:75 AliAnalysisTaskPi0FlowMCParamWeights.cxx:76 AliAnalysisTaskPi0FlowMCParamWeights.cxx:77 AliAnalysisTaskPi0FlowMCParamWeights.cxx:78 AliAnalysisTaskPi0FlowMCParamWeights.cxx:79 AliAnalysisTaskPi0FlowMCParamWeights.cxx:80 AliAnalysisTaskPi0FlowMCParamWeights.cxx:81 AliAnalysisTaskPi0FlowMCParamWeights.cxx:82 AliAnalysisTaskPi0FlowMCParamWeights.cxx:83 AliAnalysisTaskPi0FlowMCParamWeights.cxx:84 AliAnalysisTaskPi0FlowMCParamWeights.cxx:85 AliAnalysisTaskPi0FlowMCParamWeights.cxx:86 AliAnalysisTaskPi0FlowMCParamWeights.cxx:87 AliAnalysisTaskPi0FlowMCParamWeights.cxx:88 AliAnalysisTaskPi0FlowMCParamWeights.cxx:89 AliAnalysisTaskPi0FlowMCParamWeights.cxx:90 AliAnalysisTaskPi0FlowMCParamWeights.cxx:91 AliAnalysisTaskPi0FlowMCParamWeights.cxx:92 AliAnalysisTaskPi0FlowMCParamWeights.cxx:93 AliAnalysisTaskPi0FlowMCParamWeights.cxx:94 AliAnalysisTaskPi0FlowMCParamWeights.cxx:95 AliAnalysisTaskPi0FlowMCParamWeights.cxx:96 AliAnalysisTaskPi0FlowMCParamWeights.cxx:97 AliAnalysisTaskPi0FlowMCParamWeights.cxx:98 AliAnalysisTaskPi0FlowMCParamWeights.cxx:99 AliAnalysisTaskPi0FlowMCParamWeights.cxx:100 AliAnalysisTaskPi0FlowMCParamWeights.cxx:101 AliAnalysisTaskPi0FlowMCParamWeights.cxx:102 AliAnalysisTaskPi0FlowMCParamWeights.cxx:103 AliAnalysisTaskPi0FlowMCParamWeights.cxx:104 AliAnalysisTaskPi0FlowMCParamWeights.cxx:105 AliAnalysisTaskPi0FlowMCParamWeights.cxx:106 AliAnalysisTaskPi0FlowMCParamWeights.cxx:107 AliAnalysisTaskPi0FlowMCParamWeights.cxx:108 AliAnalysisTaskPi0FlowMCParamWeights.cxx:109 AliAnalysisTaskPi0FlowMCParamWeights.cxx:110 AliAnalysisTaskPi0FlowMCParamWeights.cxx:111 AliAnalysisTaskPi0FlowMCParamWeights.cxx:112 AliAnalysisTaskPi0FlowMCParamWeights.cxx:113 AliAnalysisTaskPi0FlowMCParamWeights.cxx:114 AliAnalysisTaskPi0FlowMCParamWeights.cxx:115 AliAnalysisTaskPi0FlowMCParamWeights.cxx:116 AliAnalysisTaskPi0FlowMCParamWeights.cxx:117 AliAnalysisTaskPi0FlowMCParamWeights.cxx:118 AliAnalysisTaskPi0FlowMCParamWeights.cxx:119 AliAnalysisTaskPi0FlowMCParamWeights.cxx:120