#include <TClass.h>
#include <TH1.h>
#include <TF1.h>
#include <TH1I.h>
#include <TH2F.h>
#include <TIterator.h>
#include <TKey.h>
#include <TFile.h>
#include <TLine.h>
#include <TText.h>
#include <TPaveText.h>
#include <TMath.h>
#include "AliLog.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliQAv1.h"
#include "AliQAChecker.h"
#include "AliQAThresholds.h"
#include "AliEMCALQAChecker.h"
ClassImp(AliEMCALQAChecker)
AliEMCALQAChecker::AliEMCALQAChecker() :
AliQACheckerBase("EMCAL","EMCAL Quality Assurance Data Maker"),
fTextSM(new TText*[fgknSM]),
fLineCol(new TLine(47.5,-0.5,47.5,119.5)),
fText(new TPaveText(0.2,0.7,0.8,0.9,"NDC"))
{
fLineCol->SetLineColor(1);
fLineCol->SetLineWidth(2);
fTextSM[0]= new TText(20, 12, "SM A0");
fTextSM[1]= new TText(20, 36, "SM A1");
fTextSM[2]= new TText(20, 60, "SM A2");
fTextSM[3]= new TText(20, 84, "SM A3");
fTextSM[4]= new TText(20, 108,"SM A4");
fTextSM[5]= new TText(20, 132,"SM A5");
fTextSM[6]= new TText(64, 12, "SM C0");
fTextSM[7]= new TText(64, 36, "SM C1");
fTextSM[8]= new TText(64, 60, "SM C2");
fTextSM[9]= new TText(64, 84, "SM C3");
fTextSM[10]= new TText(64, 108,"SM C4");
fTextSM[11]= new TText(64, 132,"SM C5");
for(int i = 0; i < 5; i++) {
fLineRow[i] = new TLine(-0.5,23.5+(24*i),95.5,23.5+(24*i));
fLineRow[i]->SetLineColor(1);
fLineRow[i]->SetLineWidth(2);
}
for(int i = 0; i < 3; i++) {
fTextL1[i] = new TPaveText(0.2,0.8,0.8,0.9,"NDC");
}
}
AliEMCALQAChecker::~AliEMCALQAChecker()
{
delete [] fTextSM ;
delete fLineCol ;
for (Int_t i=0; i<5; ++i) delete fLineRow[i] ;
delete fText ;
}
void AliEMCALQAChecker::Check(Double_t * test, AliQAv1::ALITASK_t index, TObjArray ** list, const AliDetectorRecoParam * )
{
if ( index == AliQAv1::kRAW )
{
CheckRaws(test, list);
}
if ( index == AliQAv1::kREC)
{
CheckRecPoints(test, list);
}
if ( index == AliQAv1::kESD )
{
CheckESD(test, list);
}
}
TH1*
AliEMCALQAChecker::GetHisto(TObjArray* list, const char* hname, Int_t specie) const
{
TH1* h = static_cast<TH1*>(list->FindObject(Form("%s_%s",AliRecoParam::GetEventSpecieName(specie),hname)));
if (!h)
{
AliError(Form("Did not find expected histo %s",hname));
}
return h;
}
Double_t
AliEMCALQAChecker::MarkHisto(TH1& histo, Double_t value) const
{
if ( value != 1.0 )
{
histo.SetBit(AliQAv1::GetQABit());
}
return value;
}
void AliEMCALQAChecker::CheckRaws(Double_t * test, TObjArray ** list)
{
Float_t ratioThresh = 0.9;
Float_t ThreshG = 0.5;
Float_t ThreshJ = 0.5;
Int_t badLinkThresh = 1;
AliCDBManager* man = AliCDBManager::Instance();
if(man){
AliCDBEntry* entry = man->Get("GRP/Calib/QAThresholds");
if(entry){
TObjArray* branch = (TObjArray*) entry->GetObject();
if(branch){
AliQAThresholds* thresholds = (AliQAThresholds*) branch->FindObject("EMC");
if(thresholds){
TParameter<float>* ParamR = (TParameter<float>*) thresholds->GetThreshold(0);
TParameter<float>* ParamG = (TParameter<float>*) thresholds->GetThreshold(1);
TParameter<float>* ParamJ = (TParameter<float>*) thresholds->GetThreshold(2);
TParameter<int>* ParamL = (TParameter<int>*) thresholds->GetThreshold(3);
if(ParamR)
ratioThresh = ParamR->GetVal();
if(ParamG)
ThreshG = ParamG->GetVal();
if(ParamJ)
ThreshJ = ParamJ->GetVal();
if(ParamL)
badLinkThresh = ParamL->GetVal();
}
}
}
}
Int_t nTowersPerSM = 24*48;
Double_t nTot = fgknSM * nTowersPerSM ;
TList *lstF = 0;
Int_t calibSpecieId = (Int_t)TMath::Log2( AliRecoParam::kCalib );
for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
test[specie] = 0.0 ;
if ( !AliQAv1::Instance()->IsEventSpecieSet(specie)) continue ;
if (list[specie]->GetEntries() == 0) test[specie] = 0. ;
else {
TH2F * hdata = (TH2F*)list[specie]->At(k2DRatioAmp) ;
TH1F * ratio = (TH1F*)list[specie]->At(kRatioDist) ;
TH2F *hL1GammaPatch = (TH2F*)list[specie]->At(kGL1);
TH2F *hL1JetPatch = (TH2F*)list[specie]->At(kJL1);
TH1I *hFrameR = (TH1I*)list[specie]->At(kSTUTRU);
if( hdata && ratio ){
lstF = hdata->GetListOfFunctions();
CleanListOfFunctions(lstF);
lstF = ratio->GetListOfFunctions();
CleanListOfFunctions(lstF);
if(hdata->GetEntries()!=0 && ratio->GetEntries()!=0) {
lstF = hdata->GetListOfFunctions();
lstF->Add(fLineCol->Clone());
for(Int_t iLine = 0; iLine < 5; iLine++) {
lstF->Add(fLineRow[iLine]->Clone());
}
for(Int_t iSM = 0 ; iSM < fgknSM ; iSM++){
lstF->Add(fTextSM[iSM]->Clone());
}
lstF = ratio->GetListOfFunctions();
Double_t binContent = 0. ;
Int_t nGoodTower = 0 ;
Double_t rv = 0. ;
for(Int_t ix = 1; ix <= hdata->GetNbinsX(); ix++) {
for(Int_t iy = 1; iy <= hdata->GetNbinsY(); iy++) {
binContent = hdata->GetBinContent(ix, iy) ;
if (binContent < 1.2 && binContent > 0.8) nGoodTower++ ;
}
}
rv = nGoodTower/nTot ;
if(fText){
lstF->Add(fText->Clone()) ;
fText->Clear() ;
fText->AddText(Form("%2.2f %% towers out of range [0.8, 1.2]", (1-rv)*100));
if (rv < ratioThresh) {
test[specie] = ratioThresh;
fText->SetFillColor(2) ;
fText->AddText(Form("EMCAL = NOK, CALL EXPERTS!!!"));
}
else {
test[specie] = 1 - ratioThresh;
fText->SetFillColor(3) ;
fText->AddText(Form("EMCAL = OK, ENJOY..."));
}
}
}
}
if( hL1GammaPatch ){
lstF = hL1GammaPatch->GetListOfFunctions();
CleanListOfFunctions(lstF);
if (specie != calibSpecieId) {
if(hL1GammaPatch->GetEntries() > 10) {
lstF = hL1GammaPatch->GetListOfFunctions();
Double_t dL1GEntries = hL1GammaPatch->GetEntries();
Int_t badL1G[48][64] = {{0}} ;
Int_t badL1GTRU[2][16] = {{0}} ;
Int_t nBadL1G = 0;
Int_t nBadL1GTRU = 0;
Double_t binContentTRU[2][16] = {{0.}};
for(Int_t ix = 1; ix <= hL1GammaPatch->GetNbinsX(); ix++) {
for(Int_t iy = 1; iy <= hL1GammaPatch->GetNbinsY(); iy++) {
Double_t binContent = hL1GammaPatch->GetBinContent(ix, iy) ;
if (binContent != 0) {
binContentTRU[(Int_t)((ix-1)/24)][(Int_t)((iy-1)/4)] += binContent;
if (binContent/dL1GEntries > ThreshG / ( 1 + ThreshG )) {
badL1G[ix-1][iy-1] += 1;
nBadL1G += 1;
}
}
}
}
for(Int_t ix = 1; ix <= 2; ix++) {
for(Int_t iy = 1; iy <= 16; iy++) {
if(binContentTRU[ix-1][iy-1]/dL1GEntries > ThreshG / ( 1 + ThreshG )) {
badL1GTRU[ix-1][iy-1] += 1;
nBadL1GTRU += 1;
}
}
}
if(fTextL1[0]){
lstF->Add(fTextL1[0]->Clone()) ;
fTextL1[0]->Clear() ;
if (nBadL1G == 0 && nBadL1GTRU == 0 ) {
fTextL1[0]->SetFillColor(3) ;
fTextL1[0]->AddText(Form("L1 GAMMA TRIGGER = OK, ENJOY..."));
}
else if (nBadL1G == 0){
fTextL1[0]->SetFillColor(2) ;
fTextL1[0]->AddText(Form("HOT SPOT IN L1 GAMMA TRIGGER (TRU) = CALL EXPERT!!"));
}
else{
fTextL1[0]->SetFillColor(2) ;
fTextL1[0]->AddText(Form("HOT SPOT IN L1 GAMMA TRIGGER = CALL EXPERT!!"));
}
}
}
}
}
if( hL1JetPatch ){
lstF = hL1JetPatch->GetListOfFunctions();
CleanListOfFunctions(lstF);
if (specie != calibSpecieId) {
if(hL1JetPatch->GetEntries() > 10) {
lstF = hL1JetPatch->GetListOfFunctions();
Double_t dL1JEntries = hL1JetPatch->GetEntries();
Int_t badL1J[12][16] = {{0}} ;
Int_t nBadL1J = 0;
for(Int_t ix = 1; ix <= hL1JetPatch->GetNbinsX(); ix++) {
for(Int_t iy = 1; iy <= hL1JetPatch->GetNbinsY(); iy++) {
Double_t binContent = hL1JetPatch->GetBinContent(ix, iy) ;
if (binContent != 0) {
if ((double)binContent/(double)dL1JEntries > ThreshJ / ( 1 + ThreshJ )) {
badL1J[ix-1][iy-1] += 1 ;
nBadL1J += 1;
}
}
}
}
if(fTextL1[1]){
lstF->Add(fTextL1[1]->Clone()) ;
fTextL1[1]->Clear() ;
if (nBadL1J == 0) {
fTextL1[1]->SetFillColor(3) ;
fTextL1[1]->AddText(Form("L1 JET TRIGGER = OK, ENJOY..."));
}
else {
fTextL1[1]->SetFillColor(2) ;
fTextL1[1]->AddText(Form("HOT SPOT IN L1 JET TRIGGER = CALL EXPERT!!"));
}
}
}
}
}
if(hFrameR){
lstF = hFrameR->GetListOfFunctions();
CleanListOfFunctions(lstF);
if(hFrameR->GetEntries() !=0) {
lstF = hFrameR->GetListOfFunctions();
Int_t badLink[32] = {0};
Int_t nBadLink = 0;
for(Int_t ix = 1; ix <= hFrameR->GetNbinsX(); ix++) {
Double_t binContent = hFrameR->GetBinContent(ix) ;
if (binContent == 0) {
badLink[ix-1] += 1;
nBadLink += 1;
}
}
if(fTextL1[2]){
lstF->Add(fTextL1[2]->Clone()) ;
fTextL1[2]->Clear() ;
if (nBadLink < badLinkThresh) {
fTextL1[2]->SetFillColor(3) ;
fTextL1[2]->AddText(Form("LINK TRU-STU = OK, ENJOY..."));
}
else {
fTextL1[2]->SetFillColor(2) ;
fTextL1[2]->AddText(Form("PROBLEM WITH TRU-STU LINK = CALL EXPERT!!"));
}
}
}
}
}
}
}
void AliEMCALQAChecker::Init(const AliQAv1::DETECTORINDEX_t det)
{
AliQAv1::Instance(det) ;
Float_t hiValue[AliQAv1::kNBIT] ;
Float_t lowValue[AliQAv1::kNBIT] ;
lowValue[AliQAv1::kINFO] = 0.0 ;
hiValue[AliQAv1::kINFO] = 0.1 ;
lowValue[AliQAv1::kWARNING] = 0.1 ;
hiValue[AliQAv1::kWARNING] = 0.5 ;
lowValue[AliQAv1::kERROR] = 0.5 ;
hiValue[AliQAv1::kERROR] = 0.8 ;
lowValue[AliQAv1::kFATAL] = 0.8 ;
hiValue[AliQAv1::kFATAL] = 1.0 ;
SetHiLo(&hiValue[0], &lowValue[0]) ;
}
void AliEMCALQAChecker::CleanListOfFunctions(TList *list)
{
if (list) {
TObject *stats = list->FindObject("stats"); list->Remove(stats);
TObject *obj;
while ((obj = list->First())) { while(list->Remove(obj)) { } delete obj; }
if (stats) list->Add(stats);
}
else {
AliWarning(Form("Checker : empty list of data functions; returning"));
return;
}
}
AliEMCALQAChecker.cxx:100 AliEMCALQAChecker.cxx:101 AliEMCALQAChecker.cxx:102 AliEMCALQAChecker.cxx:103 AliEMCALQAChecker.cxx:104 AliEMCALQAChecker.cxx:105 AliEMCALQAChecker.cxx:106 AliEMCALQAChecker.cxx:107 AliEMCALQAChecker.cxx:108 AliEMCALQAChecker.cxx:109 AliEMCALQAChecker.cxx:110 AliEMCALQAChecker.cxx:111 AliEMCALQAChecker.cxx:112 AliEMCALQAChecker.cxx:113 AliEMCALQAChecker.cxx:114 AliEMCALQAChecker.cxx:115 AliEMCALQAChecker.cxx:116 AliEMCALQAChecker.cxx:117 AliEMCALQAChecker.cxx:118 AliEMCALQAChecker.cxx:119 AliEMCALQAChecker.cxx:120 AliEMCALQAChecker.cxx:121 AliEMCALQAChecker.cxx:122 AliEMCALQAChecker.cxx:123 AliEMCALQAChecker.cxx:124 AliEMCALQAChecker.cxx:125 AliEMCALQAChecker.cxx:126 AliEMCALQAChecker.cxx:127 AliEMCALQAChecker.cxx:128 AliEMCALQAChecker.cxx:129 AliEMCALQAChecker.cxx:130 AliEMCALQAChecker.cxx:131 AliEMCALQAChecker.cxx:132 AliEMCALQAChecker.cxx:133 AliEMCALQAChecker.cxx:134 AliEMCALQAChecker.cxx:135 AliEMCALQAChecker.cxx:136 AliEMCALQAChecker.cxx:137 AliEMCALQAChecker.cxx:138 AliEMCALQAChecker.cxx:139 AliEMCALQAChecker.cxx:140 AliEMCALQAChecker.cxx:141 AliEMCALQAChecker.cxx:142 AliEMCALQAChecker.cxx:143 AliEMCALQAChecker.cxx:144 AliEMCALQAChecker.cxx:145 AliEMCALQAChecker.cxx:146 AliEMCALQAChecker.cxx:147 AliEMCALQAChecker.cxx:148 AliEMCALQAChecker.cxx:149 AliEMCALQAChecker.cxx:150 AliEMCALQAChecker.cxx:151 AliEMCALQAChecker.cxx:152 AliEMCALQAChecker.cxx:153 AliEMCALQAChecker.cxx:154 AliEMCALQAChecker.cxx:155 AliEMCALQAChecker.cxx:156 AliEMCALQAChecker.cxx:157 AliEMCALQAChecker.cxx:158 AliEMCALQAChecker.cxx:159 AliEMCALQAChecker.cxx:160 AliEMCALQAChecker.cxx:161 AliEMCALQAChecker.cxx:162 AliEMCALQAChecker.cxx:163 AliEMCALQAChecker.cxx:164 AliEMCALQAChecker.cxx:165 AliEMCALQAChecker.cxx:166 AliEMCALQAChecker.cxx:167 AliEMCALQAChecker.cxx:168 AliEMCALQAChecker.cxx:169 AliEMCALQAChecker.cxx:170 AliEMCALQAChecker.cxx:171 AliEMCALQAChecker.cxx:172 AliEMCALQAChecker.cxx:173 AliEMCALQAChecker.cxx:174 AliEMCALQAChecker.cxx:175 AliEMCALQAChecker.cxx:176 AliEMCALQAChecker.cxx:177 AliEMCALQAChecker.cxx:178 AliEMCALQAChecker.cxx:179 AliEMCALQAChecker.cxx:180 AliEMCALQAChecker.cxx:181 AliEMCALQAChecker.cxx:182 AliEMCALQAChecker.cxx:183 AliEMCALQAChecker.cxx:184 AliEMCALQAChecker.cxx:185 AliEMCALQAChecker.cxx:186 AliEMCALQAChecker.cxx:187 AliEMCALQAChecker.cxx:188 AliEMCALQAChecker.cxx:189 AliEMCALQAChecker.cxx:190 AliEMCALQAChecker.cxx:191 AliEMCALQAChecker.cxx:192 AliEMCALQAChecker.cxx:193 AliEMCALQAChecker.cxx:194 AliEMCALQAChecker.cxx:195 AliEMCALQAChecker.cxx:196 AliEMCALQAChecker.cxx:197 AliEMCALQAChecker.cxx:198 AliEMCALQAChecker.cxx:199 AliEMCALQAChecker.cxx:200 AliEMCALQAChecker.cxx:201 AliEMCALQAChecker.cxx:202 AliEMCALQAChecker.cxx:203 AliEMCALQAChecker.cxx:204 AliEMCALQAChecker.cxx:205 AliEMCALQAChecker.cxx:206 AliEMCALQAChecker.cxx:207 AliEMCALQAChecker.cxx:208 AliEMCALQAChecker.cxx:209 AliEMCALQAChecker.cxx:210 AliEMCALQAChecker.cxx:211 AliEMCALQAChecker.cxx:212 AliEMCALQAChecker.cxx:213 AliEMCALQAChecker.cxx:214 AliEMCALQAChecker.cxx:215 AliEMCALQAChecker.cxx:216 AliEMCALQAChecker.cxx:217 AliEMCALQAChecker.cxx:218 AliEMCALQAChecker.cxx:219 AliEMCALQAChecker.cxx:220 AliEMCALQAChecker.cxx:221 AliEMCALQAChecker.cxx:222 AliEMCALQAChecker.cxx:223 AliEMCALQAChecker.cxx:224 AliEMCALQAChecker.cxx:225 AliEMCALQAChecker.cxx:226 AliEMCALQAChecker.cxx:227 AliEMCALQAChecker.cxx:228 AliEMCALQAChecker.cxx:229 AliEMCALQAChecker.cxx:230 AliEMCALQAChecker.cxx:231 AliEMCALQAChecker.cxx:232 AliEMCALQAChecker.cxx:233 AliEMCALQAChecker.cxx:234 AliEMCALQAChecker.cxx:235 AliEMCALQAChecker.cxx:236 AliEMCALQAChecker.cxx:237 AliEMCALQAChecker.cxx:238 AliEMCALQAChecker.cxx:239 AliEMCALQAChecker.cxx:240 AliEMCALQAChecker.cxx:241 AliEMCALQAChecker.cxx:242 AliEMCALQAChecker.cxx:243 AliEMCALQAChecker.cxx:244 AliEMCALQAChecker.cxx:245 AliEMCALQAChecker.cxx:246 AliEMCALQAChecker.cxx:247 AliEMCALQAChecker.cxx:248 AliEMCALQAChecker.cxx:249 AliEMCALQAChecker.cxx:250 AliEMCALQAChecker.cxx:251 AliEMCALQAChecker.cxx:252 AliEMCALQAChecker.cxx:253 AliEMCALQAChecker.cxx:254 AliEMCALQAChecker.cxx:255 AliEMCALQAChecker.cxx:256 AliEMCALQAChecker.cxx:257 AliEMCALQAChecker.cxx:258 AliEMCALQAChecker.cxx:259 AliEMCALQAChecker.cxx:260 AliEMCALQAChecker.cxx:261 AliEMCALQAChecker.cxx:262 AliEMCALQAChecker.cxx:263 AliEMCALQAChecker.cxx:264 AliEMCALQAChecker.cxx:265 AliEMCALQAChecker.cxx:266 AliEMCALQAChecker.cxx:267 AliEMCALQAChecker.cxx:268 AliEMCALQAChecker.cxx:269 AliEMCALQAChecker.cxx:270 AliEMCALQAChecker.cxx:271 AliEMCALQAChecker.cxx:272 AliEMCALQAChecker.cxx:273 AliEMCALQAChecker.cxx:274 AliEMCALQAChecker.cxx:275 AliEMCALQAChecker.cxx:276 AliEMCALQAChecker.cxx:277 AliEMCALQAChecker.cxx:278 AliEMCALQAChecker.cxx:279 AliEMCALQAChecker.cxx:280 AliEMCALQAChecker.cxx:281 AliEMCALQAChecker.cxx:282 AliEMCALQAChecker.cxx:283 AliEMCALQAChecker.cxx:284 AliEMCALQAChecker.cxx:285 AliEMCALQAChecker.cxx:286 AliEMCALQAChecker.cxx:287 AliEMCALQAChecker.cxx:288 AliEMCALQAChecker.cxx:289 AliEMCALQAChecker.cxx:290 AliEMCALQAChecker.cxx:291 AliEMCALQAChecker.cxx:292 AliEMCALQAChecker.cxx:293 AliEMCALQAChecker.cxx:294 AliEMCALQAChecker.cxx:295 AliEMCALQAChecker.cxx:296 AliEMCALQAChecker.cxx:297 AliEMCALQAChecker.cxx:298 AliEMCALQAChecker.cxx:299 AliEMCALQAChecker.cxx:300 AliEMCALQAChecker.cxx:301 AliEMCALQAChecker.cxx:302 AliEMCALQAChecker.cxx:303 AliEMCALQAChecker.cxx:304 AliEMCALQAChecker.cxx:305 AliEMCALQAChecker.cxx:306 AliEMCALQAChecker.cxx:307 AliEMCALQAChecker.cxx:308 AliEMCALQAChecker.cxx:309 AliEMCALQAChecker.cxx:310 AliEMCALQAChecker.cxx:311 AliEMCALQAChecker.cxx:312 AliEMCALQAChecker.cxx:313 AliEMCALQAChecker.cxx:314 AliEMCALQAChecker.cxx:315 AliEMCALQAChecker.cxx:316 AliEMCALQAChecker.cxx:317 AliEMCALQAChecker.cxx:318 AliEMCALQAChecker.cxx:319 AliEMCALQAChecker.cxx:320 AliEMCALQAChecker.cxx:321 AliEMCALQAChecker.cxx:322 AliEMCALQAChecker.cxx:323 AliEMCALQAChecker.cxx:324 AliEMCALQAChecker.cxx:325 AliEMCALQAChecker.cxx:326 AliEMCALQAChecker.cxx:327 AliEMCALQAChecker.cxx:328 AliEMCALQAChecker.cxx:329 AliEMCALQAChecker.cxx:330 AliEMCALQAChecker.cxx:331 AliEMCALQAChecker.cxx:332 AliEMCALQAChecker.cxx:333 AliEMCALQAChecker.cxx:334 AliEMCALQAChecker.cxx:335 AliEMCALQAChecker.cxx:336 AliEMCALQAChecker.cxx:337 AliEMCALQAChecker.cxx:338 AliEMCALQAChecker.cxx:339 AliEMCALQAChecker.cxx:340 AliEMCALQAChecker.cxx:341 AliEMCALQAChecker.cxx:342 AliEMCALQAChecker.cxx:343 AliEMCALQAChecker.cxx:344 AliEMCALQAChecker.cxx:345 AliEMCALQAChecker.cxx:346 AliEMCALQAChecker.cxx:347 AliEMCALQAChecker.cxx:348 AliEMCALQAChecker.cxx:349 AliEMCALQAChecker.cxx:350 AliEMCALQAChecker.cxx:351 AliEMCALQAChecker.cxx:352 AliEMCALQAChecker.cxx:353 AliEMCALQAChecker.cxx:354 AliEMCALQAChecker.cxx:355 AliEMCALQAChecker.cxx:356 AliEMCALQAChecker.cxx:357 AliEMCALQAChecker.cxx:358 AliEMCALQAChecker.cxx:359 AliEMCALQAChecker.cxx:360 AliEMCALQAChecker.cxx:361 AliEMCALQAChecker.cxx:362 AliEMCALQAChecker.cxx:363 AliEMCALQAChecker.cxx:364 AliEMCALQAChecker.cxx:365 AliEMCALQAChecker.cxx:366 AliEMCALQAChecker.cxx:367 AliEMCALQAChecker.cxx:368 AliEMCALQAChecker.cxx:369 AliEMCALQAChecker.cxx:370 AliEMCALQAChecker.cxx:371 AliEMCALQAChecker.cxx:372 AliEMCALQAChecker.cxx:373 AliEMCALQAChecker.cxx:374 AliEMCALQAChecker.cxx:375 AliEMCALQAChecker.cxx:376 AliEMCALQAChecker.cxx:377 AliEMCALQAChecker.cxx:378 AliEMCALQAChecker.cxx:379 AliEMCALQAChecker.cxx:380 AliEMCALQAChecker.cxx:381 AliEMCALQAChecker.cxx:382 AliEMCALQAChecker.cxx:383 AliEMCALQAChecker.cxx:384 AliEMCALQAChecker.cxx:385 AliEMCALQAChecker.cxx:386 AliEMCALQAChecker.cxx:387 AliEMCALQAChecker.cxx:388 AliEMCALQAChecker.cxx:389 AliEMCALQAChecker.cxx:390 AliEMCALQAChecker.cxx:391 AliEMCALQAChecker.cxx:392 AliEMCALQAChecker.cxx:393 AliEMCALQAChecker.cxx:394 AliEMCALQAChecker.cxx:395 AliEMCALQAChecker.cxx:396 AliEMCALQAChecker.cxx:397 AliEMCALQAChecker.cxx:398 AliEMCALQAChecker.cxx:399 AliEMCALQAChecker.cxx:400 AliEMCALQAChecker.cxx:401 AliEMCALQAChecker.cxx:402 AliEMCALQAChecker.cxx:403 AliEMCALQAChecker.cxx:404 AliEMCALQAChecker.cxx:405 AliEMCALQAChecker.cxx:406 AliEMCALQAChecker.cxx:407 AliEMCALQAChecker.cxx:408 AliEMCALQAChecker.cxx:409 AliEMCALQAChecker.cxx:410 AliEMCALQAChecker.cxx:411 AliEMCALQAChecker.cxx:412 AliEMCALQAChecker.cxx:413 AliEMCALQAChecker.cxx:414 AliEMCALQAChecker.cxx:415 AliEMCALQAChecker.cxx:416 AliEMCALQAChecker.cxx:417 AliEMCALQAChecker.cxx:418 AliEMCALQAChecker.cxx:419 AliEMCALQAChecker.cxx:420 AliEMCALQAChecker.cxx:421 AliEMCALQAChecker.cxx:422 AliEMCALQAChecker.cxx:423 AliEMCALQAChecker.cxx:424 AliEMCALQAChecker.cxx:425 AliEMCALQAChecker.cxx:426 AliEMCALQAChecker.cxx:427 AliEMCALQAChecker.cxx:428 AliEMCALQAChecker.cxx:429 AliEMCALQAChecker.cxx:430 AliEMCALQAChecker.cxx:431 AliEMCALQAChecker.cxx:432 AliEMCALQAChecker.cxx:433 AliEMCALQAChecker.cxx:434 AliEMCALQAChecker.cxx:435 AliEMCALQAChecker.cxx:436 AliEMCALQAChecker.cxx:437 AliEMCALQAChecker.cxx:438 AliEMCALQAChecker.cxx:439 AliEMCALQAChecker.cxx:440 AliEMCALQAChecker.cxx:441 AliEMCALQAChecker.cxx:442 AliEMCALQAChecker.cxx:443 AliEMCALQAChecker.cxx:444 AliEMCALQAChecker.cxx:445 AliEMCALQAChecker.cxx:446 AliEMCALQAChecker.cxx:447 AliEMCALQAChecker.cxx:448 AliEMCALQAChecker.cxx:449 AliEMCALQAChecker.cxx:450 AliEMCALQAChecker.cxx:451 AliEMCALQAChecker.cxx:452 AliEMCALQAChecker.cxx:453 AliEMCALQAChecker.cxx:454 AliEMCALQAChecker.cxx:455 AliEMCALQAChecker.cxx:456 AliEMCALQAChecker.cxx:457 AliEMCALQAChecker.cxx:458 AliEMCALQAChecker.cxx:459 AliEMCALQAChecker.cxx:460 AliEMCALQAChecker.cxx:461 AliEMCALQAChecker.cxx:462 AliEMCALQAChecker.cxx:463 AliEMCALQAChecker.cxx:464 AliEMCALQAChecker.cxx:465 AliEMCALQAChecker.cxx:466 AliEMCALQAChecker.cxx:467 AliEMCALQAChecker.cxx:468 AliEMCALQAChecker.cxx:469 AliEMCALQAChecker.cxx:470 AliEMCALQAChecker.cxx:471 AliEMCALQAChecker.cxx:472 AliEMCALQAChecker.cxx:473 AliEMCALQAChecker.cxx:474 AliEMCALQAChecker.cxx:475 AliEMCALQAChecker.cxx:476 AliEMCALQAChecker.cxx:477 AliEMCALQAChecker.cxx:478 AliEMCALQAChecker.cxx:479 AliEMCALQAChecker.cxx:480 AliEMCALQAChecker.cxx:481 AliEMCALQAChecker.cxx:482 AliEMCALQAChecker.cxx:483 AliEMCALQAChecker.cxx:484 AliEMCALQAChecker.cxx:485 AliEMCALQAChecker.cxx:486 AliEMCALQAChecker.cxx:487 AliEMCALQAChecker.cxx:488 AliEMCALQAChecker.cxx:489 AliEMCALQAChecker.cxx:490 AliEMCALQAChecker.cxx:491 AliEMCALQAChecker.cxx:492 AliEMCALQAChecker.cxx:493 AliEMCALQAChecker.cxx:494 AliEMCALQAChecker.cxx:495 AliEMCALQAChecker.cxx:496 AliEMCALQAChecker.cxx:497 AliEMCALQAChecker.cxx:498 AliEMCALQAChecker.cxx:499 AliEMCALQAChecker.cxx:500 AliEMCALQAChecker.cxx:501 AliEMCALQAChecker.cxx:502 AliEMCALQAChecker.cxx:503 AliEMCALQAChecker.cxx:504 AliEMCALQAChecker.cxx:505 AliEMCALQAChecker.cxx:506