#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <TList.h>
#include <TLorentzVector.h>
#include "AliVCluster.h"
#include "AliAODCaloCluster.h"
#include "AliESDCaloCluster.h"
#include "AliVTrack.h"
#include "AliLog.h"
#include "AliParticleContainer.h"
#include "AliClusterContainer.h"
#include "AliPicoTrack.h"
#include "AliAnalysisTaskEmcalSample.h"
ClassImp(AliAnalysisTaskEmcalSample)
AliAnalysisTaskEmcalSample::AliAnalysisTaskEmcalSample() :
AliAnalysisTaskEmcal("AliAnalysisTaskEmcalSample", kTRUE),
fHistTracksPt(0),
fHistClustersPt(0),
fHistPtDEtaDPhiTrackClus(0),
fHistPtDEtaDPhiClusTrack(0),
fTracksCont(0),
fCaloClustersCont(0)
{
fHistTracksPt = new TH1*[fNcentBins];
fHistClustersPt = new TH1*[fNcentBins];
for (Int_t i = 0; i < fNcentBins; i++) {
fHistTracksPt[i] = 0;
fHistClustersPt[i] = 0;
}
SetMakeGeneralHistograms(kTRUE);
}
AliAnalysisTaskEmcalSample::AliAnalysisTaskEmcalSample(const char *name) :
AliAnalysisTaskEmcal(name, kTRUE),
fHistTracksPt(0),
fHistClustersPt(0),
fHistPtDEtaDPhiTrackClus(0),
fHistPtDEtaDPhiClusTrack(0),
fTracksCont(0),
fCaloClustersCont(0)
{
fHistTracksPt = new TH1*[fNcentBins];
fHistClustersPt = new TH1*[fNcentBins];
for (Int_t i = 0; i < fNcentBins; i++) {
fHistTracksPt[i] = 0;
fHistClustersPt[i] = 0;
}
SetMakeGeneralHistograms(kTRUE);
}
AliAnalysisTaskEmcalSample::~AliAnalysisTaskEmcalSample()
{
}
void AliAnalysisTaskEmcalSample::UserCreateOutputObjects()
{
AliAnalysisTaskEmcal::UserCreateOutputObjects();
fTracksCont = GetParticleContainer(0);
fCaloClustersCont = GetClusterContainer(0);
fTracksCont->SetClassName("AliVTrack");
fCaloClustersCont->SetClassName("AliVCluster");
TString histname;
for (Int_t i = 0; i < fNcentBins; i++) {
if (fParticleCollArray.GetEntriesFast()>0) {
histname = "fHistTracksPt_";
histname += i;
fHistTracksPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins / 2, fMinBinPt, fMaxBinPt / 2);
fHistTracksPt[i]->GetXaxis()->SetTitle("p_{T,track} (GeV/c)");
fHistTracksPt[i]->GetYaxis()->SetTitle("counts");
fOutput->Add(fHistTracksPt[i]);
}
if (fClusterCollArray.GetEntriesFast()>0) {
histname = "fHistClustersPt_";
histname += i;
fHistClustersPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins / 2, fMinBinPt, fMaxBinPt / 2);
fHistClustersPt[i]->GetXaxis()->SetTitle("p_{T,clus} (GeV/c)");
fHistClustersPt[i]->GetYaxis()->SetTitle("counts");
fOutput->Add(fHistClustersPt[i]);
}
}
histname = "fHistPtDEtaDPhiTrackClus";
fHistPtDEtaDPhiTrackClus = new TH3F(histname.Data(),Form("%s;#it{p}_{T}^{track};#Delta#eta;#Delta#varphi",histname.Data()),100,0.,100.,100,-0.1,0.1,100,-0.1,0.1);
fOutput->Add(fHistPtDEtaDPhiTrackClus);
histname = "fHistPtDEtaDPhiClusTrack";
fHistPtDEtaDPhiClusTrack = new TH3F(histname.Data(),Form("%s;#it{p}_{T}^{clus};#Delta#eta;#Delta#varphi",histname.Data()),100,0.,100.,100,-0.1,0.1,100,-0.1,0.1);
fOutput->Add(fHistPtDEtaDPhiClusTrack);
PostData(1, fOutput);
}
Bool_t AliAnalysisTaskEmcalSample::FillHistograms()
{
if (fTracksCont) {
AliVTrack *track = static_cast<AliVTrack*>(fTracksCont->GetNextAcceptParticle(0));
while(track) {
fHistTracksPt[fCentBin]->Fill(track->Pt());
track = static_cast<AliVTrack*>(fTracksCont->GetNextAcceptParticle());
}
}
if (fCaloClustersCont) {
AliVCluster *cluster = fCaloClustersCont->GetNextAcceptCluster(0);
while(cluster) {
TLorentzVector nPart;
cluster->GetMomentum(nPart, fVertex);
fHistClustersPt[fCentBin]->Fill(nPart.Pt());
cluster = fCaloClustersCont->GetNextAcceptCluster();
}
}
CheckClusTrackMatching();
return kTRUE;
}
void AliAnalysisTaskEmcalSample::CheckClusTrackMatching()
{
if(!fTracksCont || !fCaloClustersCont)
return;
Double_t deta = 999;
Double_t dphi = 999;
AliVTrack *track = static_cast<AliVTrack*>(fTracksCont->GetNextAcceptParticle(0));
while(track) {
Int_t emc1 = track->GetEMCALcluster();
if(fCaloClustersCont && emc1>=0) {
AliVCluster *clusMatch = fCaloClustersCont->GetCluster(emc1);
if(clusMatch) {
AliPicoTrack::GetEtaPhiDiff(track, clusMatch, dphi, deta);
fHistPtDEtaDPhiTrackClus->Fill(track->Pt(),deta,dphi);
}
}
track = static_cast<AliVTrack*>(fTracksCont->GetNextAcceptParticle());
}
AliVCluster *cluster = fCaloClustersCont->GetNextAcceptCluster(0);
while(cluster) {
TLorentzVector nPart;
cluster->GetMomentum(nPart, fVertex);
fHistClustersPt[fCentBin]->Fill(nPart.Pt());
AliVTrack *mt = NULL;
AliAODCaloCluster *acl = dynamic_cast<AliAODCaloCluster*>(cluster);
if(acl) {
if(acl->GetNTracksMatched()>1)
mt = static_cast<AliVTrack*>(acl->GetTrackMatched(0));
}
else {
AliESDCaloCluster *ecl = dynamic_cast<AliESDCaloCluster*>(cluster);
Int_t im = ecl->GetTrackMatchedIndex();
if(fTracksCont && im>=0) {
mt = static_cast<AliVTrack*>(fTracksCont->GetParticle(im));
}
}
if(mt) {
AliPicoTrack::GetEtaPhiDiff(mt, cluster, dphi, deta);
fHistPtDEtaDPhiClusTrack->Fill(nPart.Pt(),deta,dphi);
}
cluster = fCaloClustersCont->GetNextAcceptCluster();
}
}
void AliAnalysisTaskEmcalSample::ExecOnce() {
AliAnalysisTaskEmcal::ExecOnce();
if (fTracksCont && fTracksCont->GetArray() == 0) fTracksCont = 0;
if (fCaloClustersCont && fCaloClustersCont->GetArray() == 0) fCaloClustersCont = 0;
}
Bool_t AliAnalysisTaskEmcalSample::Run()
{
return kTRUE;
}
void AliAnalysisTaskEmcalSample::Terminate(Option_t *)
{
}
AliAnalysisTaskEmcalSample.cxx:1 AliAnalysisTaskEmcalSample.cxx:2 AliAnalysisTaskEmcalSample.cxx:3 AliAnalysisTaskEmcalSample.cxx:4 AliAnalysisTaskEmcalSample.cxx:5 AliAnalysisTaskEmcalSample.cxx:6 AliAnalysisTaskEmcalSample.cxx:7 AliAnalysisTaskEmcalSample.cxx:8 AliAnalysisTaskEmcalSample.cxx:9 AliAnalysisTaskEmcalSample.cxx:10 AliAnalysisTaskEmcalSample.cxx:11 AliAnalysisTaskEmcalSample.cxx:12 AliAnalysisTaskEmcalSample.cxx:13 AliAnalysisTaskEmcalSample.cxx:14 AliAnalysisTaskEmcalSample.cxx:15 AliAnalysisTaskEmcalSample.cxx:16 AliAnalysisTaskEmcalSample.cxx:17 AliAnalysisTaskEmcalSample.cxx:18 AliAnalysisTaskEmcalSample.cxx:19 AliAnalysisTaskEmcalSample.cxx:20 AliAnalysisTaskEmcalSample.cxx:21 AliAnalysisTaskEmcalSample.cxx:22 AliAnalysisTaskEmcalSample.cxx:23 AliAnalysisTaskEmcalSample.cxx:24 AliAnalysisTaskEmcalSample.cxx:25 AliAnalysisTaskEmcalSample.cxx:26 AliAnalysisTaskEmcalSample.cxx:27 AliAnalysisTaskEmcalSample.cxx:28 AliAnalysisTaskEmcalSample.cxx:29 AliAnalysisTaskEmcalSample.cxx:30 AliAnalysisTaskEmcalSample.cxx:31 AliAnalysisTaskEmcalSample.cxx:32 AliAnalysisTaskEmcalSample.cxx:33 AliAnalysisTaskEmcalSample.cxx:34 AliAnalysisTaskEmcalSample.cxx:35 AliAnalysisTaskEmcalSample.cxx:36 AliAnalysisTaskEmcalSample.cxx:37 AliAnalysisTaskEmcalSample.cxx:38 AliAnalysisTaskEmcalSample.cxx:39 AliAnalysisTaskEmcalSample.cxx:40 AliAnalysisTaskEmcalSample.cxx:41 AliAnalysisTaskEmcalSample.cxx:42 AliAnalysisTaskEmcalSample.cxx:43 AliAnalysisTaskEmcalSample.cxx:44 AliAnalysisTaskEmcalSample.cxx:45 AliAnalysisTaskEmcalSample.cxx:46 AliAnalysisTaskEmcalSample.cxx:47 AliAnalysisTaskEmcalSample.cxx:48 AliAnalysisTaskEmcalSample.cxx:49 AliAnalysisTaskEmcalSample.cxx:50 AliAnalysisTaskEmcalSample.cxx:51 AliAnalysisTaskEmcalSample.cxx:52 AliAnalysisTaskEmcalSample.cxx:53 AliAnalysisTaskEmcalSample.cxx:54 AliAnalysisTaskEmcalSample.cxx:55 AliAnalysisTaskEmcalSample.cxx:56 AliAnalysisTaskEmcalSample.cxx:57 AliAnalysisTaskEmcalSample.cxx:58 AliAnalysisTaskEmcalSample.cxx:59 AliAnalysisTaskEmcalSample.cxx:60 AliAnalysisTaskEmcalSample.cxx:61 AliAnalysisTaskEmcalSample.cxx:62 AliAnalysisTaskEmcalSample.cxx:63 AliAnalysisTaskEmcalSample.cxx:64 AliAnalysisTaskEmcalSample.cxx:65 AliAnalysisTaskEmcalSample.cxx:66 AliAnalysisTaskEmcalSample.cxx:67 AliAnalysisTaskEmcalSample.cxx:68 AliAnalysisTaskEmcalSample.cxx:69 AliAnalysisTaskEmcalSample.cxx:70 AliAnalysisTaskEmcalSample.cxx:71 AliAnalysisTaskEmcalSample.cxx:72 AliAnalysisTaskEmcalSample.cxx:73 AliAnalysisTaskEmcalSample.cxx:74 AliAnalysisTaskEmcalSample.cxx:75 AliAnalysisTaskEmcalSample.cxx:76 AliAnalysisTaskEmcalSample.cxx:77 AliAnalysisTaskEmcalSample.cxx:78 AliAnalysisTaskEmcalSample.cxx:79 AliAnalysisTaskEmcalSample.cxx:80 AliAnalysisTaskEmcalSample.cxx:81 AliAnalysisTaskEmcalSample.cxx:82 AliAnalysisTaskEmcalSample.cxx:83 AliAnalysisTaskEmcalSample.cxx:84 AliAnalysisTaskEmcalSample.cxx:85 AliAnalysisTaskEmcalSample.cxx:86 AliAnalysisTaskEmcalSample.cxx:87 AliAnalysisTaskEmcalSample.cxx:88 AliAnalysisTaskEmcalSample.cxx:89 AliAnalysisTaskEmcalSample.cxx:90 AliAnalysisTaskEmcalSample.cxx:91 AliAnalysisTaskEmcalSample.cxx:92 AliAnalysisTaskEmcalSample.cxx:93 AliAnalysisTaskEmcalSample.cxx:94 AliAnalysisTaskEmcalSample.cxx:95 AliAnalysisTaskEmcalSample.cxx:96 AliAnalysisTaskEmcalSample.cxx:97 AliAnalysisTaskEmcalSample.cxx:98 AliAnalysisTaskEmcalSample.cxx:99 AliAnalysisTaskEmcalSample.cxx:100 AliAnalysisTaskEmcalSample.cxx:101 AliAnalysisTaskEmcalSample.cxx:102 AliAnalysisTaskEmcalSample.cxx:103 AliAnalysisTaskEmcalSample.cxx:104 AliAnalysisTaskEmcalSample.cxx:105 AliAnalysisTaskEmcalSample.cxx:106 AliAnalysisTaskEmcalSample.cxx:107 AliAnalysisTaskEmcalSample.cxx:108 AliAnalysisTaskEmcalSample.cxx:109 AliAnalysisTaskEmcalSample.cxx:110 AliAnalysisTaskEmcalSample.cxx:111 AliAnalysisTaskEmcalSample.cxx:112 AliAnalysisTaskEmcalSample.cxx:113 AliAnalysisTaskEmcalSample.cxx:114 AliAnalysisTaskEmcalSample.cxx:115 AliAnalysisTaskEmcalSample.cxx:116 AliAnalysisTaskEmcalSample.cxx:117 AliAnalysisTaskEmcalSample.cxx:118 AliAnalysisTaskEmcalSample.cxx:119 AliAnalysisTaskEmcalSample.cxx:120 AliAnalysisTaskEmcalSample.cxx:121 AliAnalysisTaskEmcalSample.cxx:122 AliAnalysisTaskEmcalSample.cxx:123 AliAnalysisTaskEmcalSample.cxx:124 AliAnalysisTaskEmcalSample.cxx:125 AliAnalysisTaskEmcalSample.cxx:126 AliAnalysisTaskEmcalSample.cxx:127 AliAnalysisTaskEmcalSample.cxx:128 AliAnalysisTaskEmcalSample.cxx:129 AliAnalysisTaskEmcalSample.cxx:130 AliAnalysisTaskEmcalSample.cxx:131 AliAnalysisTaskEmcalSample.cxx:132 AliAnalysisTaskEmcalSample.cxx:133 AliAnalysisTaskEmcalSample.cxx:134 AliAnalysisTaskEmcalSample.cxx:135 AliAnalysisTaskEmcalSample.cxx:136 AliAnalysisTaskEmcalSample.cxx:137 AliAnalysisTaskEmcalSample.cxx:138 AliAnalysisTaskEmcalSample.cxx:139 AliAnalysisTaskEmcalSample.cxx:140 AliAnalysisTaskEmcalSample.cxx:141 AliAnalysisTaskEmcalSample.cxx:142 AliAnalysisTaskEmcalSample.cxx:143 AliAnalysisTaskEmcalSample.cxx:144 AliAnalysisTaskEmcalSample.cxx:145 AliAnalysisTaskEmcalSample.cxx:146 AliAnalysisTaskEmcalSample.cxx:147 AliAnalysisTaskEmcalSample.cxx:148 AliAnalysisTaskEmcalSample.cxx:149 AliAnalysisTaskEmcalSample.cxx:150 AliAnalysisTaskEmcalSample.cxx:151 AliAnalysisTaskEmcalSample.cxx:152 AliAnalysisTaskEmcalSample.cxx:153 AliAnalysisTaskEmcalSample.cxx:154 AliAnalysisTaskEmcalSample.cxx:155 AliAnalysisTaskEmcalSample.cxx:156 AliAnalysisTaskEmcalSample.cxx:157 AliAnalysisTaskEmcalSample.cxx:158 AliAnalysisTaskEmcalSample.cxx:159 AliAnalysisTaskEmcalSample.cxx:160 AliAnalysisTaskEmcalSample.cxx:161 AliAnalysisTaskEmcalSample.cxx:162 AliAnalysisTaskEmcalSample.cxx:163 AliAnalysisTaskEmcalSample.cxx:164 AliAnalysisTaskEmcalSample.cxx:165 AliAnalysisTaskEmcalSample.cxx:166 AliAnalysisTaskEmcalSample.cxx:167 AliAnalysisTaskEmcalSample.cxx:168 AliAnalysisTaskEmcalSample.cxx:169 AliAnalysisTaskEmcalSample.cxx:170 AliAnalysisTaskEmcalSample.cxx:171 AliAnalysisTaskEmcalSample.cxx:172 AliAnalysisTaskEmcalSample.cxx:173 AliAnalysisTaskEmcalSample.cxx:174 AliAnalysisTaskEmcalSample.cxx:175 AliAnalysisTaskEmcalSample.cxx:176 AliAnalysisTaskEmcalSample.cxx:177 AliAnalysisTaskEmcalSample.cxx:178 AliAnalysisTaskEmcalSample.cxx:179 AliAnalysisTaskEmcalSample.cxx:180 AliAnalysisTaskEmcalSample.cxx:181 AliAnalysisTaskEmcalSample.cxx:182 AliAnalysisTaskEmcalSample.cxx:183 AliAnalysisTaskEmcalSample.cxx:184 AliAnalysisTaskEmcalSample.cxx:185 AliAnalysisTaskEmcalSample.cxx:186 AliAnalysisTaskEmcalSample.cxx:187 AliAnalysisTaskEmcalSample.cxx:188 AliAnalysisTaskEmcalSample.cxx:189 AliAnalysisTaskEmcalSample.cxx:190 AliAnalysisTaskEmcalSample.cxx:191 AliAnalysisTaskEmcalSample.cxx:192 AliAnalysisTaskEmcalSample.cxx:193 AliAnalysisTaskEmcalSample.cxx:194 AliAnalysisTaskEmcalSample.cxx:195 AliAnalysisTaskEmcalSample.cxx:196 AliAnalysisTaskEmcalSample.cxx:197 AliAnalysisTaskEmcalSample.cxx:198 AliAnalysisTaskEmcalSample.cxx:199 AliAnalysisTaskEmcalSample.cxx:200 AliAnalysisTaskEmcalSample.cxx:201 AliAnalysisTaskEmcalSample.cxx:202 AliAnalysisTaskEmcalSample.cxx:203 AliAnalysisTaskEmcalSample.cxx:204 AliAnalysisTaskEmcalSample.cxx:205 AliAnalysisTaskEmcalSample.cxx:206 AliAnalysisTaskEmcalSample.cxx:207 AliAnalysisTaskEmcalSample.cxx:208 AliAnalysisTaskEmcalSample.cxx:209 AliAnalysisTaskEmcalSample.cxx:210 AliAnalysisTaskEmcalSample.cxx:211 AliAnalysisTaskEmcalSample.cxx:212 AliAnalysisTaskEmcalSample.cxx:213 AliAnalysisTaskEmcalSample.cxx:214 AliAnalysisTaskEmcalSample.cxx:215 AliAnalysisTaskEmcalSample.cxx:216 AliAnalysisTaskEmcalSample.cxx:217 AliAnalysisTaskEmcalSample.cxx:218 AliAnalysisTaskEmcalSample.cxx:219 AliAnalysisTaskEmcalSample.cxx:220 AliAnalysisTaskEmcalSample.cxx:221 AliAnalysisTaskEmcalSample.cxx:222 AliAnalysisTaskEmcalSample.cxx:223 AliAnalysisTaskEmcalSample.cxx:224 AliAnalysisTaskEmcalSample.cxx:225 AliAnalysisTaskEmcalSample.cxx:226 AliAnalysisTaskEmcalSample.cxx:227 AliAnalysisTaskEmcalSample.cxx:228 AliAnalysisTaskEmcalSample.cxx:229 AliAnalysisTaskEmcalSample.cxx:230 AliAnalysisTaskEmcalSample.cxx:231 AliAnalysisTaskEmcalSample.cxx:232 AliAnalysisTaskEmcalSample.cxx:233 AliAnalysisTaskEmcalSample.cxx:234 AliAnalysisTaskEmcalSample.cxx:235 AliAnalysisTaskEmcalSample.cxx:236 AliAnalysisTaskEmcalSample.cxx:237 AliAnalysisTaskEmcalSample.cxx:238