ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  Class to process a tree and create alarms based on thresholds            //
//  origin: jens wiechula: jens.wiechula@cern.ch                             //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include <iostream>
#include <TObjArray.h>
#include <TString.h>
#include <TObjString.h>
#include <TStyle.h>
#include <TMarker.h>
#include <TAxis.h>
#include <TLine.h>
#include <TList.h>
#include <TTree.h>
#include <TMath.h>
#include <TGraph.h>
#include <TFrame.h>
#include <TIterator.h>
#include <TPad.h>
#include <TCanvas.h>
#include <TH1.h>
#include <TH2.h>
#include <TStopwatch.h>

#include <AliLog.h>

#include "AliTPCCalibQAChecker.h"

using namespace std;

AliTPCCalibQAChecker::AliTPCCalibQAChecker() :
  TNamed("AliTPCCalibQAChecker","AliTPCCalibQAChecker"),
  fTreePtr(0x0),
  fHistPtr(0x0),
  fGraphPtr(0x0),
  fNumberPtr(0x0),
  fHist(0x0),
  fIterSubCheckers(0x0),
  fArrSubCheckers(0x0),
  fArrAlarmDescriptions(0x0),
  fStrDrawRep(""),
  fStrDrawRepOpt(""),
  fStrDraw(""),
  fStrDrawOpt(""),
  fStrCuts(""),
  fAlarmType(kMean),
  fQualityLevel(kINFO),
  fHistRep(0x0)
{
  //
  // Default ctor
  //
  ResetAlarmThresholds();
}
//_________________________________________________________________________
AliTPCCalibQAChecker::AliTPCCalibQAChecker(const char* name, const char *title) :
  TNamed(name,title),
  fTreePtr(0x0),
  fHistPtr(0x0),
  fGraphPtr(0x0),
  fNumberPtr(0x0),
  fHist(0x0),
  fIterSubCheckers(0x0),
  fArrSubCheckers(0x0),
  fArrAlarmDescriptions(0x0),
  fStrDrawRep(""),
  fStrDrawRepOpt(""),
  fStrDraw(""),
  fStrDrawOpt(""),
  fStrCuts(""),
  fAlarmType(kMean),
  fQualityLevel(kINFO),
  fHistRep(0x0)
{
  //
  // TNamed ctor
  //
  ResetAlarmThresholds();
}
//_________________________________________________________________________
AliTPCCalibQAChecker::~AliTPCCalibQAChecker()
{
  //
  // Default ctor
  //
  if (fHistRep) delete fHistRep;
  if (fIterSubCheckers) delete fIterSubCheckers;
  if (fArrAlarmDescriptions) delete fArrAlarmDescriptions;
  if (fArrSubCheckers) delete fArrSubCheckers;
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::AddSubChecker(AliTPCCalibQAChecker *alarm)
{
  //
  // add a sub checker to this checker
  //
  if (!alarm) return;
  if (!fArrSubCheckers) {
    fArrSubCheckers=new TObjArray;
    fArrSubCheckers->SetOwner();
  }
  fArrSubCheckers->Add(alarm);
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::Process()
{
  //
  // Process the alarm thresholds, decide the alarm level, create the representation histogram
  //

  //reset quality level
  fQualityLevel=kINFO;

  TStopwatch s;
  s.Start();
  //decide which type of checker to use
  if (fArrSubCheckers && fArrSubCheckers->GetEntries()>0) ProcessSub();
  else if (fTreePtr && *fTreePtr) ProcessTree();
  else if (fHistPtr && *fHistPtr) ProcessHist();
  else if (fGraphPtr && *fGraphPtr) ProcessGraph();
  else if (fNumberPtr) ProcessNumber();
  s.Stop();
  AliInfo(Form("Processing Time (%s): %fs",GetName(),s.RealTime()));
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ProcessSub()
{
  //
  // sub checker type checker
  //
  QualityFlag_t quality=kINFO;
  if (fArrSubCheckers && fArrSubCheckers->GetEntries()>0){
    TIter next(fArrSubCheckers);
    TObject *o=0x0;
    while ( (o=next()) ) {
      AliTPCCalibQAChecker *al=(AliTPCCalibQAChecker*)o;
      al->Process();
      QualityFlag_t subQuality=al->GetQuality();
      if (subQuality>quality) quality=subQuality;
    }
  }
  fQualityLevel=quality;
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ProcessTree()
{
  //
  // process tree type checker
  //

  //Create Representation Histogram
  CreateRepresentationHist();
  //
//   if (!fTree) return;
  //chek for the quality

  switch (fAlarmType){
  case kNentries:
    ProcessEntries();
    break;
  case kMean:
  case kBinAny:
  case kBinAll:
    CreateAlarmHist();
    ProcessHist();
    ResetAlarmHist();
    break;
  }
  
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ProcessHist()
{
  //
  // process histogram type checker
  //
  
  if (!(fHistPtr && *fHistPtr)) return;
    
  switch (fAlarmType){
  case kNentries:
  case kMean:
    ProcessMean();
    break;
  case kBinAny:
  case kBinAll:
    ProcessBin();
    break;
  }

  //create representation histogram if we are not in tree mode
  if (!fTreePtr){
    if (!fHistRep) {
      fHistRep=(*fHistPtr)->Clone();
      TH1* h=(TH1*)fHistRep;
      h->SetDirectory(0);
      h->SetNameTitle(Form("h%s",GetName()),GetTitle());
    }
    TH1* h=(TH1*)fHistRep;
    h->Reset();
    h->Add(*fHistPtr);
    if (!fHistRep->InheritsFrom(TH2::Class())) AddQualityLines(h);
  }
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ProcessGraph()
{
  //
  // process graph type checker
  //
  if (!(fGraphPtr && *fGraphPtr)) return;
  Int_t npoints=(*fGraphPtr)->GetN();
  fQualityLevel=GetQuality(npoints,(*fGraphPtr)->GetY());
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ProcessNumber()
{
  //
  // process number type checker
  //
  if (!fNumberPtr) return;
  fQualityLevel=GetQuality(*fNumberPtr);
  //create representation histogram
  if (!fHistRep){
    TH1* h=new TH1F(Form("h%s",GetName()),GetTitle(),1,0,1);
    h->GetXaxis()->SetBinLabel(1,"Value");
    AddQualityLines(h);
    h->SetDirectory(0);
    fHistRep=h;
  }
  TH1 *h=(TH1*)fHistRep;
  TMarker *marker=(TMarker*)h->GetListOfFunctions()->FindObject("TMarker");
  if (!marker) {
    marker=new TMarker(.5,0,20);
    h->GetListOfFunctions()->Add(marker);
  }
  marker->SetMarkerColor(GetQualityColor());
  marker->SetY(*fNumberPtr);
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ProcessEntries()
{
  //
  // Processing function which analyses the number of affected rows of a tree draw
  //
  TString draw=fStrDraw;
  if (draw.IsNull()) return;
  
  TString cuts=fStrCuts;
  
  TString opt=fStrDrawOpt;
  opt+="goff";
  
  //draw and get the histogram
  Int_t res=(*fTreePtr)->Draw(draw.Data(),cuts.Data(),opt.Data());
  fQualityLevel=GetQuality(res);
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ProcessMean()
{
  //
  // Processing function which analyses the mean of the resulting histogram
  //

  TH1* h=(*fHistPtr);
  Double_t value=h->GetMean();
  if (fAlarmType==kNentries) value=h->GetEntries();
  fQualityLevel=GetQuality(value);
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ProcessBin()
{
  //
  // Process a histogram bin by bin and check for thresholds
  //

  //bin quality counters
  Int_t nquality[kNQualityFlags];
  for (Int_t iquality=(Int_t)kINFO; iquality<kNQualityFlags; ++iquality) nquality[iquality]=0;
    
  TH1 *h=(*fHistPtr);
  
  Int_t nbinsX=h->GetNbinsX();
  Int_t nbinsY=h->GetNbinsY();
  Int_t nbinsZ=h->GetNbinsZ();
  Int_t nbinsTotal=nbinsX*nbinsY*nbinsZ;

  //loop over all bins
  for (Int_t ibinZ=1;ibinZ<nbinsZ+1;++ibinZ){
    for (Int_t ibinY=1;ibinY<nbinsY+1;++ibinY){
      for (Int_t ibinX=1;ibinX<nbinsX+1;++ibinX){
        Double_t value = (*fHistPtr)->GetBinContent(ibinX, ibinY, ibinZ);
        QualityFlag_t quality=GetQuality(value);
        nquality[quality]++;
      }
    }
  }

  //loop over Quality levels and set quality
  for (Int_t iquality=(Int_t)kINFO; iquality<kNQualityFlags; ++iquality){
    if (fAlarmType==kBinAny){
      if (nquality[iquality]) fQualityLevel=(QualityFlag_t)iquality;
    } else if (fAlarmType==kBinAll){
      if (nquality[iquality]==nbinsTotal) fQualityLevel=(QualityFlag_t)iquality;
    }
  }
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::CreateRepresentationHist()
{
  //
  // Create the representation histogram which will be shown in the draw function
  //
  ResetRepresentationHist();

  TString draw=fStrDrawRep;
  if (draw.IsNull()) {
    draw=fStrDraw;
    fStrDrawRepOpt=fStrDrawOpt;
  } else {
    draw.ReplaceAll("%alarm%",fStrDraw.Data());
  }
  if (draw.IsNull()) return;
  
  TString cuts=fStrCuts;
  
  TString opt=fStrDrawRepOpt;
  opt+="goff";
  
  Int_t res=(*fTreePtr)->Draw(draw.Data(),cuts.Data(),opt.Data());
  TH1 *hist=(*fTreePtr)->GetHistogram();
  if (res<0 || !hist){
    AliError(Form("Could not create representation histogram of alarm '%s'",GetName()));
    return;
  }
  fHistRep=hist->Clone();
  TH1 *h=(TH1*)fHistRep;
  h->SetDirectory(0);
  h->SetNameTitle(Form("h%s",GetName()),GetTitle());
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::CreateAlarmHist()
{
  //
  // create alarm histogram from the tree
  //
    
  TString draw=fStrDraw;
  if (draw.IsNull()) return;
  
  TString cuts=fStrCuts;
  
  TString opt=fStrDrawOpt;
  opt+="goff";
  
  //draw and get the histogram
  Int_t res=(*fTreePtr)->Draw(draw.Data(),cuts.Data(),opt.Data());
  fHist=(*fTreePtr)->GetHistogram();
  if (res<0 || !fHist){
    AliError(Form("Could not create alarm histogram of alarm '%s'",GetName()));
    return;
  }
  fHist->SetDirectory(0);
  fHistPtr=&fHist;
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ResetAlarmHist()
{
  //
  // delete the alarm histogram and reset the pointer
  //
  if (fHistPtr){
    if (*fHistPtr) delete *fHistPtr;
    fHistPtr=0x0;
  }
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::Draw(Option_t *option)
{
  //
  // object draw function
  // by default the pad backgound color is set to the quality level color
  // use 'nobc' to change this
  //

  //case of a node with subcheckers and no specific representation histogram
  if (HasSubCheckers()&&!fHistRep) {DrawSubNodes(option); return;}
  if (fHistRep) {DrawRepresentationHist(option); return;}
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::Print(Option_t * const option) const
{
  //
  // print the quality status. If we have sub checkers print recursively
  //
  TString sOpt(option);
  cout << sOpt << GetName() << ": " << GetQualityName() << endl;
  if (fArrSubCheckers && fArrSubCheckers->GetEntries()>0){
    sOpt.ReplaceAll("+-","  ");
    sOpt+="+-";
    TIter next(fArrSubCheckers);
    TObject *o=0x0;
    while ( (o=next()) ) o->Print(sOpt.Data());
  }
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::SetAlarmThreshold(Double_t min, Double_t max, QualityFlag_t quality)
{
  //
  //set the alarm thresholds for a specific quality level
  //
  if ((Int_t)quality<(Int_t)kINFO||(Int_t)quality>=kNQualityFlags) return;
  fThresMin[quality]=min;
  fThresMax[quality]=max;
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ResetAlarmThreshold(QualityFlag_t quality)
{
  //
  //set the alarm thresholds for a specific quality level
  //
  if ((Int_t)quality<(Int_t)kINFO||(Int_t)quality>=kNQualityFlags) return;
  fThresMin[quality]=0;
  fThresMax[quality]=0;
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::ResetAlarmThresholds()
{
  //
  //reset all the alarm thresholds
  //
  for (Int_t i=0;i<kNQualityFlags;++i){
    fThresMin[i]=0;
    fThresMax[i]=0;
  }
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::SetQualityDescription(const char* text, QualityFlag_t quality)
{
  //
  // set an description for the quality level
  // %min and %max will be replaced by the min and max values of the alarm, when the quality
  // description is queried (see QualityDescription)
  //

  if (quality<kINFO||quality>kFATAL) return;
  if (! fArrAlarmDescriptions ) fArrAlarmDescriptions=new TObjArray(kNQualityFlags);
  TObjString *s=(TObjString*)fArrAlarmDescriptions->At(quality);
  if (!s) fArrAlarmDescriptions->AddAt(s=new TObjString,quality);
  s->SetString(text);
}

//_________________________________________________________________________
const AliTPCCalibQAChecker* AliTPCCalibQAChecker::GetSubChecker(const char* name, Bool_t recursive) const
{
  //
  // Return subnode with 'name'
  //
  TString sname(name);
  if (sname==GetName()) return this;
  if (!fArrSubCheckers || !fArrSubCheckers->GetEntries()) return 0x0;
  const AliTPCCalibQAChecker *al=0x0;
  if (recursive){
    TIter next(fArrSubCheckers);
    TObject *o=0x0;
    while ( (o=next()) ){
      AliTPCCalibQAChecker *sal=(AliTPCCalibQAChecker*)o;
      al=sal->GetSubChecker(name);
      if (al) break;
    }
  }else{
    al=dynamic_cast<AliTPCCalibQAChecker*>(fArrSubCheckers->FindObject(name));
  }
  return al;
}
//_________________________________________________________________________
Int_t AliTPCCalibQAChecker::GetNumberOfSubCheckers(Bool_t recursive) const
{
  //
  // get the number of sub checkers
  // if recursive get total number of non subchecker type sub checkers
  //
  Int_t nsub=0;
  if (recursive){
    if (!fArrSubCheckers) return 1;
    if (!fArrSubCheckers->GetEntries()) return 0;
    TIter next(fArrSubCheckers);
    TObject *o=0x0;
    while ( (o=next()) ){
      AliTPCCalibQAChecker *al=(AliTPCCalibQAChecker*)o;
      nsub+=al->GetNumberOfSubCheckers();
    }
  } else {
    if (fArrSubCheckers) nsub=fArrSubCheckers->GetEntries();
  }
  return nsub;
}
//_________________________________________________________________________
AliTPCCalibQAChecker* AliTPCCalibQAChecker::NextSubChecker()
{
  //
  // loop over sub checkers
  // if recursive, recursively return the pointers of non subchecker type sub checkers
  //
  if (!fArrSubCheckers || !fArrSubCheckers->GetEntries()) return 0;
  if (!fIterSubCheckers) fIterSubCheckers=fArrSubCheckers->MakeIterator();
  AliTPCCalibQAChecker *al=(AliTPCCalibQAChecker*)fIterSubCheckers->Next();
  if (!al){
    delete fIterSubCheckers;
    fIterSubCheckers=0x0;
  }
//   if (recursive && al->GetNumberOfSubCheckers(kFALSE)) al=al->NextSubChecker();
  return al;
}
//_________________________________________________________________________
const char* AliTPCCalibQAChecker::QualityName(AliTPCCalibQAChecker::QualityFlag_t quality)
{
  //
  // get quality name for quality
  //
  switch (quality){
  case kINFO:
    return "Info";
    break;
  case kWARNING:
    return "Warning";
    break;
  case kERROR:
    return "Error";
    break;
  case kFATAL:
    return "Fatal";
    break;
  default:
    return "";
  }
}
//_________________________________________________________________________
Color_t AliTPCCalibQAChecker::QualityColor(AliTPCCalibQAChecker::QualityFlag_t quality)
{
  //
  // get quality color for quality
  //
  Color_t info = kSpring-8;
  Color_t warning = kOrange;
  Color_t error = kRed;
  Color_t fatal = kRed+2;
  Color_t none = kWhite;
  
  switch(quality) {
  case kINFO :
    return info;
    break;
  case kWARNING :
    return warning;
    break;
  case kERROR :
    return error;
    break;
  case kFATAL :
    return fatal;
    break;
  default:
    return none;
  }
  return none;
  
}
//_________________________________________________________________________
const char* AliTPCCalibQAChecker::QualityDescription(QualityFlag_t quality) const
{
  //
  // return description for quality
  //
  if (!fArrAlarmDescriptions || !fArrAlarmDescriptions->At(quality)) return "";
  TString s(fArrAlarmDescriptions->At(quality)->GetName());
  TString min, max;
  min+=fThresMin[quality];
  max+=fThresMax[quality];
  s.ReplaceAll("%min",min);
  s.ReplaceAll("%max",max);
  return s.Data();
}
//_________________________________________________________________________
Int_t AliTPCCalibQAChecker::DrawInPad(TVirtualPad *pad, Int_t sub)
{
  //
  // Draw recursively in 'pad'
  //
  
  if (fArrSubCheckers){
    if (fArrSubCheckers->GetEntries()>0){
      TIter next(fArrSubCheckers);
      TObject *o=0x0;
      while ( (o=next()) ) {
        AliTPCCalibQAChecker *al=(AliTPCCalibQAChecker*)o;
        sub=al->DrawInPad(pad,sub);
      }
    }
  } else {
    pad->cd(sub);
    ++sub;
    Draw();
  }
  return sub;
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::DrawSubNodes(Option_t */*option*/)
{
  //
  // divide the current pad in sub pads and draw all sub nodes
  //
  if (!gPad) new TCanvas;
  TPad *mother=(TPad*)gPad;
  mother->Clear();
  //find number of sub pads needed
  Int_t nPads = GetNumberOfSubCheckers();
  Int_t nCols = (Int_t)TMath::Ceil( TMath::Sqrt(nPads) );
  Int_t nRows = (Int_t)TMath::Ceil( (Double_t)nPads/(Double_t)nCols );
  gPad->Divide(nCols,nRows);
  
  DrawInPad(gPad);
  mother->Update();
  TPad *pad=0;
  Int_t ipad=1;
  while ( (pad=(TPad*)mother->GetPad(ipad)) ){
    TFrame* frame=(TFrame*)pad->GetPrimitive("TFrame");
    if (frame) frame->SetFillColor(kWhite);
    else {printf("no frame\n");}
    pad->Modified();
    ++ipad;
  }
  mother->Update();
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::DrawRepresentationHist(const Option_t *option)
{
  //
  // Draw the representation histogram
  //
  if (!fHistRep) return;
  if (!gPad) new TCanvas;
  Bool_t withBackColor=kTRUE;
  
  TString opt=option;
  opt.ToLower();
  
  if (opt.Contains("nobc")) withBackColor=kFALSE;
  opt.ReplaceAll("nobc","");
  
  if (opt.IsNull()) opt=fStrDrawRepOpt;
  opt.ToLower();
  
  opt.ReplaceAll("prof","");
  
  fHistRep->Draw(opt.Data());
  if (withBackColor) {
    gPad->SetFillColor(GetQualityColor());
  }
  
  gPad->Modified();
}
//_________________________________________________________________________
void AliTPCCalibQAChecker::AddQualityLines(TH1 *hist)
{
  //
  // add lines indicating the quality level to hist
  //

  Double_t xmin=hist->GetXaxis()->GetXmin();
  Double_t xmax=hist->GetXaxis()->GetXmax();
  Double_t min=0;
  Double_t max=0;
  
  for (Int_t i=(Int_t)kINFO; i<kNQualityFlags; ++i){
    if (fThresMin[i]>=fThresMax[i]) continue;
    min=fThresMin[i];
    max=fThresMax[i];
    TLine *lmin=new TLine(xmin,min,xmax,min);
    lmin->SetLineWidth(2);
    lmin->SetLineColor(QualityColor((QualityFlag_t)i));
    TLine *lmax=new TLine(xmin,max,xmax,max);
    lmax->SetLineWidth(2);
    lmax->SetLineColor(QualityColor((QualityFlag_t)i));
    hist->GetListOfFunctions()->Add(lmin);
    hist->GetListOfFunctions()->Add(lmax);
  }
  hist->SetAxisRange(min,max,"Y");
}
 AliTPCCalibQAChecker.cxx:1
 AliTPCCalibQAChecker.cxx:2
 AliTPCCalibQAChecker.cxx:3
 AliTPCCalibQAChecker.cxx:4
 AliTPCCalibQAChecker.cxx:5
 AliTPCCalibQAChecker.cxx:6
 AliTPCCalibQAChecker.cxx:7
 AliTPCCalibQAChecker.cxx:8
 AliTPCCalibQAChecker.cxx:9
 AliTPCCalibQAChecker.cxx:10
 AliTPCCalibQAChecker.cxx:11
 AliTPCCalibQAChecker.cxx:12
 AliTPCCalibQAChecker.cxx:13
 AliTPCCalibQAChecker.cxx:14
 AliTPCCalibQAChecker.cxx:15
 AliTPCCalibQAChecker.cxx:16
 AliTPCCalibQAChecker.cxx:17
 AliTPCCalibQAChecker.cxx:18
 AliTPCCalibQAChecker.cxx:19
 AliTPCCalibQAChecker.cxx:20
 AliTPCCalibQAChecker.cxx:21
 AliTPCCalibQAChecker.cxx:22
 AliTPCCalibQAChecker.cxx:23
 AliTPCCalibQAChecker.cxx:24
 AliTPCCalibQAChecker.cxx:25
 AliTPCCalibQAChecker.cxx:26
 AliTPCCalibQAChecker.cxx:27
 AliTPCCalibQAChecker.cxx:28
 AliTPCCalibQAChecker.cxx:29
 AliTPCCalibQAChecker.cxx:30
 AliTPCCalibQAChecker.cxx:31
 AliTPCCalibQAChecker.cxx:32
 AliTPCCalibQAChecker.cxx:33
 AliTPCCalibQAChecker.cxx:34
 AliTPCCalibQAChecker.cxx:35
 AliTPCCalibQAChecker.cxx:36
 AliTPCCalibQAChecker.cxx:37
 AliTPCCalibQAChecker.cxx:38
 AliTPCCalibQAChecker.cxx:39
 AliTPCCalibQAChecker.cxx:40
 AliTPCCalibQAChecker.cxx:41
 AliTPCCalibQAChecker.cxx:42
 AliTPCCalibQAChecker.cxx:43
 AliTPCCalibQAChecker.cxx:44
 AliTPCCalibQAChecker.cxx:45
 AliTPCCalibQAChecker.cxx:46
 AliTPCCalibQAChecker.cxx:47
 AliTPCCalibQAChecker.cxx:48
 AliTPCCalibQAChecker.cxx:49
 AliTPCCalibQAChecker.cxx:50
 AliTPCCalibQAChecker.cxx:51
 AliTPCCalibQAChecker.cxx:52
 AliTPCCalibQAChecker.cxx:53
 AliTPCCalibQAChecker.cxx:54
 AliTPCCalibQAChecker.cxx:55
 AliTPCCalibQAChecker.cxx:56
 AliTPCCalibQAChecker.cxx:57
 AliTPCCalibQAChecker.cxx:58
 AliTPCCalibQAChecker.cxx:59
 AliTPCCalibQAChecker.cxx:60
 AliTPCCalibQAChecker.cxx:61
 AliTPCCalibQAChecker.cxx:62
 AliTPCCalibQAChecker.cxx:63
 AliTPCCalibQAChecker.cxx:64
 AliTPCCalibQAChecker.cxx:65
 AliTPCCalibQAChecker.cxx:66
 AliTPCCalibQAChecker.cxx:67
 AliTPCCalibQAChecker.cxx:68
 AliTPCCalibQAChecker.cxx:69
 AliTPCCalibQAChecker.cxx:70
 AliTPCCalibQAChecker.cxx:71
 AliTPCCalibQAChecker.cxx:72
 AliTPCCalibQAChecker.cxx:73
 AliTPCCalibQAChecker.cxx:74
 AliTPCCalibQAChecker.cxx:75
 AliTPCCalibQAChecker.cxx:76
 AliTPCCalibQAChecker.cxx:77
 AliTPCCalibQAChecker.cxx:78
 AliTPCCalibQAChecker.cxx:79
 AliTPCCalibQAChecker.cxx:80
 AliTPCCalibQAChecker.cxx:81
 AliTPCCalibQAChecker.cxx:82
 AliTPCCalibQAChecker.cxx:83
 AliTPCCalibQAChecker.cxx:84
 AliTPCCalibQAChecker.cxx:85
 AliTPCCalibQAChecker.cxx:86
 AliTPCCalibQAChecker.cxx:87
 AliTPCCalibQAChecker.cxx:88
 AliTPCCalibQAChecker.cxx:89
 AliTPCCalibQAChecker.cxx:90
 AliTPCCalibQAChecker.cxx:91
 AliTPCCalibQAChecker.cxx:92
 AliTPCCalibQAChecker.cxx:93
 AliTPCCalibQAChecker.cxx:94
 AliTPCCalibQAChecker.cxx:95
 AliTPCCalibQAChecker.cxx:96
 AliTPCCalibQAChecker.cxx:97
 AliTPCCalibQAChecker.cxx:98
 AliTPCCalibQAChecker.cxx:99
 AliTPCCalibQAChecker.cxx:100
 AliTPCCalibQAChecker.cxx:101
 AliTPCCalibQAChecker.cxx:102
 AliTPCCalibQAChecker.cxx:103
 AliTPCCalibQAChecker.cxx:104
 AliTPCCalibQAChecker.cxx:105
 AliTPCCalibQAChecker.cxx:106
 AliTPCCalibQAChecker.cxx:107
 AliTPCCalibQAChecker.cxx:108
 AliTPCCalibQAChecker.cxx:109
 AliTPCCalibQAChecker.cxx:110
 AliTPCCalibQAChecker.cxx:111
 AliTPCCalibQAChecker.cxx:112
 AliTPCCalibQAChecker.cxx:113
 AliTPCCalibQAChecker.cxx:114
 AliTPCCalibQAChecker.cxx:115
 AliTPCCalibQAChecker.cxx:116
 AliTPCCalibQAChecker.cxx:117
 AliTPCCalibQAChecker.cxx:118
 AliTPCCalibQAChecker.cxx:119
 AliTPCCalibQAChecker.cxx:120
 AliTPCCalibQAChecker.cxx:121
 AliTPCCalibQAChecker.cxx:122
 AliTPCCalibQAChecker.cxx:123
 AliTPCCalibQAChecker.cxx:124
 AliTPCCalibQAChecker.cxx:125
 AliTPCCalibQAChecker.cxx:126
 AliTPCCalibQAChecker.cxx:127
 AliTPCCalibQAChecker.cxx:128
 AliTPCCalibQAChecker.cxx:129
 AliTPCCalibQAChecker.cxx:130
 AliTPCCalibQAChecker.cxx:131
 AliTPCCalibQAChecker.cxx:132
 AliTPCCalibQAChecker.cxx:133
 AliTPCCalibQAChecker.cxx:134
 AliTPCCalibQAChecker.cxx:135
 AliTPCCalibQAChecker.cxx:136
 AliTPCCalibQAChecker.cxx:137
 AliTPCCalibQAChecker.cxx:138
 AliTPCCalibQAChecker.cxx:139
 AliTPCCalibQAChecker.cxx:140
 AliTPCCalibQAChecker.cxx:141
 AliTPCCalibQAChecker.cxx:142
 AliTPCCalibQAChecker.cxx:143
 AliTPCCalibQAChecker.cxx:144
 AliTPCCalibQAChecker.cxx:145
 AliTPCCalibQAChecker.cxx:146
 AliTPCCalibQAChecker.cxx:147
 AliTPCCalibQAChecker.cxx:148
 AliTPCCalibQAChecker.cxx:149
 AliTPCCalibQAChecker.cxx:150
 AliTPCCalibQAChecker.cxx:151
 AliTPCCalibQAChecker.cxx:152
 AliTPCCalibQAChecker.cxx:153
 AliTPCCalibQAChecker.cxx:154
 AliTPCCalibQAChecker.cxx:155
 AliTPCCalibQAChecker.cxx:156
 AliTPCCalibQAChecker.cxx:157
 AliTPCCalibQAChecker.cxx:158
 AliTPCCalibQAChecker.cxx:159
 AliTPCCalibQAChecker.cxx:160
 AliTPCCalibQAChecker.cxx:161
 AliTPCCalibQAChecker.cxx:162
 AliTPCCalibQAChecker.cxx:163
 AliTPCCalibQAChecker.cxx:164
 AliTPCCalibQAChecker.cxx:165
 AliTPCCalibQAChecker.cxx:166
 AliTPCCalibQAChecker.cxx:167
 AliTPCCalibQAChecker.cxx:168
 AliTPCCalibQAChecker.cxx:169
 AliTPCCalibQAChecker.cxx:170
 AliTPCCalibQAChecker.cxx:171
 AliTPCCalibQAChecker.cxx:172
 AliTPCCalibQAChecker.cxx:173
 AliTPCCalibQAChecker.cxx:174
 AliTPCCalibQAChecker.cxx:175
 AliTPCCalibQAChecker.cxx:176
 AliTPCCalibQAChecker.cxx:177
 AliTPCCalibQAChecker.cxx:178
 AliTPCCalibQAChecker.cxx:179
 AliTPCCalibQAChecker.cxx:180
 AliTPCCalibQAChecker.cxx:181
 AliTPCCalibQAChecker.cxx:182
 AliTPCCalibQAChecker.cxx:183
 AliTPCCalibQAChecker.cxx:184
 AliTPCCalibQAChecker.cxx:185
 AliTPCCalibQAChecker.cxx:186
 AliTPCCalibQAChecker.cxx:187
 AliTPCCalibQAChecker.cxx:188
 AliTPCCalibQAChecker.cxx:189
 AliTPCCalibQAChecker.cxx:190
 AliTPCCalibQAChecker.cxx:191
 AliTPCCalibQAChecker.cxx:192
 AliTPCCalibQAChecker.cxx:193
 AliTPCCalibQAChecker.cxx:194
 AliTPCCalibQAChecker.cxx:195
 AliTPCCalibQAChecker.cxx:196
 AliTPCCalibQAChecker.cxx:197
 AliTPCCalibQAChecker.cxx:198
 AliTPCCalibQAChecker.cxx:199
 AliTPCCalibQAChecker.cxx:200
 AliTPCCalibQAChecker.cxx:201
 AliTPCCalibQAChecker.cxx:202
 AliTPCCalibQAChecker.cxx:203
 AliTPCCalibQAChecker.cxx:204
 AliTPCCalibQAChecker.cxx:205
 AliTPCCalibQAChecker.cxx:206
 AliTPCCalibQAChecker.cxx:207
 AliTPCCalibQAChecker.cxx:208
 AliTPCCalibQAChecker.cxx:209
 AliTPCCalibQAChecker.cxx:210
 AliTPCCalibQAChecker.cxx:211
 AliTPCCalibQAChecker.cxx:212
 AliTPCCalibQAChecker.cxx:213
 AliTPCCalibQAChecker.cxx:214
 AliTPCCalibQAChecker.cxx:215
 AliTPCCalibQAChecker.cxx:216
 AliTPCCalibQAChecker.cxx:217
 AliTPCCalibQAChecker.cxx:218
 AliTPCCalibQAChecker.cxx:219
 AliTPCCalibQAChecker.cxx:220
 AliTPCCalibQAChecker.cxx:221
 AliTPCCalibQAChecker.cxx:222
 AliTPCCalibQAChecker.cxx:223
 AliTPCCalibQAChecker.cxx:224
 AliTPCCalibQAChecker.cxx:225
 AliTPCCalibQAChecker.cxx:226
 AliTPCCalibQAChecker.cxx:227
 AliTPCCalibQAChecker.cxx:228
 AliTPCCalibQAChecker.cxx:229
 AliTPCCalibQAChecker.cxx:230
 AliTPCCalibQAChecker.cxx:231
 AliTPCCalibQAChecker.cxx:232
 AliTPCCalibQAChecker.cxx:233
 AliTPCCalibQAChecker.cxx:234
 AliTPCCalibQAChecker.cxx:235
 AliTPCCalibQAChecker.cxx:236
 AliTPCCalibQAChecker.cxx:237
 AliTPCCalibQAChecker.cxx:238
 AliTPCCalibQAChecker.cxx:239
 AliTPCCalibQAChecker.cxx:240
 AliTPCCalibQAChecker.cxx:241
 AliTPCCalibQAChecker.cxx:242
 AliTPCCalibQAChecker.cxx:243
 AliTPCCalibQAChecker.cxx:244
 AliTPCCalibQAChecker.cxx:245
 AliTPCCalibQAChecker.cxx:246
 AliTPCCalibQAChecker.cxx:247
 AliTPCCalibQAChecker.cxx:248
 AliTPCCalibQAChecker.cxx:249
 AliTPCCalibQAChecker.cxx:250
 AliTPCCalibQAChecker.cxx:251
 AliTPCCalibQAChecker.cxx:252
 AliTPCCalibQAChecker.cxx:253
 AliTPCCalibQAChecker.cxx:254
 AliTPCCalibQAChecker.cxx:255
 AliTPCCalibQAChecker.cxx:256
 AliTPCCalibQAChecker.cxx:257
 AliTPCCalibQAChecker.cxx:258
 AliTPCCalibQAChecker.cxx:259
 AliTPCCalibQAChecker.cxx:260
 AliTPCCalibQAChecker.cxx:261
 AliTPCCalibQAChecker.cxx:262
 AliTPCCalibQAChecker.cxx:263
 AliTPCCalibQAChecker.cxx:264
 AliTPCCalibQAChecker.cxx:265
 AliTPCCalibQAChecker.cxx:266
 AliTPCCalibQAChecker.cxx:267
 AliTPCCalibQAChecker.cxx:268
 AliTPCCalibQAChecker.cxx:269
 AliTPCCalibQAChecker.cxx:270
 AliTPCCalibQAChecker.cxx:271
 AliTPCCalibQAChecker.cxx:272
 AliTPCCalibQAChecker.cxx:273
 AliTPCCalibQAChecker.cxx:274
 AliTPCCalibQAChecker.cxx:275
 AliTPCCalibQAChecker.cxx:276
 AliTPCCalibQAChecker.cxx:277
 AliTPCCalibQAChecker.cxx:278
 AliTPCCalibQAChecker.cxx:279
 AliTPCCalibQAChecker.cxx:280
 AliTPCCalibQAChecker.cxx:281
 AliTPCCalibQAChecker.cxx:282
 AliTPCCalibQAChecker.cxx:283
 AliTPCCalibQAChecker.cxx:284
 AliTPCCalibQAChecker.cxx:285
 AliTPCCalibQAChecker.cxx:286
 AliTPCCalibQAChecker.cxx:287
 AliTPCCalibQAChecker.cxx:288
 AliTPCCalibQAChecker.cxx:289
 AliTPCCalibQAChecker.cxx:290
 AliTPCCalibQAChecker.cxx:291
 AliTPCCalibQAChecker.cxx:292
 AliTPCCalibQAChecker.cxx:293
 AliTPCCalibQAChecker.cxx:294
 AliTPCCalibQAChecker.cxx:295
 AliTPCCalibQAChecker.cxx:296
 AliTPCCalibQAChecker.cxx:297
 AliTPCCalibQAChecker.cxx:298
 AliTPCCalibQAChecker.cxx:299
 AliTPCCalibQAChecker.cxx:300
 AliTPCCalibQAChecker.cxx:301
 AliTPCCalibQAChecker.cxx:302
 AliTPCCalibQAChecker.cxx:303
 AliTPCCalibQAChecker.cxx:304
 AliTPCCalibQAChecker.cxx:305
 AliTPCCalibQAChecker.cxx:306
 AliTPCCalibQAChecker.cxx:307
 AliTPCCalibQAChecker.cxx:308
 AliTPCCalibQAChecker.cxx:309
 AliTPCCalibQAChecker.cxx:310
 AliTPCCalibQAChecker.cxx:311
 AliTPCCalibQAChecker.cxx:312
 AliTPCCalibQAChecker.cxx:313
 AliTPCCalibQAChecker.cxx:314
 AliTPCCalibQAChecker.cxx:315
 AliTPCCalibQAChecker.cxx:316
 AliTPCCalibQAChecker.cxx:317
 AliTPCCalibQAChecker.cxx:318
 AliTPCCalibQAChecker.cxx:319
 AliTPCCalibQAChecker.cxx:320
 AliTPCCalibQAChecker.cxx:321
 AliTPCCalibQAChecker.cxx:322
 AliTPCCalibQAChecker.cxx:323
 AliTPCCalibQAChecker.cxx:324
 AliTPCCalibQAChecker.cxx:325
 AliTPCCalibQAChecker.cxx:326
 AliTPCCalibQAChecker.cxx:327
 AliTPCCalibQAChecker.cxx:328
 AliTPCCalibQAChecker.cxx:329
 AliTPCCalibQAChecker.cxx:330
 AliTPCCalibQAChecker.cxx:331
 AliTPCCalibQAChecker.cxx:332
 AliTPCCalibQAChecker.cxx:333
 AliTPCCalibQAChecker.cxx:334
 AliTPCCalibQAChecker.cxx:335
 AliTPCCalibQAChecker.cxx:336
 AliTPCCalibQAChecker.cxx:337
 AliTPCCalibQAChecker.cxx:338
 AliTPCCalibQAChecker.cxx:339
 AliTPCCalibQAChecker.cxx:340
 AliTPCCalibQAChecker.cxx:341
 AliTPCCalibQAChecker.cxx:342
 AliTPCCalibQAChecker.cxx:343
 AliTPCCalibQAChecker.cxx:344
 AliTPCCalibQAChecker.cxx:345
 AliTPCCalibQAChecker.cxx:346
 AliTPCCalibQAChecker.cxx:347
 AliTPCCalibQAChecker.cxx:348
 AliTPCCalibQAChecker.cxx:349
 AliTPCCalibQAChecker.cxx:350
 AliTPCCalibQAChecker.cxx:351
 AliTPCCalibQAChecker.cxx:352
 AliTPCCalibQAChecker.cxx:353
 AliTPCCalibQAChecker.cxx:354
 AliTPCCalibQAChecker.cxx:355
 AliTPCCalibQAChecker.cxx:356
 AliTPCCalibQAChecker.cxx:357
 AliTPCCalibQAChecker.cxx:358
 AliTPCCalibQAChecker.cxx:359
 AliTPCCalibQAChecker.cxx:360
 AliTPCCalibQAChecker.cxx:361
 AliTPCCalibQAChecker.cxx:362
 AliTPCCalibQAChecker.cxx:363
 AliTPCCalibQAChecker.cxx:364
 AliTPCCalibQAChecker.cxx:365
 AliTPCCalibQAChecker.cxx:366
 AliTPCCalibQAChecker.cxx:367
 AliTPCCalibQAChecker.cxx:368
 AliTPCCalibQAChecker.cxx:369
 AliTPCCalibQAChecker.cxx:370
 AliTPCCalibQAChecker.cxx:371
 AliTPCCalibQAChecker.cxx:372
 AliTPCCalibQAChecker.cxx:373
 AliTPCCalibQAChecker.cxx:374
 AliTPCCalibQAChecker.cxx:375
 AliTPCCalibQAChecker.cxx:376
 AliTPCCalibQAChecker.cxx:377
 AliTPCCalibQAChecker.cxx:378
 AliTPCCalibQAChecker.cxx:379
 AliTPCCalibQAChecker.cxx:380
 AliTPCCalibQAChecker.cxx:381
 AliTPCCalibQAChecker.cxx:382
 AliTPCCalibQAChecker.cxx:383
 AliTPCCalibQAChecker.cxx:384
 AliTPCCalibQAChecker.cxx:385
 AliTPCCalibQAChecker.cxx:386
 AliTPCCalibQAChecker.cxx:387
 AliTPCCalibQAChecker.cxx:388
 AliTPCCalibQAChecker.cxx:389
 AliTPCCalibQAChecker.cxx:390
 AliTPCCalibQAChecker.cxx:391
 AliTPCCalibQAChecker.cxx:392
 AliTPCCalibQAChecker.cxx:393
 AliTPCCalibQAChecker.cxx:394
 AliTPCCalibQAChecker.cxx:395
 AliTPCCalibQAChecker.cxx:396
 AliTPCCalibQAChecker.cxx:397
 AliTPCCalibQAChecker.cxx:398
 AliTPCCalibQAChecker.cxx:399
 AliTPCCalibQAChecker.cxx:400
 AliTPCCalibQAChecker.cxx:401
 AliTPCCalibQAChecker.cxx:402
 AliTPCCalibQAChecker.cxx:403
 AliTPCCalibQAChecker.cxx:404
 AliTPCCalibQAChecker.cxx:405
 AliTPCCalibQAChecker.cxx:406
 AliTPCCalibQAChecker.cxx:407
 AliTPCCalibQAChecker.cxx:408
 AliTPCCalibQAChecker.cxx:409
 AliTPCCalibQAChecker.cxx:410
 AliTPCCalibQAChecker.cxx:411
 AliTPCCalibQAChecker.cxx:412
 AliTPCCalibQAChecker.cxx:413
 AliTPCCalibQAChecker.cxx:414
 AliTPCCalibQAChecker.cxx:415
 AliTPCCalibQAChecker.cxx:416
 AliTPCCalibQAChecker.cxx:417
 AliTPCCalibQAChecker.cxx:418
 AliTPCCalibQAChecker.cxx:419
 AliTPCCalibQAChecker.cxx:420
 AliTPCCalibQAChecker.cxx:421
 AliTPCCalibQAChecker.cxx:422
 AliTPCCalibQAChecker.cxx:423
 AliTPCCalibQAChecker.cxx:424
 AliTPCCalibQAChecker.cxx:425
 AliTPCCalibQAChecker.cxx:426
 AliTPCCalibQAChecker.cxx:427
 AliTPCCalibQAChecker.cxx:428
 AliTPCCalibQAChecker.cxx:429
 AliTPCCalibQAChecker.cxx:430
 AliTPCCalibQAChecker.cxx:431
 AliTPCCalibQAChecker.cxx:432
 AliTPCCalibQAChecker.cxx:433
 AliTPCCalibQAChecker.cxx:434
 AliTPCCalibQAChecker.cxx:435
 AliTPCCalibQAChecker.cxx:436
 AliTPCCalibQAChecker.cxx:437
 AliTPCCalibQAChecker.cxx:438
 AliTPCCalibQAChecker.cxx:439
 AliTPCCalibQAChecker.cxx:440
 AliTPCCalibQAChecker.cxx:441
 AliTPCCalibQAChecker.cxx:442
 AliTPCCalibQAChecker.cxx:443
 AliTPCCalibQAChecker.cxx:444
 AliTPCCalibQAChecker.cxx:445
 AliTPCCalibQAChecker.cxx:446
 AliTPCCalibQAChecker.cxx:447
 AliTPCCalibQAChecker.cxx:448
 AliTPCCalibQAChecker.cxx:449
 AliTPCCalibQAChecker.cxx:450
 AliTPCCalibQAChecker.cxx:451
 AliTPCCalibQAChecker.cxx:452
 AliTPCCalibQAChecker.cxx:453
 AliTPCCalibQAChecker.cxx:454
 AliTPCCalibQAChecker.cxx:455
 AliTPCCalibQAChecker.cxx:456
 AliTPCCalibQAChecker.cxx:457
 AliTPCCalibQAChecker.cxx:458
 AliTPCCalibQAChecker.cxx:459
 AliTPCCalibQAChecker.cxx:460
 AliTPCCalibQAChecker.cxx:461
 AliTPCCalibQAChecker.cxx:462
 AliTPCCalibQAChecker.cxx:463
 AliTPCCalibQAChecker.cxx:464
 AliTPCCalibQAChecker.cxx:465
 AliTPCCalibQAChecker.cxx:466
 AliTPCCalibQAChecker.cxx:467
 AliTPCCalibQAChecker.cxx:468
 AliTPCCalibQAChecker.cxx:469
 AliTPCCalibQAChecker.cxx:470
 AliTPCCalibQAChecker.cxx:471
 AliTPCCalibQAChecker.cxx:472
 AliTPCCalibQAChecker.cxx:473
 AliTPCCalibQAChecker.cxx:474
 AliTPCCalibQAChecker.cxx:475
 AliTPCCalibQAChecker.cxx:476
 AliTPCCalibQAChecker.cxx:477
 AliTPCCalibQAChecker.cxx:478
 AliTPCCalibQAChecker.cxx:479
 AliTPCCalibQAChecker.cxx:480
 AliTPCCalibQAChecker.cxx:481
 AliTPCCalibQAChecker.cxx:482
 AliTPCCalibQAChecker.cxx:483
 AliTPCCalibQAChecker.cxx:484
 AliTPCCalibQAChecker.cxx:485
 AliTPCCalibQAChecker.cxx:486
 AliTPCCalibQAChecker.cxx:487
 AliTPCCalibQAChecker.cxx:488
 AliTPCCalibQAChecker.cxx:489
 AliTPCCalibQAChecker.cxx:490
 AliTPCCalibQAChecker.cxx:491
 AliTPCCalibQAChecker.cxx:492
 AliTPCCalibQAChecker.cxx:493
 AliTPCCalibQAChecker.cxx:494
 AliTPCCalibQAChecker.cxx:495
 AliTPCCalibQAChecker.cxx:496
 AliTPCCalibQAChecker.cxx:497
 AliTPCCalibQAChecker.cxx:498
 AliTPCCalibQAChecker.cxx:499
 AliTPCCalibQAChecker.cxx:500
 AliTPCCalibQAChecker.cxx:501
 AliTPCCalibQAChecker.cxx:502
 AliTPCCalibQAChecker.cxx:503
 AliTPCCalibQAChecker.cxx:504
 AliTPCCalibQAChecker.cxx:505
 AliTPCCalibQAChecker.cxx:506
 AliTPCCalibQAChecker.cxx:507
 AliTPCCalibQAChecker.cxx:508
 AliTPCCalibQAChecker.cxx:509
 AliTPCCalibQAChecker.cxx:510
 AliTPCCalibQAChecker.cxx:511
 AliTPCCalibQAChecker.cxx:512
 AliTPCCalibQAChecker.cxx:513
 AliTPCCalibQAChecker.cxx:514
 AliTPCCalibQAChecker.cxx:515
 AliTPCCalibQAChecker.cxx:516
 AliTPCCalibQAChecker.cxx:517
 AliTPCCalibQAChecker.cxx:518
 AliTPCCalibQAChecker.cxx:519
 AliTPCCalibQAChecker.cxx:520
 AliTPCCalibQAChecker.cxx:521
 AliTPCCalibQAChecker.cxx:522
 AliTPCCalibQAChecker.cxx:523
 AliTPCCalibQAChecker.cxx:524
 AliTPCCalibQAChecker.cxx:525
 AliTPCCalibQAChecker.cxx:526
 AliTPCCalibQAChecker.cxx:527
 AliTPCCalibQAChecker.cxx:528
 AliTPCCalibQAChecker.cxx:529
 AliTPCCalibQAChecker.cxx:530
 AliTPCCalibQAChecker.cxx:531
 AliTPCCalibQAChecker.cxx:532
 AliTPCCalibQAChecker.cxx:533
 AliTPCCalibQAChecker.cxx:534
 AliTPCCalibQAChecker.cxx:535
 AliTPCCalibQAChecker.cxx:536
 AliTPCCalibQAChecker.cxx:537
 AliTPCCalibQAChecker.cxx:538
 AliTPCCalibQAChecker.cxx:539
 AliTPCCalibQAChecker.cxx:540
 AliTPCCalibQAChecker.cxx:541
 AliTPCCalibQAChecker.cxx:542
 AliTPCCalibQAChecker.cxx:543
 AliTPCCalibQAChecker.cxx:544
 AliTPCCalibQAChecker.cxx:545
 AliTPCCalibQAChecker.cxx:546
 AliTPCCalibQAChecker.cxx:547
 AliTPCCalibQAChecker.cxx:548
 AliTPCCalibQAChecker.cxx:549
 AliTPCCalibQAChecker.cxx:550
 AliTPCCalibQAChecker.cxx:551
 AliTPCCalibQAChecker.cxx:552
 AliTPCCalibQAChecker.cxx:553
 AliTPCCalibQAChecker.cxx:554
 AliTPCCalibQAChecker.cxx:555
 AliTPCCalibQAChecker.cxx:556
 AliTPCCalibQAChecker.cxx:557
 AliTPCCalibQAChecker.cxx:558
 AliTPCCalibQAChecker.cxx:559
 AliTPCCalibQAChecker.cxx:560
 AliTPCCalibQAChecker.cxx:561
 AliTPCCalibQAChecker.cxx:562
 AliTPCCalibQAChecker.cxx:563
 AliTPCCalibQAChecker.cxx:564
 AliTPCCalibQAChecker.cxx:565
 AliTPCCalibQAChecker.cxx:566
 AliTPCCalibQAChecker.cxx:567
 AliTPCCalibQAChecker.cxx:568
 AliTPCCalibQAChecker.cxx:569
 AliTPCCalibQAChecker.cxx:570
 AliTPCCalibQAChecker.cxx:571
 AliTPCCalibQAChecker.cxx:572
 AliTPCCalibQAChecker.cxx:573
 AliTPCCalibQAChecker.cxx:574
 AliTPCCalibQAChecker.cxx:575
 AliTPCCalibQAChecker.cxx:576
 AliTPCCalibQAChecker.cxx:577
 AliTPCCalibQAChecker.cxx:578
 AliTPCCalibQAChecker.cxx:579
 AliTPCCalibQAChecker.cxx:580
 AliTPCCalibQAChecker.cxx:581
 AliTPCCalibQAChecker.cxx:582
 AliTPCCalibQAChecker.cxx:583
 AliTPCCalibQAChecker.cxx:584
 AliTPCCalibQAChecker.cxx:585
 AliTPCCalibQAChecker.cxx:586
 AliTPCCalibQAChecker.cxx:587
 AliTPCCalibQAChecker.cxx:588
 AliTPCCalibQAChecker.cxx:589
 AliTPCCalibQAChecker.cxx:590
 AliTPCCalibQAChecker.cxx:591
 AliTPCCalibQAChecker.cxx:592
 AliTPCCalibQAChecker.cxx:593
 AliTPCCalibQAChecker.cxx:594
 AliTPCCalibQAChecker.cxx:595
 AliTPCCalibQAChecker.cxx:596
 AliTPCCalibQAChecker.cxx:597
 AliTPCCalibQAChecker.cxx:598
 AliTPCCalibQAChecker.cxx:599
 AliTPCCalibQAChecker.cxx:600
 AliTPCCalibQAChecker.cxx:601
 AliTPCCalibQAChecker.cxx:602
 AliTPCCalibQAChecker.cxx:603
 AliTPCCalibQAChecker.cxx:604
 AliTPCCalibQAChecker.cxx:605
 AliTPCCalibQAChecker.cxx:606
 AliTPCCalibQAChecker.cxx:607
 AliTPCCalibQAChecker.cxx:608
 AliTPCCalibQAChecker.cxx:609
 AliTPCCalibQAChecker.cxx:610
 AliTPCCalibQAChecker.cxx:611
 AliTPCCalibQAChecker.cxx:612
 AliTPCCalibQAChecker.cxx:613
 AliTPCCalibQAChecker.cxx:614
 AliTPCCalibQAChecker.cxx:615
 AliTPCCalibQAChecker.cxx:616
 AliTPCCalibQAChecker.cxx:617
 AliTPCCalibQAChecker.cxx:618
 AliTPCCalibQAChecker.cxx:619
 AliTPCCalibQAChecker.cxx:620
 AliTPCCalibQAChecker.cxx:621
 AliTPCCalibQAChecker.cxx:622
 AliTPCCalibQAChecker.cxx:623
 AliTPCCalibQAChecker.cxx:624
 AliTPCCalibQAChecker.cxx:625
 AliTPCCalibQAChecker.cxx:626
 AliTPCCalibQAChecker.cxx:627
 AliTPCCalibQAChecker.cxx:628
 AliTPCCalibQAChecker.cxx:629
 AliTPCCalibQAChecker.cxx:630
 AliTPCCalibQAChecker.cxx:631
 AliTPCCalibQAChecker.cxx:632
 AliTPCCalibQAChecker.cxx:633
 AliTPCCalibQAChecker.cxx:634
 AliTPCCalibQAChecker.cxx:635
 AliTPCCalibQAChecker.cxx:636
 AliTPCCalibQAChecker.cxx:637
 AliTPCCalibQAChecker.cxx:638
 AliTPCCalibQAChecker.cxx:639
 AliTPCCalibQAChecker.cxx:640
 AliTPCCalibQAChecker.cxx:641
 AliTPCCalibQAChecker.cxx:642
 AliTPCCalibQAChecker.cxx:643
 AliTPCCalibQAChecker.cxx:644
 AliTPCCalibQAChecker.cxx:645
 AliTPCCalibQAChecker.cxx:646
 AliTPCCalibQAChecker.cxx:647
 AliTPCCalibQAChecker.cxx:648
 AliTPCCalibQAChecker.cxx:649
 AliTPCCalibQAChecker.cxx:650
 AliTPCCalibQAChecker.cxx:651
 AliTPCCalibQAChecker.cxx:652
 AliTPCCalibQAChecker.cxx:653
 AliTPCCalibQAChecker.cxx:654
 AliTPCCalibQAChecker.cxx:655
 AliTPCCalibQAChecker.cxx:656
 AliTPCCalibQAChecker.cxx:657
 AliTPCCalibQAChecker.cxx:658
 AliTPCCalibQAChecker.cxx:659
 AliTPCCalibQAChecker.cxx:660
 AliTPCCalibQAChecker.cxx:661
 AliTPCCalibQAChecker.cxx:662
 AliTPCCalibQAChecker.cxx:663
 AliTPCCalibQAChecker.cxx:664
 AliTPCCalibQAChecker.cxx:665
 AliTPCCalibQAChecker.cxx:666
 AliTPCCalibQAChecker.cxx:667
 AliTPCCalibQAChecker.cxx:668
 AliTPCCalibQAChecker.cxx:669
 AliTPCCalibQAChecker.cxx:670
 AliTPCCalibQAChecker.cxx:671
 AliTPCCalibQAChecker.cxx:672
 AliTPCCalibQAChecker.cxx:673
 AliTPCCalibQAChecker.cxx:674
 AliTPCCalibQAChecker.cxx:675
 AliTPCCalibQAChecker.cxx:676
 AliTPCCalibQAChecker.cxx:677
 AliTPCCalibQAChecker.cxx:678
 AliTPCCalibQAChecker.cxx:679
 AliTPCCalibQAChecker.cxx:680
 AliTPCCalibQAChecker.cxx:681
 AliTPCCalibQAChecker.cxx:682
 AliTPCCalibQAChecker.cxx:683
 AliTPCCalibQAChecker.cxx:684
 AliTPCCalibQAChecker.cxx:685
 AliTPCCalibQAChecker.cxx:686
 AliTPCCalibQAChecker.cxx:687
 AliTPCCalibQAChecker.cxx:688
 AliTPCCalibQAChecker.cxx:689
 AliTPCCalibQAChecker.cxx:690
 AliTPCCalibQAChecker.cxx:691
 AliTPCCalibQAChecker.cxx:692
 AliTPCCalibQAChecker.cxx:693
 AliTPCCalibQAChecker.cxx:694
 AliTPCCalibQAChecker.cxx:695
 AliTPCCalibQAChecker.cxx:696
 AliTPCCalibQAChecker.cxx:697
 AliTPCCalibQAChecker.cxx:698
 AliTPCCalibQAChecker.cxx:699
 AliTPCCalibQAChecker.cxx:700
 AliTPCCalibQAChecker.cxx:701
 AliTPCCalibQAChecker.cxx:702
 AliTPCCalibQAChecker.cxx:703
 AliTPCCalibQAChecker.cxx:704
 AliTPCCalibQAChecker.cxx:705
 AliTPCCalibQAChecker.cxx:706
 AliTPCCalibQAChecker.cxx:707