#include <TFile.h>
#include <TObjArray.h>
#include <AliAnalysisTaskCaloCellsQA.h>
#include "AliAnalysisManager.h"
#include <AliVEvent.h>
#include <AliVCaloCells.h>
#include <AliVCluster.h>
#include <AliVVertex.h>
#include <AliEMCALGeometry.h>
#include <AliPHOSGeometry.h>
#include <AliLog.h>
ClassImp(AliAnalysisTaskCaloCellsQA)
AliAnalysisTaskCaloCellsQA::AliAnalysisTaskCaloCellsQA() : AliAnalysisTaskSE(),
fkAvoidPileup(kTRUE),
fCellsQA(0),
fOutfile(""),
fNBad(0),
fBadCells(0)
{
}
AliAnalysisTaskCaloCellsQA::AliAnalysisTaskCaloCellsQA(const char *name, Int_t nmods, Int_t det, char *outfile) :
AliAnalysisTaskSE(name),
fkAvoidPileup(kTRUE),
fCellsQA(0),
fOutfile(""),
fNBad(0),
fBadCells(0)
{
if (det == kEMCAL)
fCellsQA = new AliCaloCellsQA(nmods, AliCaloCellsQA::kEMCAL);
else if (det == kPHOS)
fCellsQA = new AliCaloCellsQA(nmods, AliCaloCellsQA::kPHOS);
else
AliFatal("Wrong detector provided");
if (outfile) fOutfile = outfile;
else
DefineOutput(1, TObjArray::Class());
}
AliAnalysisTaskCaloCellsQA::~AliAnalysisTaskCaloCellsQA()
{
if (!AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fCellsQA;
if (fBadCells) delete [] fBadCells;
}
void AliAnalysisTaskCaloCellsQA::UserCreateOutputObjects()
{
fCellsQA->InitSummaryHistograms();
if (fOutfile.Length() == 0)
PostData(1, fCellsQA->GetListOfHistos());
}
void AliAnalysisTaskCaloCellsQA::UserExec(Option_t *)
{
AliVEvent *event = InputEvent();
if (!event) {
AliWarning("Could not get event");
return;
}
fCellsQA->InitTransientFindCurrentRun(event->GetRunNumber());
if (fCellsQA->GetDetector() == AliCaloCellsQA::kEMCAL) {
if (!AliEMCALGeometry::GetInstance()) {
AliInfo("EMCAL geometry not initialized, initializing it for you");
AliEMCALGeometry::GetInstance("EMCAL_COMPLETEV1");
}
} else {
if (!AliPHOSGeometry::GetInstance()) {
AliInfo("PHOS geometry not initialized, initializing it for you");
AliPHOSGeometry::GetInstance("IHEP");
}
}
if (fkAvoidPileup && event->IsPileupFromSPD(3,0.8,3.,2.,5.))
return;
AliVCaloCells *cells;
if (fCellsQA->GetDetector() == AliCaloCellsQA::kEMCAL)
cells = event->GetEMCALCells();
else
cells = event->GetPHOSCells();
if (!cells) {
AliWarning("Could not get cells");
return;
}
AliVVertex *vertex = (AliVVertex*) event->GetPrimaryVertex();
if (!vertex) {
AliWarning("Could not get primary vertex");
return;
}
TObjArray clusArray;
for (Int_t i = 0; i < event->GetNumberOfCaloClusters(); i++) {
AliVCluster *clus = event->GetCaloCluster(i);
if (!clus) {
AliWarning("Could not get cluster");
return;
}
if (fCellsQA->GetDetector() == AliCaloCellsQA::kEMCAL && !clus->IsEMCAL()) continue;
if (fCellsQA->GetDetector() == AliCaloCellsQA::kPHOS && !clus->IsPHOS()) continue;
if (IsClusterBad(clus)) continue;
clusArray.Add(clus);
}
Double_t vertexXYZ[3];
vertex->GetXYZ(vertexXYZ);
fCellsQA->Fill(event->GetRunNumber(), &clusArray, cells, vertexXYZ);
if (fOutfile.Length() == 0)
PostData(1, fCellsQA->GetListOfHistos());
}
void AliAnalysisTaskCaloCellsQA::Terminate(Option_t*)
{
if (fOutfile.Length() > 0) {
TFile f(fOutfile.Data(), "RECREATE");
fCellsQA->GetListOfHistos()->Write();
}
}
void AliAnalysisTaskCaloCellsQA::SetBadCells(Int_t badcells[], Int_t nbad)
{
if (fBadCells) delete [] fBadCells;
if (nbad <= 0) {
fNBad = 0;
return;
}
fNBad = nbad;
fBadCells = new Int_t[nbad];
for (Int_t i = 0; i < nbad; i++)
fBadCells[i] = badcells[i];
}
Bool_t AliAnalysisTaskCaloCellsQA::IsClusterBad(AliVCluster *clus)
{
for (Int_t b = 0; b < fNBad; b++)
for (Int_t c = 0; c < clus->GetNCells(); c++)
if (clus->GetCellAbsId(c) == fBadCells[b])
return kTRUE;
return kFALSE;
}
AliAnalysisTaskCaloCellsQA.cxx:1 AliAnalysisTaskCaloCellsQA.cxx:2 AliAnalysisTaskCaloCellsQA.cxx:3 AliAnalysisTaskCaloCellsQA.cxx:4 AliAnalysisTaskCaloCellsQA.cxx:5 AliAnalysisTaskCaloCellsQA.cxx:6 AliAnalysisTaskCaloCellsQA.cxx:7 AliAnalysisTaskCaloCellsQA.cxx:8 AliAnalysisTaskCaloCellsQA.cxx:9 AliAnalysisTaskCaloCellsQA.cxx:10 AliAnalysisTaskCaloCellsQA.cxx:11 AliAnalysisTaskCaloCellsQA.cxx:12 AliAnalysisTaskCaloCellsQA.cxx:13 AliAnalysisTaskCaloCellsQA.cxx:14 AliAnalysisTaskCaloCellsQA.cxx:15 AliAnalysisTaskCaloCellsQA.cxx:16 AliAnalysisTaskCaloCellsQA.cxx:17 AliAnalysisTaskCaloCellsQA.cxx:18 AliAnalysisTaskCaloCellsQA.cxx:19 AliAnalysisTaskCaloCellsQA.cxx:20 AliAnalysisTaskCaloCellsQA.cxx:21 AliAnalysisTaskCaloCellsQA.cxx:22 AliAnalysisTaskCaloCellsQA.cxx:23 AliAnalysisTaskCaloCellsQA.cxx:24 AliAnalysisTaskCaloCellsQA.cxx:25 AliAnalysisTaskCaloCellsQA.cxx:26 AliAnalysisTaskCaloCellsQA.cxx:27 AliAnalysisTaskCaloCellsQA.cxx:28 AliAnalysisTaskCaloCellsQA.cxx:29 AliAnalysisTaskCaloCellsQA.cxx:30 AliAnalysisTaskCaloCellsQA.cxx:31 AliAnalysisTaskCaloCellsQA.cxx:32 AliAnalysisTaskCaloCellsQA.cxx:33 AliAnalysisTaskCaloCellsQA.cxx:34 AliAnalysisTaskCaloCellsQA.cxx:35 AliAnalysisTaskCaloCellsQA.cxx:36 AliAnalysisTaskCaloCellsQA.cxx:37 AliAnalysisTaskCaloCellsQA.cxx:38 AliAnalysisTaskCaloCellsQA.cxx:39 AliAnalysisTaskCaloCellsQA.cxx:40 AliAnalysisTaskCaloCellsQA.cxx:41 AliAnalysisTaskCaloCellsQA.cxx:42 AliAnalysisTaskCaloCellsQA.cxx:43 AliAnalysisTaskCaloCellsQA.cxx:44 AliAnalysisTaskCaloCellsQA.cxx:45 AliAnalysisTaskCaloCellsQA.cxx:46 AliAnalysisTaskCaloCellsQA.cxx:47 AliAnalysisTaskCaloCellsQA.cxx:48 AliAnalysisTaskCaloCellsQA.cxx:49 AliAnalysisTaskCaloCellsQA.cxx:50 AliAnalysisTaskCaloCellsQA.cxx:51 AliAnalysisTaskCaloCellsQA.cxx:52 AliAnalysisTaskCaloCellsQA.cxx:53 AliAnalysisTaskCaloCellsQA.cxx:54 AliAnalysisTaskCaloCellsQA.cxx:55 AliAnalysisTaskCaloCellsQA.cxx:56 AliAnalysisTaskCaloCellsQA.cxx:57 AliAnalysisTaskCaloCellsQA.cxx:58 AliAnalysisTaskCaloCellsQA.cxx:59 AliAnalysisTaskCaloCellsQA.cxx:60 AliAnalysisTaskCaloCellsQA.cxx:61 AliAnalysisTaskCaloCellsQA.cxx:62 AliAnalysisTaskCaloCellsQA.cxx:63 AliAnalysisTaskCaloCellsQA.cxx:64 AliAnalysisTaskCaloCellsQA.cxx:65 AliAnalysisTaskCaloCellsQA.cxx:66 AliAnalysisTaskCaloCellsQA.cxx:67 AliAnalysisTaskCaloCellsQA.cxx:68 AliAnalysisTaskCaloCellsQA.cxx:69 AliAnalysisTaskCaloCellsQA.cxx:70 AliAnalysisTaskCaloCellsQA.cxx:71 AliAnalysisTaskCaloCellsQA.cxx:72 AliAnalysisTaskCaloCellsQA.cxx:73 AliAnalysisTaskCaloCellsQA.cxx:74 AliAnalysisTaskCaloCellsQA.cxx:75 AliAnalysisTaskCaloCellsQA.cxx:76 AliAnalysisTaskCaloCellsQA.cxx:77 AliAnalysisTaskCaloCellsQA.cxx:78 AliAnalysisTaskCaloCellsQA.cxx:79 AliAnalysisTaskCaloCellsQA.cxx:80 AliAnalysisTaskCaloCellsQA.cxx:81 AliAnalysisTaskCaloCellsQA.cxx:82 AliAnalysisTaskCaloCellsQA.cxx:83 AliAnalysisTaskCaloCellsQA.cxx:84 AliAnalysisTaskCaloCellsQA.cxx:85 AliAnalysisTaskCaloCellsQA.cxx:86 AliAnalysisTaskCaloCellsQA.cxx:87 AliAnalysisTaskCaloCellsQA.cxx:88 AliAnalysisTaskCaloCellsQA.cxx:89 AliAnalysisTaskCaloCellsQA.cxx:90 AliAnalysisTaskCaloCellsQA.cxx:91 AliAnalysisTaskCaloCellsQA.cxx:92 AliAnalysisTaskCaloCellsQA.cxx:93 AliAnalysisTaskCaloCellsQA.cxx:94 AliAnalysisTaskCaloCellsQA.cxx:95 AliAnalysisTaskCaloCellsQA.cxx:96 AliAnalysisTaskCaloCellsQA.cxx:97 AliAnalysisTaskCaloCellsQA.cxx:98 AliAnalysisTaskCaloCellsQA.cxx:99 AliAnalysisTaskCaloCellsQA.cxx:100 AliAnalysisTaskCaloCellsQA.cxx:101 AliAnalysisTaskCaloCellsQA.cxx:102 AliAnalysisTaskCaloCellsQA.cxx:103 AliAnalysisTaskCaloCellsQA.cxx:104 AliAnalysisTaskCaloCellsQA.cxx:105 AliAnalysisTaskCaloCellsQA.cxx:106 AliAnalysisTaskCaloCellsQA.cxx:107 AliAnalysisTaskCaloCellsQA.cxx:108 AliAnalysisTaskCaloCellsQA.cxx:109 AliAnalysisTaskCaloCellsQA.cxx:110 AliAnalysisTaskCaloCellsQA.cxx:111 AliAnalysisTaskCaloCellsQA.cxx:112 AliAnalysisTaskCaloCellsQA.cxx:113 AliAnalysisTaskCaloCellsQA.cxx:114 AliAnalysisTaskCaloCellsQA.cxx:115 AliAnalysisTaskCaloCellsQA.cxx:116 AliAnalysisTaskCaloCellsQA.cxx:117 AliAnalysisTaskCaloCellsQA.cxx:118 AliAnalysisTaskCaloCellsQA.cxx:119 AliAnalysisTaskCaloCellsQA.cxx:120 AliAnalysisTaskCaloCellsQA.cxx:121 AliAnalysisTaskCaloCellsQA.cxx:122 AliAnalysisTaskCaloCellsQA.cxx:123 AliAnalysisTaskCaloCellsQA.cxx:124 AliAnalysisTaskCaloCellsQA.cxx:125 AliAnalysisTaskCaloCellsQA.cxx:126 AliAnalysisTaskCaloCellsQA.cxx:127 AliAnalysisTaskCaloCellsQA.cxx:128 AliAnalysisTaskCaloCellsQA.cxx:129 AliAnalysisTaskCaloCellsQA.cxx:130 AliAnalysisTaskCaloCellsQA.cxx:131 AliAnalysisTaskCaloCellsQA.cxx:132 AliAnalysisTaskCaloCellsQA.cxx:133 AliAnalysisTaskCaloCellsQA.cxx:134 AliAnalysisTaskCaloCellsQA.cxx:135 AliAnalysisTaskCaloCellsQA.cxx:136 AliAnalysisTaskCaloCellsQA.cxx:137 AliAnalysisTaskCaloCellsQA.cxx:138 AliAnalysisTaskCaloCellsQA.cxx:139 AliAnalysisTaskCaloCellsQA.cxx:140 AliAnalysisTaskCaloCellsQA.cxx:141 AliAnalysisTaskCaloCellsQA.cxx:142 AliAnalysisTaskCaloCellsQA.cxx:143 AliAnalysisTaskCaloCellsQA.cxx:144 AliAnalysisTaskCaloCellsQA.cxx:145 AliAnalysisTaskCaloCellsQA.cxx:146 AliAnalysisTaskCaloCellsQA.cxx:147 AliAnalysisTaskCaloCellsQA.cxx:148 AliAnalysisTaskCaloCellsQA.cxx:149 AliAnalysisTaskCaloCellsQA.cxx:150 AliAnalysisTaskCaloCellsQA.cxx:151 AliAnalysisTaskCaloCellsQA.cxx:152 AliAnalysisTaskCaloCellsQA.cxx:153 AliAnalysisTaskCaloCellsQA.cxx:154 AliAnalysisTaskCaloCellsQA.cxx:155 AliAnalysisTaskCaloCellsQA.cxx:156 AliAnalysisTaskCaloCellsQA.cxx:157 AliAnalysisTaskCaloCellsQA.cxx:158 AliAnalysisTaskCaloCellsQA.cxx:159 AliAnalysisTaskCaloCellsQA.cxx:160 AliAnalysisTaskCaloCellsQA.cxx:161 AliAnalysisTaskCaloCellsQA.cxx:162 AliAnalysisTaskCaloCellsQA.cxx:163 AliAnalysisTaskCaloCellsQA.cxx:164 AliAnalysisTaskCaloCellsQA.cxx:165 AliAnalysisTaskCaloCellsQA.cxx:166 AliAnalysisTaskCaloCellsQA.cxx:167 AliAnalysisTaskCaloCellsQA.cxx:168 AliAnalysisTaskCaloCellsQA.cxx:169 AliAnalysisTaskCaloCellsQA.cxx:170 AliAnalysisTaskCaloCellsQA.cxx:171 AliAnalysisTaskCaloCellsQA.cxx:172 AliAnalysisTaskCaloCellsQA.cxx:173 AliAnalysisTaskCaloCellsQA.cxx:174 AliAnalysisTaskCaloCellsQA.cxx:175 AliAnalysisTaskCaloCellsQA.cxx:176 AliAnalysisTaskCaloCellsQA.cxx:177 AliAnalysisTaskCaloCellsQA.cxx:178 AliAnalysisTaskCaloCellsQA.cxx:179 AliAnalysisTaskCaloCellsQA.cxx:180 AliAnalysisTaskCaloCellsQA.cxx:181 AliAnalysisTaskCaloCellsQA.cxx:182 AliAnalysisTaskCaloCellsQA.cxx:183 AliAnalysisTaskCaloCellsQA.cxx:184 AliAnalysisTaskCaloCellsQA.cxx:185 AliAnalysisTaskCaloCellsQA.cxx:186 AliAnalysisTaskCaloCellsQA.cxx:187 AliAnalysisTaskCaloCellsQA.cxx:188 AliAnalysisTaskCaloCellsQA.cxx:189 AliAnalysisTaskCaloCellsQA.cxx:190 AliAnalysisTaskCaloCellsQA.cxx:191 AliAnalysisTaskCaloCellsQA.cxx:192 AliAnalysisTaskCaloCellsQA.cxx:193 AliAnalysisTaskCaloCellsQA.cxx:194 AliAnalysisTaskCaloCellsQA.cxx:195 AliAnalysisTaskCaloCellsQA.cxx:196 AliAnalysisTaskCaloCellsQA.cxx:197 AliAnalysisTaskCaloCellsQA.cxx:198 AliAnalysisTaskCaloCellsQA.cxx:199 AliAnalysisTaskCaloCellsQA.cxx:200 AliAnalysisTaskCaloCellsQA.cxx:201 AliAnalysisTaskCaloCellsQA.cxx:202 AliAnalysisTaskCaloCellsQA.cxx:203 AliAnalysisTaskCaloCellsQA.cxx:204 AliAnalysisTaskCaloCellsQA.cxx:205 AliAnalysisTaskCaloCellsQA.cxx:206 AliAnalysisTaskCaloCellsQA.cxx:207 AliAnalysisTaskCaloCellsQA.cxx:208 AliAnalysisTaskCaloCellsQA.cxx:209 AliAnalysisTaskCaloCellsQA.cxx:210 AliAnalysisTaskCaloCellsQA.cxx:211 AliAnalysisTaskCaloCellsQA.cxx:212 AliAnalysisTaskCaloCellsQA.cxx:213 AliAnalysisTaskCaloCellsQA.cxx:214 AliAnalysisTaskCaloCellsQA.cxx:215 AliAnalysisTaskCaloCellsQA.cxx:216 AliAnalysisTaskCaloCellsQA.cxx:217 AliAnalysisTaskCaloCellsQA.cxx:218 AliAnalysisTaskCaloCellsQA.cxx:219 AliAnalysisTaskCaloCellsQA.cxx:220 AliAnalysisTaskCaloCellsQA.cxx:221 AliAnalysisTaskCaloCellsQA.cxx:222 AliAnalysisTaskCaloCellsQA.cxx:223 AliAnalysisTaskCaloCellsQA.cxx:224 AliAnalysisTaskCaloCellsQA.cxx:225 AliAnalysisTaskCaloCellsQA.cxx:226 AliAnalysisTaskCaloCellsQA.cxx:227 AliAnalysisTaskCaloCellsQA.cxx:228 AliAnalysisTaskCaloCellsQA.cxx:229 AliAnalysisTaskCaloCellsQA.cxx:230