#include "AliCollisionNormalizationTask.h"
#include <TFile.h>
#include <TH1F.h>
#include <TH2F.h>
#include <AliLog.h>
#include <AliESDEvent.h>
#include <AliHeader.h>
#include "AliCollisionNormalization.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliMultiplicity.h"
#include "AliMCEvent.h"
ClassImp(AliCollisionNormalizationTask)
AliCollisionNormalizationTask::AliCollisionNormalizationTask() :
AliAnalysisTaskSE("AliCollisionNormalizationTask"),
fOutput(0),
fIsMC(0),
fCollisionNormalization(0)
{
DefineOutput(1, TList::Class());
}
AliCollisionNormalizationTask::AliCollisionNormalizationTask(const char* name) :
AliAnalysisTaskSE(name),
fOutput(0),
fIsMC(0),
fCollisionNormalization(new AliCollisionNormalization())
{
DefineOutput(1, TList::Class());
}
AliCollisionNormalizationTask::~AliCollisionNormalizationTask()
{
if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
delete fOutput;
fOutput = 0;
}
}
void AliCollisionNormalizationTask::UserCreateOutputObjects()
{
Printf("AliCollisionNormalizationTask::CreateOutputObjects");
fOutput = new TList;
fOutput->SetOwner();
if (!fCollisionNormalization)
fCollisionNormalization = new AliCollisionNormalization;
fOutput->Add(fCollisionNormalization);
}
void AliCollisionNormalizationTask::UserExec(Option_t*)
{
PostData(1, fOutput);
AliESDEvent * aESD = dynamic_cast<AliESDEvent*>(fInputEvent);
if(!aESD) {
AliFatal("Cannot get ESD");
}
if (strcmp(aESD->ClassName(),"AliESDEvent")) {
AliFatal("Not processing ESDs");
}
AliMCEvent* mcEvent = fIsMC ? MCEvent() : 0;
if (!mcEvent && fIsMC){
AliFatal("Running on MC but no MC handler available");
}
Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB);
const AliMultiplicity* mult = aESD->GetMultiplicity();
if (!mult){
AliError("Can't get mult object");
return;
}
Int_t ntracklet = mult->GetNumberOfTracklets();
const AliESDVertex * vtxESD = aESD->GetPrimaryVertexSPD();
if (IsEventInBinZero()) {
ntracklet = 0;
vtxESD = 0;
}
if (ntracklet > 0 && !vtxESD) {
AliError("No vertex but reconstructed tracklets?");
}
Float_t vz = 0;
if (!fIsMC) vz = vtxESD ? vtxESD->GetZ() : 0;
else vz = mcEvent->GetPrimaryVertex()->GetZ();
if (fIsMC) {
if (!isSelected || !vtxESD) ntracklet = 0;
fCollisionNormalization->FillVzMCGen(vz, ntracklet, mcEvent);
if (isSelected) {
fCollisionNormalization->FillVzMCTrg(vz, ntracklet, mcEvent);
if (vtxESD) fCollisionNormalization->FillVzMCRec(vz, ntracklet, mcEvent);
}
} else {
if (isSelected) {
fCollisionNormalization->FillVzData(vz,ntracklet);
}
}
}
void AliCollisionNormalizationTask::Terminate(Option_t *)
{
fOutput = dynamic_cast<TList*> (GetOutputData(1));
if (!fOutput)
Printf("ERROR: fOutput not available");
}
Bool_t AliCollisionNormalizationTask::IsEventInBinZero() {
Bool_t isZeroBin = kTRUE;
const AliESDEvent* esd= dynamic_cast<AliESDEvent*>(fInputEvent);
if (!esd){
Printf("AliCollisionNormalizationTask::IsEventInBinZero: Can't get ESD");
return kFALSE;
}
const AliMultiplicity* mult = esd->GetMultiplicity();
if (!mult){
Printf("AliCollisionNormalizationTask::IsEventInBinZero: Can't get mult object");
return kFALSE;
}
Int_t ntracklet = mult->GetNumberOfTracklets();
const AliESDVertex * vtxESD = esd->GetPrimaryVertexSPD();
if(vtxESD) {
if( TMath::Abs(vtxESD->GetZ()) <= 15 ) {
if (vtxESD->IsFromVertexerZ()) {
if (vtxESD->GetDispersion()<=0.02 ) {
if(ntracklet>0) isZeroBin = kFALSE;
}
} else if(ntracklet>0) isZeroBin = kFALSE;
}
}
return isZeroBin;
}
AliCollisionNormalizationTask.cxx:1 AliCollisionNormalizationTask.cxx:2 AliCollisionNormalizationTask.cxx:3 AliCollisionNormalizationTask.cxx:4 AliCollisionNormalizationTask.cxx:5 AliCollisionNormalizationTask.cxx:6 AliCollisionNormalizationTask.cxx:7 AliCollisionNormalizationTask.cxx:8 AliCollisionNormalizationTask.cxx:9 AliCollisionNormalizationTask.cxx:10 AliCollisionNormalizationTask.cxx:11 AliCollisionNormalizationTask.cxx:12 AliCollisionNormalizationTask.cxx:13 AliCollisionNormalizationTask.cxx:14 AliCollisionNormalizationTask.cxx:15 AliCollisionNormalizationTask.cxx:16 AliCollisionNormalizationTask.cxx:17 AliCollisionNormalizationTask.cxx:18 AliCollisionNormalizationTask.cxx:19 AliCollisionNormalizationTask.cxx:20 AliCollisionNormalizationTask.cxx:21 AliCollisionNormalizationTask.cxx:22 AliCollisionNormalizationTask.cxx:23 AliCollisionNormalizationTask.cxx:24 AliCollisionNormalizationTask.cxx:25 AliCollisionNormalizationTask.cxx:26 AliCollisionNormalizationTask.cxx:27 AliCollisionNormalizationTask.cxx:28 AliCollisionNormalizationTask.cxx:29 AliCollisionNormalizationTask.cxx:30 AliCollisionNormalizationTask.cxx:31 AliCollisionNormalizationTask.cxx:32 AliCollisionNormalizationTask.cxx:33 AliCollisionNormalizationTask.cxx:34 AliCollisionNormalizationTask.cxx:35 AliCollisionNormalizationTask.cxx:36 AliCollisionNormalizationTask.cxx:37 AliCollisionNormalizationTask.cxx:38 AliCollisionNormalizationTask.cxx:39 AliCollisionNormalizationTask.cxx:40 AliCollisionNormalizationTask.cxx:41 AliCollisionNormalizationTask.cxx:42 AliCollisionNormalizationTask.cxx:43 AliCollisionNormalizationTask.cxx:44 AliCollisionNormalizationTask.cxx:45 AliCollisionNormalizationTask.cxx:46 AliCollisionNormalizationTask.cxx:47 AliCollisionNormalizationTask.cxx:48 AliCollisionNormalizationTask.cxx:49 AliCollisionNormalizationTask.cxx:50 AliCollisionNormalizationTask.cxx:51 AliCollisionNormalizationTask.cxx:52 AliCollisionNormalizationTask.cxx:53 AliCollisionNormalizationTask.cxx:54 AliCollisionNormalizationTask.cxx:55 AliCollisionNormalizationTask.cxx:56 AliCollisionNormalizationTask.cxx:57 AliCollisionNormalizationTask.cxx:58 AliCollisionNormalizationTask.cxx:59 AliCollisionNormalizationTask.cxx:60 AliCollisionNormalizationTask.cxx:61 AliCollisionNormalizationTask.cxx:62 AliCollisionNormalizationTask.cxx:63 AliCollisionNormalizationTask.cxx:64 AliCollisionNormalizationTask.cxx:65 AliCollisionNormalizationTask.cxx:66 AliCollisionNormalizationTask.cxx:67 AliCollisionNormalizationTask.cxx:68 AliCollisionNormalizationTask.cxx:69 AliCollisionNormalizationTask.cxx:70 AliCollisionNormalizationTask.cxx:71 AliCollisionNormalizationTask.cxx:72 AliCollisionNormalizationTask.cxx:73 AliCollisionNormalizationTask.cxx:74 AliCollisionNormalizationTask.cxx:75 AliCollisionNormalizationTask.cxx:76 AliCollisionNormalizationTask.cxx:77 AliCollisionNormalizationTask.cxx:78 AliCollisionNormalizationTask.cxx:79 AliCollisionNormalizationTask.cxx:80 AliCollisionNormalizationTask.cxx:81 AliCollisionNormalizationTask.cxx:82 AliCollisionNormalizationTask.cxx:83 AliCollisionNormalizationTask.cxx:84 AliCollisionNormalizationTask.cxx:85 AliCollisionNormalizationTask.cxx:86 AliCollisionNormalizationTask.cxx:87 AliCollisionNormalizationTask.cxx:88 AliCollisionNormalizationTask.cxx:89 AliCollisionNormalizationTask.cxx:90 AliCollisionNormalizationTask.cxx:91 AliCollisionNormalizationTask.cxx:92 AliCollisionNormalizationTask.cxx:93 AliCollisionNormalizationTask.cxx:94 AliCollisionNormalizationTask.cxx:95 AliCollisionNormalizationTask.cxx:96 AliCollisionNormalizationTask.cxx:97 AliCollisionNormalizationTask.cxx:98 AliCollisionNormalizationTask.cxx:99 AliCollisionNormalizationTask.cxx:100 AliCollisionNormalizationTask.cxx:101 AliCollisionNormalizationTask.cxx:102 AliCollisionNormalizationTask.cxx:103 AliCollisionNormalizationTask.cxx:104 AliCollisionNormalizationTask.cxx:105 AliCollisionNormalizationTask.cxx:106 AliCollisionNormalizationTask.cxx:107 AliCollisionNormalizationTask.cxx:108 AliCollisionNormalizationTask.cxx:109 AliCollisionNormalizationTask.cxx:110 AliCollisionNormalizationTask.cxx:111 AliCollisionNormalizationTask.cxx:112 AliCollisionNormalizationTask.cxx:113 AliCollisionNormalizationTask.cxx:114 AliCollisionNormalizationTask.cxx:115 AliCollisionNormalizationTask.cxx:116 AliCollisionNormalizationTask.cxx:117 AliCollisionNormalizationTask.cxx:118 AliCollisionNormalizationTask.cxx:119 AliCollisionNormalizationTask.cxx:120 AliCollisionNormalizationTask.cxx:121 AliCollisionNormalizationTask.cxx:122 AliCollisionNormalizationTask.cxx:123 AliCollisionNormalizationTask.cxx:124 AliCollisionNormalizationTask.cxx:125 AliCollisionNormalizationTask.cxx:126 AliCollisionNormalizationTask.cxx:127 AliCollisionNormalizationTask.cxx:128 AliCollisionNormalizationTask.cxx:129 AliCollisionNormalizationTask.cxx:130 AliCollisionNormalizationTask.cxx:131 AliCollisionNormalizationTask.cxx:132 AliCollisionNormalizationTask.cxx:133 AliCollisionNormalizationTask.cxx:134 AliCollisionNormalizationTask.cxx:135 AliCollisionNormalizationTask.cxx:136 AliCollisionNormalizationTask.cxx:137 AliCollisionNormalizationTask.cxx:138 AliCollisionNormalizationTask.cxx:139 AliCollisionNormalizationTask.cxx:140 AliCollisionNormalizationTask.cxx:141 AliCollisionNormalizationTask.cxx:142 AliCollisionNormalizationTask.cxx:143 AliCollisionNormalizationTask.cxx:144 AliCollisionNormalizationTask.cxx:145 AliCollisionNormalizationTask.cxx:146 AliCollisionNormalizationTask.cxx:147 AliCollisionNormalizationTask.cxx:148 AliCollisionNormalizationTask.cxx:149 AliCollisionNormalizationTask.cxx:150 AliCollisionNormalizationTask.cxx:151 AliCollisionNormalizationTask.cxx:152 AliCollisionNormalizationTask.cxx:153 AliCollisionNormalizationTask.cxx:154 AliCollisionNormalizationTask.cxx:155 AliCollisionNormalizationTask.cxx:156 AliCollisionNormalizationTask.cxx:157 AliCollisionNormalizationTask.cxx:158 AliCollisionNormalizationTask.cxx:159 AliCollisionNormalizationTask.cxx:160 AliCollisionNormalizationTask.cxx:161 AliCollisionNormalizationTask.cxx:162 AliCollisionNormalizationTask.cxx:163 AliCollisionNormalizationTask.cxx:164 AliCollisionNormalizationTask.cxx:165 AliCollisionNormalizationTask.cxx:166 AliCollisionNormalizationTask.cxx:167 AliCollisionNormalizationTask.cxx:168 AliCollisionNormalizationTask.cxx:169 AliCollisionNormalizationTask.cxx:170 AliCollisionNormalizationTask.cxx:171 AliCollisionNormalizationTask.cxx:172 AliCollisionNormalizationTask.cxx:173 AliCollisionNormalizationTask.cxx:174 AliCollisionNormalizationTask.cxx:175 AliCollisionNormalizationTask.cxx:176 AliCollisionNormalizationTask.cxx:177 AliCollisionNormalizationTask.cxx:178 AliCollisionNormalizationTask.cxx:179 AliCollisionNormalizationTask.cxx:180 AliCollisionNormalizationTask.cxx:181 AliCollisionNormalizationTask.cxx:182 AliCollisionNormalizationTask.cxx:183 AliCollisionNormalizationTask.cxx:184 AliCollisionNormalizationTask.cxx:185 AliCollisionNormalizationTask.cxx:186 AliCollisionNormalizationTask.cxx:187 AliCollisionNormalizationTask.cxx:188 AliCollisionNormalizationTask.cxx:189 AliCollisionNormalizationTask.cxx:190 AliCollisionNormalizationTask.cxx:191 AliCollisionNormalizationTask.cxx:192 AliCollisionNormalizationTask.cxx:193 AliCollisionNormalizationTask.cxx:194 AliCollisionNormalizationTask.cxx:195 AliCollisionNormalizationTask.cxx:196 AliCollisionNormalizationTask.cxx:197 AliCollisionNormalizationTask.cxx:198 AliCollisionNormalizationTask.cxx:199 AliCollisionNormalizationTask.cxx:200 AliCollisionNormalizationTask.cxx:201 AliCollisionNormalizationTask.cxx:202 AliCollisionNormalizationTask.cxx:203 AliCollisionNormalizationTask.cxx:204 AliCollisionNormalizationTask.cxx:205 AliCollisionNormalizationTask.cxx:206 AliCollisionNormalizationTask.cxx:207 AliCollisionNormalizationTask.cxx:208 AliCollisionNormalizationTask.cxx:209 AliCollisionNormalizationTask.cxx:210 AliCollisionNormalizationTask.cxx:211 AliCollisionNormalizationTask.cxx:212 AliCollisionNormalizationTask.cxx:213 AliCollisionNormalizationTask.cxx:214 AliCollisionNormalizationTask.cxx:215 AliCollisionNormalizationTask.cxx:216 AliCollisionNormalizationTask.cxx:217 AliCollisionNormalizationTask.cxx:218 AliCollisionNormalizationTask.cxx:219 AliCollisionNormalizationTask.cxx:220 AliCollisionNormalizationTask.cxx:221 AliCollisionNormalizationTask.cxx:222 AliCollisionNormalizationTask.cxx:223 AliCollisionNormalizationTask.cxx:224