#include "TChain.h"
#include "TList.h"
#include "TCanvas.h"
#include "TLorentzVector.h"
#include "TGraphErrors.h"
#include "TH1F.h"
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisManager.h"
#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODInputHandler.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliESDtrackCuts.h"
#include "AliAnalysisTaskChargeFluctuations.h"
ClassImp(AliAnalysisTaskChargeFluctuations)
AliAnalysisTaskChargeFluctuations::AliAnalysisTaskChargeFluctuations(const char *name)
: AliAnalysisTaskSE(name),
fList(0),
fHistEventStats(0),
fHistVx(0),
fHistVy(0),
fHistVz(0),
fESDtrackCuts(0),
fUseOfflineTrigger(kFALSE),
fVxMax(0.3),
fVyMax(0.3),
fVzMax(10.) {
DefineInput(0, TChain::Class());
DefineOutput(1, TList::Class());
}
void AliAnalysisTaskChargeFluctuations::UserCreateOutputObjects() {
fList = new TList();
fList->SetName("outputList");
TString gCutName[4] = {"Total","Offline trigger",
"Vertex","Analyzed"};
fHistEventStats = new TH1F("fHistEventStats",
"Event statistics;;N_{events}",
4,0.5,4.5);
for(Int_t i = 1; i <= 4; i++)
fHistEventStats->GetXaxis()->SetBinLabel(i,gCutName[i-1].Data());
fList->Add(fHistEventStats);
fHistVx = new TH1F("fHistVx","Primary vertex distribution - x coordinate;V_{x} (cm);Entries",100,-0.5,0.5);
fList->Add(fHistVx);
fHistVy = new TH1F("fHistVy","Primary vertex distribution - y coordinate;V_{y} (cm);Entries",100,-0.5,0.5);
fList->Add(fHistVy);
fHistVz = new TH1F("fHistVz","Primary vertex distribution - z coordinate;V_{z} (cm);Entries",100,-20.,20.);
fList->Add(fHistVz);
if(fESDtrackCuts) fList->Add(fESDtrackCuts);
PostData(1, fList);
}
void AliAnalysisTaskChargeFluctuations::UserExec(Option_t *) {
TString gAnalysisLevel = "ESD";
if(gAnalysisLevel == "ESD") {
AliESDEvent* gESD = dynamic_cast<AliESDEvent*>(InputEvent());
if (!gESD) {
Printf("ERROR: gESD not available");
return;
}
fHistEventStats->Fill(1);
Bool_t isSelected = kTRUE;
if(fUseOfflineTrigger)
isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
if(isSelected) {
fHistEventStats->Fill(2);
const AliESDVertex *vertex = gESD->GetPrimaryVertex();
if(vertex) {
if(vertex->GetNContributors() > 0) {
if(vertex->GetZRes() != 0) {
fHistEventStats->Fill(3);
if(TMath::Abs(vertex->GetX()) < fVxMax) {
if(TMath::Abs(vertex->GetY()) < fVyMax) {
if(TMath::Abs(vertex->GetZ()) < fVzMax) {
fHistEventStats->Fill(4);
fHistVx->Fill(vertex->GetX());
fHistVy->Fill(vertex->GetY());
fHistVz->Fill(vertex->GetZ());
for (Int_t iTracks = 0; iTracks < gESD->GetNumberOfTracks(); iTracks++) {
AliESDtrack* track = gESD->GetTrack(iTracks);
if (!track) {
Printf("ERROR: Could not receive track %d", iTracks);
continue;
}
if(fESDtrackCuts)
if(!fESDtrackCuts->AcceptTrack(track)) continue;
}
}
}
}
}
}
}
}
}
else if(gAnalysisLevel == "AOD") {
AliAODEvent* gAOD = dynamic_cast<AliAODEvent*>(InputEvent());
if(!gAOD) {
Printf("ERROR: gAOD not available");
return;
}
Printf("There are %d tracks in this event", gAOD->GetNumberOfTracks());
for (Int_t iTracks = 0; iTracks < gAOD->GetNumberOfTracks(); iTracks++) {
AliAODTrack* track = dynamic_cast<AliAODTrack*>(gAOD->GetTrack(iTracks));
if(!track) AliFatal("Not a standard AOD");
if (!track) {
Printf("ERROR: Could not receive track %d", iTracks);
continue;
}
}
}
else if(gAnalysisLevel == "MC") {
AliMCEvent* mcEvent = MCEvent();
if (!mcEvent) {
Printf("ERROR: mcEvent not available");
return;
}
Printf("There are %d tracks in this event", mcEvent->GetNumberOfPrimaries());
for (Int_t iTracks = 0; iTracks < mcEvent->GetNumberOfPrimaries(); iTracks++) {
AliMCParticle* track = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(iTracks));
if (!track) {
Printf("ERROR: Could not receive particle %d", iTracks);
continue;
}
}
}
}
void AliAnalysisTaskChargeFluctuations::Terminate(Option_t *) {
fList = dynamic_cast<TList*> (GetOutputData(1));
if (!fList) {
Printf("ERROR: fList not available");
return;
}
}
AliAnalysisTaskChargeFluctuations.cxx:1 AliAnalysisTaskChargeFluctuations.cxx:2 AliAnalysisTaskChargeFluctuations.cxx:3 AliAnalysisTaskChargeFluctuations.cxx:4 AliAnalysisTaskChargeFluctuations.cxx:5 AliAnalysisTaskChargeFluctuations.cxx:6 AliAnalysisTaskChargeFluctuations.cxx:7 AliAnalysisTaskChargeFluctuations.cxx:8 AliAnalysisTaskChargeFluctuations.cxx:9 AliAnalysisTaskChargeFluctuations.cxx:10 AliAnalysisTaskChargeFluctuations.cxx:11 AliAnalysisTaskChargeFluctuations.cxx:12 AliAnalysisTaskChargeFluctuations.cxx:13 AliAnalysisTaskChargeFluctuations.cxx:14 AliAnalysisTaskChargeFluctuations.cxx:15 AliAnalysisTaskChargeFluctuations.cxx:16 AliAnalysisTaskChargeFluctuations.cxx:17 AliAnalysisTaskChargeFluctuations.cxx:18 AliAnalysisTaskChargeFluctuations.cxx:19 AliAnalysisTaskChargeFluctuations.cxx:20 AliAnalysisTaskChargeFluctuations.cxx:21 AliAnalysisTaskChargeFluctuations.cxx:22 AliAnalysisTaskChargeFluctuations.cxx:23 AliAnalysisTaskChargeFluctuations.cxx:24 AliAnalysisTaskChargeFluctuations.cxx:25 AliAnalysisTaskChargeFluctuations.cxx:26 AliAnalysisTaskChargeFluctuations.cxx:27 AliAnalysisTaskChargeFluctuations.cxx:28 AliAnalysisTaskChargeFluctuations.cxx:29 AliAnalysisTaskChargeFluctuations.cxx:30 AliAnalysisTaskChargeFluctuations.cxx:31 AliAnalysisTaskChargeFluctuations.cxx:32 AliAnalysisTaskChargeFluctuations.cxx:33 AliAnalysisTaskChargeFluctuations.cxx:34 AliAnalysisTaskChargeFluctuations.cxx:35 AliAnalysisTaskChargeFluctuations.cxx:36 AliAnalysisTaskChargeFluctuations.cxx:37 AliAnalysisTaskChargeFluctuations.cxx:38 AliAnalysisTaskChargeFluctuations.cxx:39 AliAnalysisTaskChargeFluctuations.cxx:40 AliAnalysisTaskChargeFluctuations.cxx:41 AliAnalysisTaskChargeFluctuations.cxx:42 AliAnalysisTaskChargeFluctuations.cxx:43 AliAnalysisTaskChargeFluctuations.cxx:44 AliAnalysisTaskChargeFluctuations.cxx:45 AliAnalysisTaskChargeFluctuations.cxx:46 AliAnalysisTaskChargeFluctuations.cxx:47 AliAnalysisTaskChargeFluctuations.cxx:48 AliAnalysisTaskChargeFluctuations.cxx:49 AliAnalysisTaskChargeFluctuations.cxx:50 AliAnalysisTaskChargeFluctuations.cxx:51 AliAnalysisTaskChargeFluctuations.cxx:52 AliAnalysisTaskChargeFluctuations.cxx:53 AliAnalysisTaskChargeFluctuations.cxx:54 AliAnalysisTaskChargeFluctuations.cxx:55 AliAnalysisTaskChargeFluctuations.cxx:56 AliAnalysisTaskChargeFluctuations.cxx:57 AliAnalysisTaskChargeFluctuations.cxx:58 AliAnalysisTaskChargeFluctuations.cxx:59 AliAnalysisTaskChargeFluctuations.cxx:60 AliAnalysisTaskChargeFluctuations.cxx:61 AliAnalysisTaskChargeFluctuations.cxx:62 AliAnalysisTaskChargeFluctuations.cxx:63 AliAnalysisTaskChargeFluctuations.cxx:64 AliAnalysisTaskChargeFluctuations.cxx:65 AliAnalysisTaskChargeFluctuations.cxx:66 AliAnalysisTaskChargeFluctuations.cxx:67 AliAnalysisTaskChargeFluctuations.cxx:68 AliAnalysisTaskChargeFluctuations.cxx:69 AliAnalysisTaskChargeFluctuations.cxx:70 AliAnalysisTaskChargeFluctuations.cxx:71 AliAnalysisTaskChargeFluctuations.cxx:72 AliAnalysisTaskChargeFluctuations.cxx:73 AliAnalysisTaskChargeFluctuations.cxx:74 AliAnalysisTaskChargeFluctuations.cxx:75 AliAnalysisTaskChargeFluctuations.cxx:76 AliAnalysisTaskChargeFluctuations.cxx:77 AliAnalysisTaskChargeFluctuations.cxx:78 AliAnalysisTaskChargeFluctuations.cxx:79 AliAnalysisTaskChargeFluctuations.cxx:80 AliAnalysisTaskChargeFluctuations.cxx:81 AliAnalysisTaskChargeFluctuations.cxx:82 AliAnalysisTaskChargeFluctuations.cxx:83 AliAnalysisTaskChargeFluctuations.cxx:84 AliAnalysisTaskChargeFluctuations.cxx:85 AliAnalysisTaskChargeFluctuations.cxx:86 AliAnalysisTaskChargeFluctuations.cxx:87 AliAnalysisTaskChargeFluctuations.cxx:88 AliAnalysisTaskChargeFluctuations.cxx:89 AliAnalysisTaskChargeFluctuations.cxx:90 AliAnalysisTaskChargeFluctuations.cxx:91 AliAnalysisTaskChargeFluctuations.cxx:92 AliAnalysisTaskChargeFluctuations.cxx:93 AliAnalysisTaskChargeFluctuations.cxx:94 AliAnalysisTaskChargeFluctuations.cxx:95 AliAnalysisTaskChargeFluctuations.cxx:96 AliAnalysisTaskChargeFluctuations.cxx:97 AliAnalysisTaskChargeFluctuations.cxx:98 AliAnalysisTaskChargeFluctuations.cxx:99 AliAnalysisTaskChargeFluctuations.cxx:100 AliAnalysisTaskChargeFluctuations.cxx:101 AliAnalysisTaskChargeFluctuations.cxx:102 AliAnalysisTaskChargeFluctuations.cxx:103 AliAnalysisTaskChargeFluctuations.cxx:104 AliAnalysisTaskChargeFluctuations.cxx:105 AliAnalysisTaskChargeFluctuations.cxx:106 AliAnalysisTaskChargeFluctuations.cxx:107 AliAnalysisTaskChargeFluctuations.cxx:108 AliAnalysisTaskChargeFluctuations.cxx:109 AliAnalysisTaskChargeFluctuations.cxx:110 AliAnalysisTaskChargeFluctuations.cxx:111 AliAnalysisTaskChargeFluctuations.cxx:112 AliAnalysisTaskChargeFluctuations.cxx:113 AliAnalysisTaskChargeFluctuations.cxx:114 AliAnalysisTaskChargeFluctuations.cxx:115 AliAnalysisTaskChargeFluctuations.cxx:116 AliAnalysisTaskChargeFluctuations.cxx:117 AliAnalysisTaskChargeFluctuations.cxx:118 AliAnalysisTaskChargeFluctuations.cxx:119 AliAnalysisTaskChargeFluctuations.cxx:120 AliAnalysisTaskChargeFluctuations.cxx:121 AliAnalysisTaskChargeFluctuations.cxx:122 AliAnalysisTaskChargeFluctuations.cxx:123 AliAnalysisTaskChargeFluctuations.cxx:124 AliAnalysisTaskChargeFluctuations.cxx:125 AliAnalysisTaskChargeFluctuations.cxx:126 AliAnalysisTaskChargeFluctuations.cxx:127 AliAnalysisTaskChargeFluctuations.cxx:128 AliAnalysisTaskChargeFluctuations.cxx:129 AliAnalysisTaskChargeFluctuations.cxx:130 AliAnalysisTaskChargeFluctuations.cxx:131 AliAnalysisTaskChargeFluctuations.cxx:132 AliAnalysisTaskChargeFluctuations.cxx:133 AliAnalysisTaskChargeFluctuations.cxx:134 AliAnalysisTaskChargeFluctuations.cxx:135 AliAnalysisTaskChargeFluctuations.cxx:136 AliAnalysisTaskChargeFluctuations.cxx:137 AliAnalysisTaskChargeFluctuations.cxx:138 AliAnalysisTaskChargeFluctuations.cxx:139 AliAnalysisTaskChargeFluctuations.cxx:140 AliAnalysisTaskChargeFluctuations.cxx:141 AliAnalysisTaskChargeFluctuations.cxx:142 AliAnalysisTaskChargeFluctuations.cxx:143 AliAnalysisTaskChargeFluctuations.cxx:144 AliAnalysisTaskChargeFluctuations.cxx:145 AliAnalysisTaskChargeFluctuations.cxx:146 AliAnalysisTaskChargeFluctuations.cxx:147 AliAnalysisTaskChargeFluctuations.cxx:148 AliAnalysisTaskChargeFluctuations.cxx:149 AliAnalysisTaskChargeFluctuations.cxx:150 AliAnalysisTaskChargeFluctuations.cxx:151 AliAnalysisTaskChargeFluctuations.cxx:152 AliAnalysisTaskChargeFluctuations.cxx:153 AliAnalysisTaskChargeFluctuations.cxx:154 AliAnalysisTaskChargeFluctuations.cxx:155 AliAnalysisTaskChargeFluctuations.cxx:156 AliAnalysisTaskChargeFluctuations.cxx:157 AliAnalysisTaskChargeFluctuations.cxx:158 AliAnalysisTaskChargeFluctuations.cxx:159 AliAnalysisTaskChargeFluctuations.cxx:160 AliAnalysisTaskChargeFluctuations.cxx:161 AliAnalysisTaskChargeFluctuations.cxx:162 AliAnalysisTaskChargeFluctuations.cxx:163 AliAnalysisTaskChargeFluctuations.cxx:164 AliAnalysisTaskChargeFluctuations.cxx:165 AliAnalysisTaskChargeFluctuations.cxx:166 AliAnalysisTaskChargeFluctuations.cxx:167 AliAnalysisTaskChargeFluctuations.cxx:168 AliAnalysisTaskChargeFluctuations.cxx:169 AliAnalysisTaskChargeFluctuations.cxx:170 AliAnalysisTaskChargeFluctuations.cxx:171 AliAnalysisTaskChargeFluctuations.cxx:172 AliAnalysisTaskChargeFluctuations.cxx:173 AliAnalysisTaskChargeFluctuations.cxx:174 AliAnalysisTaskChargeFluctuations.cxx:175 AliAnalysisTaskChargeFluctuations.cxx:176 AliAnalysisTaskChargeFluctuations.cxx:177 AliAnalysisTaskChargeFluctuations.cxx:178 AliAnalysisTaskChargeFluctuations.cxx:179 AliAnalysisTaskChargeFluctuations.cxx:180 AliAnalysisTaskChargeFluctuations.cxx:181 AliAnalysisTaskChargeFluctuations.cxx:182 AliAnalysisTaskChargeFluctuations.cxx:183