#include "TH1.h"
#include "TH2F.h"
#include "TString.h"
#include "TList.h"
#include "TCanvas.h"
#include "TFrame.h"
#include "TStyle.h"
#include "TPaletteAxis.h"
#include"AliQACheckerBase.h"
#include "AliITSQASPDChecker.h"
#include "AliITSQADataMakerRec.h"
#include "AliLog.h"
ClassImp(AliITSQASPDChecker)
AliITSQASPDChecker::AliITSQASPDChecker() :
TObject(),
fSubDetOffset(0),
fStepBitSPD(NULL),
fLowSPDValue(NULL),
fHighSPDValue(NULL),
fImage(NULL)
{
}
AliITSQASPDChecker& AliITSQASPDChecker::operator = (const AliITSQASPDChecker& qac )
{
this->~AliITSQASPDChecker();
new(this) AliITSQASPDChecker(qac);
return *this;
}
AliITSQASPDChecker::~AliITSQASPDChecker() {
if(fStepBitSPD) delete[] fStepBitSPD ;
if(fLowSPDValue)delete[]fLowSPDValue;
if(fHighSPDValue) delete[]fHighSPDValue;
if(fImage) delete[]fImage;
}
Double_t AliITSQASPDChecker::Check(AliQAv1::ALITASK_t index, TObjArray * list, const AliDetectorRecoParam * )
{
AliDebug(2, Form("AliITSQASPDChecker called with offset: %d\n", fSubDetOffset));
Double_t test = 0.0;
Int_t count = 0;
if(index == AliQAv1::kRAW) {
return CheckRawData(list);
} else {
if (list->GetEntries() == 0) {
test = 1.;
}
else {
TIter next(list);
TH1 * hdata;
count = 0;
while ( (hdata = dynamic_cast<TH1 *>(next())) ) {
if (hdata) {
TString histName = hdata->GetName();
if (!histName.Contains("_SPD")) continue;
Double_t rv = 0.;
if (hdata->GetEntries()>0) rv = 1;
if (histName.Contains("LayPattern")) {
if (hdata->GetBinContent(1)) {
Double_t ratio=hdata->GetBinContent(2)/hdata->GetBinContent(1);
AliDebug(2, Form("%s: ratio RecPoints lay2 / lay1 = %f", hdata->GetName(), ratio));
}
else
AliDebug(AliQAv1::GetQADebugLevel(), "No RecPoints in lay1");
}
else if(histName.Contains("ModPattern")) {
Int_t ndead=0;
for(Int_t ibin=0;ibin<hdata->GetNbinsX();ibin++) {
if(histName.Contains("SPD1") && ibin<80 && hdata->GetBinContent(ibin+1)>0) ndead++;
if(histName.Contains("SPD2") && ibin>79 && hdata->GetBinContent(ibin+1)>0) ndead++;
}
AliDebug(2, Form("%s: Entries = %d number of empty modules = %d",
hdata->GetName(),(Int_t)hdata->GetEntries(),ndead));
}
else if(histName.Contains("SizeYvsZ")) {
Double_t meanz=hdata->GetMean(1);
Double_t meany=hdata->GetMean(2);
Double_t rmsz=hdata->GetRMS(1);
Double_t rmsy=hdata->GetRMS(2);
AliDebug(AliQAv1::GetQADebugLevel(), Form("%s: Cluster sizeY mean = %f rms = %f", hdata->GetName(),meany,rmsy));
AliDebug(AliQAv1::GetQADebugLevel(), Form("%s: Cluster sizeZ mean = %f rms = %f", hdata->GetName(),meanz,rmsz));
}
else if(histName.Contains("SPDMultiplicity")) {
AliDebug(2, Form("%s: Events = %d mean = %f rms = %f",
hdata->GetName(),(Int_t)hdata->GetEntries(),hdata->GetMean(),hdata->GetRMS()));}
count++;
test += rv;
}
else {
AliError("Data type cannot be processed") ;
}
}
if (count != 0) {
if (AliITSQADataMakerRec::AreEqual(test,0)) {
AliWarning("Histograms are there, but they are all empty: setting flag to kWARNING");
test = fHighSPDValue[AliQAv1::kWARNING];
}
else {
test /= count;
}
}
}
}
AliDebug(AliQAv1::GetQADebugLevel(), Form("Test Result = %f", test));
return test ;
}
Double_t AliITSQASPDChecker::CheckRawData(const TObjArray * list) {
Double_t test =0;
if(!list) {
AliError("NO histogram list for RAWS");
return test;
}
if(list->GetEntries() == 0) {
AliWarning("No histograms in RAW list \n");
return test;
}
TIter next(list);
TH1 * hdata;
Double_t totalHistos = 0;
Double_t goodHistos = 0;
Double_t response =0;
Bool_t fatalProblem = kFALSE;
while ( (hdata = dynamic_cast<TH1 *>(next())) ) {
if (hdata) {
TString histName = hdata->GetName();
if(!histName.Contains("SPD")) continue;
totalHistos++;
if(histName.Contains("SPDErrorsAll")){
if(hdata->GetListOfFunctions()->GetEntries()<1) hdata->GetListOfFunctions()->Add(new TPaveText(0.2,0.23,0.7,0.5,"NDC"));
for(Int_t i=0; i<hdata->GetListOfFunctions()->GetEntries(); i++){
TString funcName = hdata->GetListOfFunctions()->At(i)->ClassName();
if(funcName.Contains("TPaveText")){
TPaveText *p = (TPaveText*)hdata->GetListOfFunctions()->At(i);
p->Clear();
if(hdata->Integral(0,hdata->GetNbinsX())>0){
Bool_t isHighMult = kFALSE;
Bool_t isDataCorrupted=kFALSE;
for(Int_t ieq=0; ieq<20; ieq++){
if(hdata->GetBinContent(ieq+1,17+1)>0 && hdata->GetBinContent(ieq+1,20+1)>0) isHighMult = kTRUE;
for(Int_t iErr=1; iErr<20; iErr++){
if(iErr==20 || iErr==17) continue;
if(hdata->GetBinContent(ieq+1,iErr+1)>0) isDataCorrupted=kTRUE;
}
}
if(isHighMult && !isDataCorrupted) {
p->SetFillColor(kOrange);
p->AddText("High occupancy in a chip detected (-> errors type 17,20 and 0 are present). ");
p->AddText("ONLY IF OTHER error types are present CALL the expert");
response = fHighSPDValue[AliQAv1::kWARNING];
} else if(isDataCorrupted) {
p->SetFillColor(kRed);
p->AddText("Data Format NOT OK. Please call the expert!");
response = fHighSPDValue[AliQAv1::kFATAL];
fatalProblem=kTRUE;
}
continue;
}
else {
p->Clear();
p->SetFillColor(kGreen);
p->AddText("OK");
}
}
}
}
else if(histName.Contains("MEB")){
if(hdata->GetListOfFunctions()->GetEntries()<1) hdata->GetListOfFunctions()->Add(new TPaveText(0.2,0.23,0.7,0.5,"NDC"));
for(Int_t i=0; i<hdata->GetListOfFunctions()->GetEntries(); i++){
TString funcName = hdata->GetListOfFunctions()->At(i)->ClassName();
if(funcName.Contains("TPaveText")){
TPaveText *p = (TPaveText*)hdata->GetListOfFunctions()->At(i);
p->Clear();
if(hdata->GetEntries()>0){
p->SetFillColor(kRed);
p->AddText("MEB problem could be present. Please check if SPD is in READY state.");
p->AddText("If SPD is in -READY- state, please notify it to the expert.");
response = fHighSPDValue[AliQAv1::kFATAL];
fatalProblem=kTRUE;
continue;
} else {
p->SetFillColor(kGreen);
p->AddText("OK");
}
}
}
}
goodHistos++;
}
}
if(!fatalProblem) response = goodHistos/totalHistos;
return response;
}
void AliITSQASPDChecker::SetTaskOffset(Int_t TaskOffset)
{
fSubDetOffset = TaskOffset;
}
void AliITSQASPDChecker::SetStepBit(const Double_t *steprange)
{
fStepBitSPD = new Double_t[AliQAv1::kNBIT];
for(Int_t bit=0;bit<AliQAv1::kNBIT;bit++)
{
fStepBitSPD[bit]=steprange[bit];
}
}
void AliITSQASPDChecker::SetSPDLimits(const Float_t *lowvalue, const Float_t * highvalue)
{
fLowSPDValue = new Float_t[AliQAv1::kNBIT];
fHighSPDValue= new Float_t[AliQAv1::kNBIT];
for(Int_t bit=0;bit<AliQAv1::kNBIT;bit++)
{
fLowSPDValue[bit]=lowvalue[bit];
fHighSPDValue[bit]= highvalue[bit];
}
}
Bool_t AliITSQASPDChecker::MakeSPDImage( TObjArray ** list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode)
{
Bool_t val=kFALSE;
fImage=(TCanvas**)AliQAChecker::Instance()->GetDetQAChecker(0)->GetImage();
switch(task)
{
case AliQAv1::kRAWS:{
val = MakeSPDRawsImage(list, task,mode);
}
break;
case AliQAv1::kRECPOINTS:;
case AliQAv1::kHITS:;
case AliQAv1::kESDS:;
case AliQAv1::kDIGITS:;
case AliQAv1::kDIGITSR:;
case AliQAv1::kSDIGITS:;
case AliQAv1::kTRACKSEGMENTS:;
case AliQAv1::kRECPARTICLES:;
default:
{
val = kFALSE;
}
break;
case AliQAv1::kNULLTASKINDEX:; case AliQAv1::kNTASKINDEX:
{AliWarning(Form("No histograms for these tasks ( %s ) \n", AliQAv1::GetTaskName(task).Data())); val = kFALSE;}
break;
}
return val;
}
Bool_t AliITSQASPDChecker::MakeSPDRawsImage(TObjArray ** list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode )
{
gStyle->SetOptStat(10);
for (Int_t esIndex = 0 ; esIndex < AliRecoParam::kNSpecies ; esIndex++) {
if (! AliQAv1::Instance(AliQAv1::GetDetIndex(GetName()))->IsEventSpecieSet(AliRecoParam::ConvertIndex(esIndex)) || list[esIndex]->GetEntries() == 0)
{printf ("Nothing for %s \n", AliRecoParam::GetEventSpecieName(esIndex)); continue;}
else{
const Char_t * title = Form("QA_%s_%s_%s", GetName(), AliQAv1::GetTaskName(task).Data(), AliRecoParam::GetEventSpecieName(esIndex)) ;
if ( !fImage[esIndex] ) {
fImage[esIndex] = new TCanvas(title, title,6000,3200) ;
}
fImage[esIndex]->Clear() ;
fImage[esIndex]->SetTitle(title) ;
fImage[esIndex]->cd();
TPaveText someText(0.015, 0.015, 0.98, 0.98);
someText.AddText(title);
someText.Draw();
fImage[esIndex]->Print(Form("%s%s%d.%s", AliQAv1::GetImageFileName(), AliQAv1::GetModeName(mode), AliQAChecker::Instance()->GetRunNumber(), AliQAv1::GetImageFileFormat()), "ps") ;
fImage[esIndex]->Clear() ;
Int_t nx =3;
Int_t ny =2;
fImage[esIndex]->Divide(nx, ny) ;
TH1* hist = NULL ;
Int_t npad = 1 ;
fImage[esIndex]->cd(npad);
fImage[esIndex]->cd(npad)->SetBorderMode(0) ;
TIter next(list[esIndex]);
while ( (hist=static_cast<TH1*>(next())) ) {
if(!hist->TestBit(AliQAv1::GetImageBit())) continue;
TString name(hist->GetName());
if(name.Contains("SPDErrorsAll")) {
fImage[esIndex]->cd(1) ;
gPad->SetBorderMode(0) ;
gPad->SetRightMargin(0.05);
gPad->SetLeftMargin(0.1);
gPad->SetGridx();
gPad->SetGridy();
hist->SetOption("text") ;
hist->DrawCopy();
}
if(name.Contains("MEB")) {
fImage[esIndex]->cd(2) ;
gPad->SetBorderMode(0) ;
gPad->SetGridy();
gPad->SetGridx();
gPad->SetRightMargin(0.05);
gPad->SetLeftMargin(0.15);
gPad->SetBottomMargin(0.1);
hist->SetOption("text") ;
hist->DrawCopy();
}
if(name.Contains("SPDFastOrCorrelation")){
fImage[esIndex]->cd(3) ;
gPad->SetBorderMode(0) ;
hist->SetOption("") ;
hist->DrawCopy();
}
if(name.Contains("SPDHitMapStaveChipInner")){
fImage[esIndex]->cd(4) ;
gPad->SetBorderMode(0) ;
gPad->SetRightMargin(0.25);
gPad->SetGridx();
gPad->SetGridy();
hist->SetObjectStat(0);
hist->SetOption("colz") ;
hist->DrawCopy();
}
if(name.Contains("SPDHitMapStaveChipOuter")){
fImage[esIndex]->cd(5) ;
gPad->SetBorderMode(0) ;
gPad->SetRightMargin(0.25);
gPad->SetGridx();
gPad->SetGridy();
hist->SetObjectStat(0);
hist->SetOption("colz") ;
hist->DrawCopy();
}
if(name.Contains("SPDFastOrMapStaveChip")){
fImage[esIndex]->cd(6) ;
gPad->SetBorderMode(0) ;
gPad->SetRightMargin(0.1);
gPad->SetLeftMargin(0.15);
gPad->SetBottomMargin(0.15);
gPad->SetTopMargin(-0.2);
gPad->SetGridy();
gPad->SetGridx();
hist->SetObjectStat(0);
hist->SetOption("colz") ;
hist->DrawCopy("colz");
TH2F *h2 = (TH2F*)(gPad->GetListOfPrimitives()->At(0));
for(Int_t i=0; i<h2->GetListOfFunctions()->GetEntries(); i++){
TString cname = h2->GetListOfFunctions()->At(i)->ClassName();
if(cname.Contains("TPaletteAxis")){
TPaletteAxis *palette = (TPaletteAxis*)(h2->GetListOfFunctions()->At(i));
if(palette) palette->SetLabelSize(0.02);
}
}
hist->DrawCopy("colz");
}
}
fImage[esIndex]->Print(Form("%s%s%d.%s", AliQAv1::GetImageFileName(), AliQAv1::GetModeName(mode), AliQAChecker::Instance()->GetRunNumber(), AliQAv1::GetImageFileFormat()), "ps") ;
}
}
return kTRUE;
}
AliITSQASPDChecker.cxx:10 AliITSQASPDChecker.cxx:11 AliITSQASPDChecker.cxx:12 AliITSQASPDChecker.cxx:13 AliITSQASPDChecker.cxx:14 AliITSQASPDChecker.cxx:15 AliITSQASPDChecker.cxx:16 AliITSQASPDChecker.cxx:17 AliITSQASPDChecker.cxx:18 AliITSQASPDChecker.cxx:19 AliITSQASPDChecker.cxx:20 AliITSQASPDChecker.cxx:21 AliITSQASPDChecker.cxx:22 AliITSQASPDChecker.cxx:23 AliITSQASPDChecker.cxx:24 AliITSQASPDChecker.cxx:25 AliITSQASPDChecker.cxx:26 AliITSQASPDChecker.cxx:27 AliITSQASPDChecker.cxx:28 AliITSQASPDChecker.cxx:29 AliITSQASPDChecker.cxx:30 AliITSQASPDChecker.cxx:31 AliITSQASPDChecker.cxx:32 AliITSQASPDChecker.cxx:33 AliITSQASPDChecker.cxx:34 AliITSQASPDChecker.cxx:35 AliITSQASPDChecker.cxx:36 AliITSQASPDChecker.cxx:37 AliITSQASPDChecker.cxx:38 AliITSQASPDChecker.cxx:39 AliITSQASPDChecker.cxx:40 AliITSQASPDChecker.cxx:41 AliITSQASPDChecker.cxx:42 AliITSQASPDChecker.cxx:43 AliITSQASPDChecker.cxx:44 AliITSQASPDChecker.cxx:45 AliITSQASPDChecker.cxx:46 AliITSQASPDChecker.cxx:47 AliITSQASPDChecker.cxx:48 AliITSQASPDChecker.cxx:49 AliITSQASPDChecker.cxx:50 AliITSQASPDChecker.cxx:51 AliITSQASPDChecker.cxx:52 AliITSQASPDChecker.cxx:53 AliITSQASPDChecker.cxx:54 AliITSQASPDChecker.cxx:55 AliITSQASPDChecker.cxx:56 AliITSQASPDChecker.cxx:57 AliITSQASPDChecker.cxx:58 AliITSQASPDChecker.cxx:59 AliITSQASPDChecker.cxx:60 AliITSQASPDChecker.cxx:61 AliITSQASPDChecker.cxx:62 AliITSQASPDChecker.cxx:63 AliITSQASPDChecker.cxx:64 AliITSQASPDChecker.cxx:65 AliITSQASPDChecker.cxx:66 AliITSQASPDChecker.cxx:67 AliITSQASPDChecker.cxx:68 AliITSQASPDChecker.cxx:69 AliITSQASPDChecker.cxx:70 AliITSQASPDChecker.cxx:71 AliITSQASPDChecker.cxx:72 AliITSQASPDChecker.cxx:73 AliITSQASPDChecker.cxx:74 AliITSQASPDChecker.cxx:75 AliITSQASPDChecker.cxx:76 AliITSQASPDChecker.cxx:77 AliITSQASPDChecker.cxx:78 AliITSQASPDChecker.cxx:79 AliITSQASPDChecker.cxx:80 AliITSQASPDChecker.cxx:81 AliITSQASPDChecker.cxx:82 AliITSQASPDChecker.cxx:83 AliITSQASPDChecker.cxx:84 AliITSQASPDChecker.cxx:85 AliITSQASPDChecker.cxx:86 AliITSQASPDChecker.cxx:87 AliITSQASPDChecker.cxx:88 AliITSQASPDChecker.cxx:89 AliITSQASPDChecker.cxx:90 AliITSQASPDChecker.cxx:91 AliITSQASPDChecker.cxx:92 AliITSQASPDChecker.cxx:93 AliITSQASPDChecker.cxx:94 AliITSQASPDChecker.cxx:95 AliITSQASPDChecker.cxx:96 AliITSQASPDChecker.cxx:97 AliITSQASPDChecker.cxx:98 AliITSQASPDChecker.cxx:99 AliITSQASPDChecker.cxx:100 AliITSQASPDChecker.cxx:101 AliITSQASPDChecker.cxx:102 AliITSQASPDChecker.cxx:103 AliITSQASPDChecker.cxx:104 AliITSQASPDChecker.cxx:105 AliITSQASPDChecker.cxx:106 AliITSQASPDChecker.cxx:107 AliITSQASPDChecker.cxx:108 AliITSQASPDChecker.cxx:109 AliITSQASPDChecker.cxx:110 AliITSQASPDChecker.cxx:111 AliITSQASPDChecker.cxx:112 AliITSQASPDChecker.cxx:113 AliITSQASPDChecker.cxx:114 AliITSQASPDChecker.cxx:115 AliITSQASPDChecker.cxx:116 AliITSQASPDChecker.cxx:117 AliITSQASPDChecker.cxx:118 AliITSQASPDChecker.cxx:119 AliITSQASPDChecker.cxx:120 AliITSQASPDChecker.cxx:121 AliITSQASPDChecker.cxx:122 AliITSQASPDChecker.cxx:123 AliITSQASPDChecker.cxx:124 AliITSQASPDChecker.cxx:125 AliITSQASPDChecker.cxx:126 AliITSQASPDChecker.cxx:127 AliITSQASPDChecker.cxx:128 AliITSQASPDChecker.cxx:129 AliITSQASPDChecker.cxx:130 AliITSQASPDChecker.cxx:131 AliITSQASPDChecker.cxx:132 AliITSQASPDChecker.cxx:133 AliITSQASPDChecker.cxx:134 AliITSQASPDChecker.cxx:135 AliITSQASPDChecker.cxx:136 AliITSQASPDChecker.cxx:137 AliITSQASPDChecker.cxx:138 AliITSQASPDChecker.cxx:139 AliITSQASPDChecker.cxx:140 AliITSQASPDChecker.cxx:141 AliITSQASPDChecker.cxx:142 AliITSQASPDChecker.cxx:143 AliITSQASPDChecker.cxx:144 AliITSQASPDChecker.cxx:145 AliITSQASPDChecker.cxx:146 AliITSQASPDChecker.cxx:147 AliITSQASPDChecker.cxx:148 AliITSQASPDChecker.cxx:149 AliITSQASPDChecker.cxx:150 AliITSQASPDChecker.cxx:151 AliITSQASPDChecker.cxx:152 AliITSQASPDChecker.cxx:153 AliITSQASPDChecker.cxx:154 AliITSQASPDChecker.cxx:155 AliITSQASPDChecker.cxx:156 AliITSQASPDChecker.cxx:157 AliITSQASPDChecker.cxx:158 AliITSQASPDChecker.cxx:159 AliITSQASPDChecker.cxx:160 AliITSQASPDChecker.cxx:161 AliITSQASPDChecker.cxx:162 AliITSQASPDChecker.cxx:163 AliITSQASPDChecker.cxx:164 AliITSQASPDChecker.cxx:165 AliITSQASPDChecker.cxx:166 AliITSQASPDChecker.cxx:167 AliITSQASPDChecker.cxx:168 AliITSQASPDChecker.cxx:169 AliITSQASPDChecker.cxx:170 AliITSQASPDChecker.cxx:171 AliITSQASPDChecker.cxx:172 AliITSQASPDChecker.cxx:173 AliITSQASPDChecker.cxx:174 AliITSQASPDChecker.cxx:175 AliITSQASPDChecker.cxx:176 AliITSQASPDChecker.cxx:177 AliITSQASPDChecker.cxx:178 AliITSQASPDChecker.cxx:179 AliITSQASPDChecker.cxx:180 AliITSQASPDChecker.cxx:181 AliITSQASPDChecker.cxx:182 AliITSQASPDChecker.cxx:183 AliITSQASPDChecker.cxx:184 AliITSQASPDChecker.cxx:185 AliITSQASPDChecker.cxx:186 AliITSQASPDChecker.cxx:187 AliITSQASPDChecker.cxx:188 AliITSQASPDChecker.cxx:189 AliITSQASPDChecker.cxx:190 AliITSQASPDChecker.cxx:191 AliITSQASPDChecker.cxx:192 AliITSQASPDChecker.cxx:193 AliITSQASPDChecker.cxx:194 AliITSQASPDChecker.cxx:195 AliITSQASPDChecker.cxx:196 AliITSQASPDChecker.cxx:197 AliITSQASPDChecker.cxx:198 AliITSQASPDChecker.cxx:199 AliITSQASPDChecker.cxx:200 AliITSQASPDChecker.cxx:201 AliITSQASPDChecker.cxx:202 AliITSQASPDChecker.cxx:203 AliITSQASPDChecker.cxx:204 AliITSQASPDChecker.cxx:205 AliITSQASPDChecker.cxx:206 AliITSQASPDChecker.cxx:207 AliITSQASPDChecker.cxx:208 AliITSQASPDChecker.cxx:209 AliITSQASPDChecker.cxx:210 AliITSQASPDChecker.cxx:211 AliITSQASPDChecker.cxx:212 AliITSQASPDChecker.cxx:213 AliITSQASPDChecker.cxx:214 AliITSQASPDChecker.cxx:215 AliITSQASPDChecker.cxx:216 AliITSQASPDChecker.cxx:217 AliITSQASPDChecker.cxx:218 AliITSQASPDChecker.cxx:219 AliITSQASPDChecker.cxx:220 AliITSQASPDChecker.cxx:221 AliITSQASPDChecker.cxx:222 AliITSQASPDChecker.cxx:223 AliITSQASPDChecker.cxx:224 AliITSQASPDChecker.cxx:225 AliITSQASPDChecker.cxx:226 AliITSQASPDChecker.cxx:227 AliITSQASPDChecker.cxx:228 AliITSQASPDChecker.cxx:229 AliITSQASPDChecker.cxx:230 AliITSQASPDChecker.cxx:231 AliITSQASPDChecker.cxx:232 AliITSQASPDChecker.cxx:233 AliITSQASPDChecker.cxx:234 AliITSQASPDChecker.cxx:235 AliITSQASPDChecker.cxx:236 AliITSQASPDChecker.cxx:237 AliITSQASPDChecker.cxx:238 AliITSQASPDChecker.cxx:239 AliITSQASPDChecker.cxx:240 AliITSQASPDChecker.cxx:241 AliITSQASPDChecker.cxx:242 AliITSQASPDChecker.cxx:243 AliITSQASPDChecker.cxx:244 AliITSQASPDChecker.cxx:245 AliITSQASPDChecker.cxx:246 AliITSQASPDChecker.cxx:247 AliITSQASPDChecker.cxx:248 AliITSQASPDChecker.cxx:249 AliITSQASPDChecker.cxx:250 AliITSQASPDChecker.cxx:251 AliITSQASPDChecker.cxx:252 AliITSQASPDChecker.cxx:253 AliITSQASPDChecker.cxx:254 AliITSQASPDChecker.cxx:255 AliITSQASPDChecker.cxx:256 AliITSQASPDChecker.cxx:257 AliITSQASPDChecker.cxx:258 AliITSQASPDChecker.cxx:259 AliITSQASPDChecker.cxx:260 AliITSQASPDChecker.cxx:261 AliITSQASPDChecker.cxx:262 AliITSQASPDChecker.cxx:263 AliITSQASPDChecker.cxx:264 AliITSQASPDChecker.cxx:265 AliITSQASPDChecker.cxx:266 AliITSQASPDChecker.cxx:267 AliITSQASPDChecker.cxx:268 AliITSQASPDChecker.cxx:269 AliITSQASPDChecker.cxx:270 AliITSQASPDChecker.cxx:271 AliITSQASPDChecker.cxx:272 AliITSQASPDChecker.cxx:273 AliITSQASPDChecker.cxx:274 AliITSQASPDChecker.cxx:275 AliITSQASPDChecker.cxx:276 AliITSQASPDChecker.cxx:277 AliITSQASPDChecker.cxx:278 AliITSQASPDChecker.cxx:279 AliITSQASPDChecker.cxx:280 AliITSQASPDChecker.cxx:281 AliITSQASPDChecker.cxx:282 AliITSQASPDChecker.cxx:283 AliITSQASPDChecker.cxx:284 AliITSQASPDChecker.cxx:285 AliITSQASPDChecker.cxx:286 AliITSQASPDChecker.cxx:287 AliITSQASPDChecker.cxx:288 AliITSQASPDChecker.cxx:289 AliITSQASPDChecker.cxx:290 AliITSQASPDChecker.cxx:291 AliITSQASPDChecker.cxx:292 AliITSQASPDChecker.cxx:293 AliITSQASPDChecker.cxx:294 AliITSQASPDChecker.cxx:295 AliITSQASPDChecker.cxx:296 AliITSQASPDChecker.cxx:297 AliITSQASPDChecker.cxx:298 AliITSQASPDChecker.cxx:299 AliITSQASPDChecker.cxx:300 AliITSQASPDChecker.cxx:301 AliITSQASPDChecker.cxx:302 AliITSQASPDChecker.cxx:303 AliITSQASPDChecker.cxx:304 AliITSQASPDChecker.cxx:305 AliITSQASPDChecker.cxx:306 AliITSQASPDChecker.cxx:307 AliITSQASPDChecker.cxx:308 AliITSQASPDChecker.cxx:309 AliITSQASPDChecker.cxx:310 AliITSQASPDChecker.cxx:311 AliITSQASPDChecker.cxx:312 AliITSQASPDChecker.cxx:313 AliITSQASPDChecker.cxx:314 AliITSQASPDChecker.cxx:315 AliITSQASPDChecker.cxx:316 AliITSQASPDChecker.cxx:317 AliITSQASPDChecker.cxx:318 AliITSQASPDChecker.cxx:319 AliITSQASPDChecker.cxx:320 AliITSQASPDChecker.cxx:321 AliITSQASPDChecker.cxx:322 AliITSQASPDChecker.cxx:323 AliITSQASPDChecker.cxx:324 AliITSQASPDChecker.cxx:325 AliITSQASPDChecker.cxx:326 AliITSQASPDChecker.cxx:327 AliITSQASPDChecker.cxx:328 AliITSQASPDChecker.cxx:329 AliITSQASPDChecker.cxx:330 AliITSQASPDChecker.cxx:331 AliITSQASPDChecker.cxx:332 AliITSQASPDChecker.cxx:333 AliITSQASPDChecker.cxx:334 AliITSQASPDChecker.cxx:335 AliITSQASPDChecker.cxx:336 AliITSQASPDChecker.cxx:337 AliITSQASPDChecker.cxx:338 AliITSQASPDChecker.cxx:339 AliITSQASPDChecker.cxx:340 AliITSQASPDChecker.cxx:341 AliITSQASPDChecker.cxx:342 AliITSQASPDChecker.cxx:343 AliITSQASPDChecker.cxx:344 AliITSQASPDChecker.cxx:345 AliITSQASPDChecker.cxx:346 AliITSQASPDChecker.cxx:347 AliITSQASPDChecker.cxx:348 AliITSQASPDChecker.cxx:349 AliITSQASPDChecker.cxx:350 AliITSQASPDChecker.cxx:351 AliITSQASPDChecker.cxx:352 AliITSQASPDChecker.cxx:353 AliITSQASPDChecker.cxx:354 AliITSQASPDChecker.cxx:355 AliITSQASPDChecker.cxx:356 AliITSQASPDChecker.cxx:357 AliITSQASPDChecker.cxx:358 AliITSQASPDChecker.cxx:359 AliITSQASPDChecker.cxx:360 AliITSQASPDChecker.cxx:361 AliITSQASPDChecker.cxx:362 AliITSQASPDChecker.cxx:363 AliITSQASPDChecker.cxx:364 AliITSQASPDChecker.cxx:365 AliITSQASPDChecker.cxx:366 AliITSQASPDChecker.cxx:367 AliITSQASPDChecker.cxx:368 AliITSQASPDChecker.cxx:369 AliITSQASPDChecker.cxx:370 AliITSQASPDChecker.cxx:371 AliITSQASPDChecker.cxx:372 AliITSQASPDChecker.cxx:373 AliITSQASPDChecker.cxx:374 AliITSQASPDChecker.cxx:375 AliITSQASPDChecker.cxx:376 AliITSQASPDChecker.cxx:377 AliITSQASPDChecker.cxx:378 AliITSQASPDChecker.cxx:379 AliITSQASPDChecker.cxx:380 AliITSQASPDChecker.cxx:381 AliITSQASPDChecker.cxx:382 AliITSQASPDChecker.cxx:383 AliITSQASPDChecker.cxx:384 AliITSQASPDChecker.cxx:385 AliITSQASPDChecker.cxx:386 AliITSQASPDChecker.cxx:387 AliITSQASPDChecker.cxx:388 AliITSQASPDChecker.cxx:389 AliITSQASPDChecker.cxx:390 AliITSQASPDChecker.cxx:391 AliITSQASPDChecker.cxx:392 AliITSQASPDChecker.cxx:393 AliITSQASPDChecker.cxx:394 AliITSQASPDChecker.cxx:395 AliITSQASPDChecker.cxx:396 AliITSQASPDChecker.cxx:397 AliITSQASPDChecker.cxx:398 AliITSQASPDChecker.cxx:399 AliITSQASPDChecker.cxx:400 AliITSQASPDChecker.cxx:401 AliITSQASPDChecker.cxx:402 AliITSQASPDChecker.cxx:403 AliITSQASPDChecker.cxx:404 AliITSQASPDChecker.cxx:405 AliITSQASPDChecker.cxx:406 AliITSQASPDChecker.cxx:407 AliITSQASPDChecker.cxx:408 AliITSQASPDChecker.cxx:409 AliITSQASPDChecker.cxx:410 AliITSQASPDChecker.cxx:411 AliITSQASPDChecker.cxx:412 AliITSQASPDChecker.cxx:413 AliITSQASPDChecker.cxx:414 AliITSQASPDChecker.cxx:415 AliITSQASPDChecker.cxx:416 AliITSQASPDChecker.cxx:417 AliITSQASPDChecker.cxx:418 AliITSQASPDChecker.cxx:419 AliITSQASPDChecker.cxx:420 AliITSQASPDChecker.cxx:421 AliITSQASPDChecker.cxx:422 AliITSQASPDChecker.cxx:423 AliITSQASPDChecker.cxx:424 AliITSQASPDChecker.cxx:425 AliITSQASPDChecker.cxx:426 AliITSQASPDChecker.cxx:427 AliITSQASPDChecker.cxx:428 AliITSQASPDChecker.cxx:429 AliITSQASPDChecker.cxx:430 AliITSQASPDChecker.cxx:431 AliITSQASPDChecker.cxx:432 AliITSQASPDChecker.cxx:433 AliITSQASPDChecker.cxx:434 AliITSQASPDChecker.cxx:435 AliITSQASPDChecker.cxx:436 AliITSQASPDChecker.cxx:437 AliITSQASPDChecker.cxx:438 AliITSQASPDChecker.cxx:439 AliITSQASPDChecker.cxx:440 AliITSQASPDChecker.cxx:441 AliITSQASPDChecker.cxx:442 AliITSQASPDChecker.cxx:443 AliITSQASPDChecker.cxx:444 AliITSQASPDChecker.cxx:445 AliITSQASPDChecker.cxx:446 AliITSQASPDChecker.cxx:447 AliITSQASPDChecker.cxx:448 AliITSQASPDChecker.cxx:449 AliITSQASPDChecker.cxx:450 AliITSQASPDChecker.cxx:451 AliITSQASPDChecker.cxx:452 AliITSQASPDChecker.cxx:453 AliITSQASPDChecker.cxx:454 AliITSQASPDChecker.cxx:455