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 AliHFEtpcPIDqa
// Monitoring TPC PID in the HFE PID montioring framework. The following
// quantities are monitored:
//   TPC dE/dx (Number of sigmas)
//   TPC dE/dx (Absolute values)
// (Always as function of momentum, particle species and centrality 
// before and after cut)
// More information about the PID monitoring framework can be found in
// AliHFEpidQAmanager.cxx and AliHFEdetPIDqa.cxx
//
// Author:
//    Markus Fasel <M.Fasel@gsi.de>
//
#include <TBrowser.h>
#include <TClass.h>
#include <TH2.h>
#include <THnSparse.h>
#include <TString.h>

#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliESDtrack.h"
#include "AliLog.h"
#include "AliPID.h"
#include "AliPIDResponse.h"

#include "AliHFEcollection.h"
#include "AliHFEpidBase.h"
#include "AliHFEpidQAmanager.h"
#include "AliHFEpidTPC.h"
#include "AliHFEtools.h"
#include "AliHFEtpcPIDqa.h"

ClassImp(AliHFEtpcPIDqa)

//_________________________________________________________
AliHFEtpcPIDqa::AliHFEtpcPIDqa():
    AliHFEdetPIDqa()
  , fHistos(NULL)
  , fBrowseCentrality(-1)
{
  //
  // Dummy constructor
  //
}

//_________________________________________________________
AliHFEtpcPIDqa::AliHFEtpcPIDqa(const char* name):
    AliHFEdetPIDqa(name, "QA for TPC")
  , fHistos(NULL)
  , fBrowseCentrality(-1)
{
  //
  // Default constructor
  //
}

//_________________________________________________________
AliHFEtpcPIDqa::AliHFEtpcPIDqa(const AliHFEtpcPIDqa &o):
    AliHFEdetPIDqa(o)
  , fHistos(NULL)
  , fBrowseCentrality(o.fBrowseCentrality)
{
  //
  // Copy constructor
  //
  o.Copy(*this);
}

//_________________________________________________________
AliHFEtpcPIDqa &AliHFEtpcPIDqa::operator=(const AliHFEtpcPIDqa &o){
  //
  // Do assignment
  //
  AliHFEdetPIDqa::operator=(o);
  if(&o != this) o.Copy(*this);
  return *this;
}

//_________________________________________________________
AliHFEtpcPIDqa::~AliHFEtpcPIDqa(){
  //
  // Destructor
  //
  if(fHistos) delete fHistos;
}

//_________________________________________________________
void AliHFEtpcPIDqa::Copy(TObject &o) const {
  //
  // Make copy
  //
  AliHFEtpcPIDqa &target = dynamic_cast<AliHFEtpcPIDqa &>(o);
  if(target.fHistos){
    delete target.fHistos;
    target.fHistos = NULL;
  }
  if(fHistos) target.fHistos = new AliHFEcollection(*fHistos);
  target.fBrowseCentrality = fBrowseCentrality;
}

//_________________________________________________________
Long64_t AliHFEtpcPIDqa::Merge(TCollection *coll){
  //
  // Merge with other objects
  //
  if(!coll) return 0;
  if(coll->IsEmpty()) return 1;

  TIter it(coll);
  AliHFEtpcPIDqa *refQA = NULL;
  TObject *o = NULL;
  Long64_t count = 0;
  TList listHistos;
  while((o = it())){
    refQA = dynamic_cast<AliHFEtpcPIDqa *>(o);
    if(!refQA) continue;

    listHistos.Add(refQA->fHistos);
    count++; 
  }
  fHistos->Merge(&listHistos);
  return count + 1;
}

//_________________________________________________________
void AliHFEtpcPIDqa::Browse(TBrowser *b){
  //
  // Browse the PID QA
  //
  if(b){
    if(fHistos){
      b->Add(fHistos, fHistos->GetName());

      // Make Projections of the dE/dx Spectra and add them to a new Folder
      TString specnames[AliPID::kSPECIES+1] = {"All", "Electrons", "Muon", "Pions", "Kaon", "Protons"};
      Int_t specind[AliPID::kSPECIES+1] = {-1, AliPID::kElectron, AliPID::kMuon, AliPID::kPion, AliPID::kKaon, AliPID::kProton};
      TList *listdEdx = new TList;
      listdEdx->SetOwner();
      TList *listNsigma = new TList;
      listNsigma->SetOwner();

      TH2 *hptr = NULL; 
      for(Int_t ispec = 0; ispec < AliPID::kSPECIES+1; ispec++){
        for(Int_t istep = 0; istep < 2; istep++){
          hptr = MakeSpectrumdEdx(static_cast<AliHFEdetPIDqa::EStep_t>(istep), specind[ispec], fBrowseCentrality);
          hptr->SetName(Form("hTPCdEdx%s%s%s", specnames[ispec].Data(), istep == 0 ? "Before" : "After" , fBrowseCentrality == -1 ? "MinBias" : Form("Cent%d", fBrowseCentrality)));
          listdEdx->Add(hptr);
          hptr = MakeSpectrumNSigma(static_cast<AliHFEdetPIDqa::EStep_t>(istep), specind[ispec], fBrowseCentrality);
          hptr->SetName(Form("hTPCnsigma%s%s%s", specnames[ispec].Data(), istep == 0 ? "Before" : "After", fBrowseCentrality == -1 ? "MinBias" : Form("Cent%d", fBrowseCentrality)));
          listNsigma->Add(hptr);
        }
      }
      
      b->Add(listdEdx, "Projections dE/dx");
      b->Add(listNsigma, "Projections NSigma");
    }
  }
}

//_________________________________________________________
void AliHFEtpcPIDqa::Initialize(){
  //
  // Define Histograms
  //

  fHistos = new AliHFEcollection("tpcqahistos", "Collection of TPC QA histograms");

  // Make common binning
  const Int_t kNdim = 7;
  const Int_t kPIDbins = AliPID::kSPECIES + 1;
  const Int_t kSteps = 2;
  const Int_t kCentralityBins = 11;
  const Double_t kMinPID = -1;
  const Double_t kMinP = 0.;
  const Double_t kMaxPID = (Double_t)AliPID::kSPECIES;
  const Double_t kMaxP = 20.;
  const Double_t kMinEta = -0.9;
  const Double_t kMaxEta = 0.9;

  // Quantities where one can switch between low and high resolution
  Int_t kPbins = (fQAmanager->HasHighResolutionHistos() || fQAmanager->HasMidResolutionHistos()) ? 1000 : 100;
  Int_t kDedxbins = fQAmanager->HasHighResolutionHistos() ? 400 : 200;
  Int_t kSigmaBins = fQAmanager->HasHighResolutionHistos() ? 1400 : 240;
  kSigmaBins = fQAmanager->HasMidResolutionHistos() ? 400 : kSigmaBins;
  Int_t kEtabins = fQAmanager->HasHighResolutionEtaHistos() ? 33 : 18;

  // 1st histogram: TPC dEdx: (species, p, dEdx, step)
  Int_t nBinsdEdx[kNdim] = {kPIDbins, kPbins, kDedxbins, kSteps, kCentralityBins, kEtabins, 33};
  Double_t mindEdx[kNdim] =  {kMinPID, kMinP, 20., 0., 0., kMinEta, 0};
  Double_t maxdEdx[kNdim] =  {kMaxPID, kMaxP, 130, 2., 11., kMaxEta, 2000};
  fHistos->CreateTHnSparse("tpcDedx", "TPC signal; species; p [GeV/c]; TPC signal [a.u.]; Selection Step; Centrality; Eta; pVx contrib", kNdim, nBinsdEdx, mindEdx, maxdEdx);
  
  // 2nd histogram: TPC sigmas: (species, p nsigma, step)
  Int_t nBinsSigma[kNdim] = {kPIDbins, kPbins, kSigmaBins, kSteps, kCentralityBins, kEtabins, 33};
  Double_t minSigma[kNdim] = {kMinPID, kMinP, -12., 0., 0., kMinEta, 0};
  Double_t maxSigma[kNdim] = {kMaxPID, kMaxP, 12., 2., 11., kMaxEta, 2000};
  fHistos->CreateTHnSparse("tpcnSigma", "TPC signal; species; p [GeV/c]; TPC signal [a.u.]; Selection Step; Centrality; Eta; pVx contrib", kNdim, nBinsSigma, minSigma, maxSigma);

  // General TPC QA
}

//_________________________________________________________
void AliHFEtpcPIDqa::ProcessTrack(const AliHFEpidObject *track, AliHFEdetPIDqa::EStep_t step){
  //
  // Fill TPC histograms
  //
  AliDebug(1, Form("QA started for TPC PID for step %d", (Int_t)step));
  AliHFEpidObject::AnalysisType_t anatype = track->IsESDanalysis() ? AliHFEpidObject::kESDanalysis : AliHFEpidObject::kAODanalysis;
  Int_t species = track->GetAbInitioPID();
  if(species >= AliPID::kSPECIES) species = -1;

  AliHFEpidTPC *tpcpid = dynamic_cast<AliHFEpidTPC *>(fQAmanager->GetDetectorPID(AliHFEpid::kTPCpid));
  const AliPIDResponse *pidResponse = tpcpid ? tpcpid->GetPIDResponse() : NULL;
  Double_t contentSignal[7];
  contentSignal[0] = species;
  contentSignal[1] = tpcpid ? tpcpid->GetP(track->GetRecTrack(), anatype) : 0.;
  contentSignal[2] = GetTPCsignal(track->GetRecTrack(), anatype);
  contentSignal[3] = step;
  contentSignal[4] = track->GetCentrality();
  contentSignal[5] = GetEta(track->GetRecTrack(), anatype);
  contentSignal[6] = fQAmanager->HasFillMultiplicity() ? track->GetMultiplicity() : 0;
  fHistos->Fill("tpcDedx", contentSignal);

  if(track->HasCorrectedTPCnSigma())
    contentSignal[2] = track->GetCorrectedTPCnSigma();
  else
    contentSignal[2] = pidResponse ? pidResponse->NumberOfSigmasTPC(track->GetRecTrack(), AliPID::kElectron) : -100.;
  
  fHistos->Fill("tpcnSigma", contentSignal);
}

//_________________________________________________________
Double_t AliHFEtpcPIDqa::GetTPCsignal(const AliVParticle *track, AliHFEpidObject::AnalysisType_t anatype){
  //
  // Get TPC signal for ESD and AOD track
  //
  Double_t tpcSignal = 0.;
  if(anatype == AliHFEpidObject::kESDanalysis){
    const AliESDtrack *esdtrack = static_cast<const AliESDtrack *>(track);
    tpcSignal = esdtrack->GetTPCsignal();
  } else {
    const AliAODTrack *aodtrack = static_cast<const AliAODTrack *>(track);
    tpcSignal = aodtrack->GetDetPid() ? aodtrack->GetDetPid()->GetTPCsignal() : 0.;
  }
  return tpcSignal;
}


//_________________________________________________________
Double_t AliHFEtpcPIDqa::GetEta(const AliVParticle *track, AliHFEpidObject::AnalysisType_t anatype){
  //
  // Get TPC signal for ESD and AOD track
  //
  Double_t eta = 0.;
  if(anatype == AliHFEpidObject::kESDanalysis){
    const AliESDtrack *esdtrack = static_cast<const AliESDtrack *>(track);
    eta = esdtrack->Eta();
  } else {
    const AliAODTrack *aodtrack = static_cast<const AliAODTrack *>(track);
    eta = aodtrack->Eta(); 
  }
  return eta;
}

//_________________________________________________________
TH2 *AliHFEtpcPIDqa::MakeSpectrumdEdx(AliHFEdetPIDqa::EStep_t istep, Int_t species, Int_t centralityClass){
  //
  // Plot the Spectrum
  //
  THnSparseF *hSignal = dynamic_cast<THnSparseF *>(fHistos->Get("tpcDedx"));
  if(!hSignal) return NULL;
  hSignal->GetAxis(3)->SetRange(istep + 1, istep + 1);
  if(species >= 0 && species < AliPID::kSPECIES)
    hSignal->GetAxis(0)->SetRange(2 + species, 2 + species);
  TString hname = Form("hTPCsignal%s", istep == AliHFEdetPIDqa::kBeforePID ? "before" : "after"), 
          htitle = Form("TPC dE/dx Spectrum %s selection", istep == AliHFEdetPIDqa::kBeforePID ? "before" : "after");
  if(species > -1){
    hname += AliPID::ParticleName(species);
    htitle += Form(" for %ss", AliPID::ParticleName(species));
  }
  TString centname, centtitle;
  Bool_t hasCentralityInfo = kTRUE;
  if(centralityClass > -1){
    if(hSignal->GetNdimensions() < 5){
      AliError("Centrality Information not available");
      centname = centtitle = "MinBias";
      hasCentralityInfo= kFALSE;
    } else {
      // Project centrality classes
      // -1 is Min. Bias
      hSignal->GetAxis(4)->SetRange(centralityClass+1, centralityClass+1);
      centname = Form("Cent%d", centralityClass);
      centtitle = Form(" Centrality %d", centralityClass);
    }
  } else {
    centname = centtitle = "MinBias";
    hasCentralityInfo= kFALSE;
  }
  hname += centtitle;
  htitle += centtitle;

  TH2 *hTmp = hSignal->Projection(2,1);
  hTmp->SetName(hname.Data());
  hTmp->SetTitle(htitle.Data());
  hTmp->SetStats(kFALSE);
  hTmp->GetXaxis()->SetTitle("p [GeV/c]");
  hTmp->GetYaxis()->SetTitle("TPC signal [a.u.]");
  hSignal->GetAxis(3)->SetRange(0, hSignal->GetAxis(3)->GetNbins());
  hSignal->GetAxis(0)->SetRange(0, hSignal->GetAxis(0)->GetNbins());
  if(hasCentralityInfo) hSignal->GetAxis(4)->SetRange(0, hSignal->GetAxis(4)->GetNbins());
  return hTmp;
}

//_________________________________________________________
TH2 *AliHFEtpcPIDqa::MakeSpectrumNSigma(AliHFEdetPIDqa::EStep_t istep, Int_t species, Int_t centralityClass){
  //
  // Plot the Spectrum
  //
  THnSparseF *hSignal = dynamic_cast<THnSparseF *>(fHistos->Get("tpcnSigma"));
  if(!hSignal) return NULL;
  hSignal->GetAxis(3)->SetRange(istep + 1, istep + 1);
  if(species >= 0 && species < AliPID::kSPECIES)
    hSignal->GetAxis(0)->SetRange(2 + species, 2 + species);
  TString hname = Form("hTPCsigma%s", istep == AliHFEdetPIDqa::kBeforePID ? "before" : "after"), 
          htitle = Form("TPC dE/dx Spectrum[#sigma] %s selection", istep == AliHFEdetPIDqa::kBeforePID ? "before" : "after");
  if(species > -1){
    hname += AliPID::ParticleName(species);
    htitle += Form(" for %ss", AliPID::ParticleName(species));
  }
  TString centname, centtitle;
  Bool_t hasCentralityInfo = kTRUE;
  if(centralityClass > -1){
    if(hSignal->GetNdimensions() < 5){
      AliError("Centrality Information not available");
      centname = centtitle = "MinBias";
      hasCentralityInfo= kFALSE;
    } else {
      // Project centrality classes
      // -1 is Min. Bias
      hSignal->GetAxis(4)->SetRange(centralityClass+1, centralityClass+1);
      centname = Form("Cent%d", centralityClass);
      centtitle = Form(" Centrality %d", centralityClass);
    }
  } else {
    centname = centtitle = "MinBias";
    hasCentralityInfo= kFALSE;
  }
  hname += centtitle;
  htitle += centtitle;

  TH2 *hTmp = hSignal->Projection(2,1);
  hTmp->SetName(hname.Data());
  hTmp->SetTitle(htitle.Data());
  hTmp->SetStats(kFALSE);
  hTmp->GetXaxis()->SetTitle("p [GeV/c]");
  hTmp->GetYaxis()->SetTitle("TPC dE/dx - <dE/dx>|_{el} [#sigma]");
  hSignal->GetAxis(3)->SetRange(0, hSignal->GetAxis(3)->GetNbins());
  hSignal->GetAxis(0)->SetRange(0, hSignal->GetAxis(0)->GetNbins());
  if(hasCentralityInfo) hSignal->GetAxis(4)->SetRange(0, hSignal->GetAxis(4)->GetNbins());
  return hTmp;
}

 AliHFEtpcPIDqa.cxx:1
 AliHFEtpcPIDqa.cxx:2
 AliHFEtpcPIDqa.cxx:3
 AliHFEtpcPIDqa.cxx:4
 AliHFEtpcPIDqa.cxx:5
 AliHFEtpcPIDqa.cxx:6
 AliHFEtpcPIDqa.cxx:7
 AliHFEtpcPIDqa.cxx:8
 AliHFEtpcPIDqa.cxx:9
 AliHFEtpcPIDqa.cxx:10
 AliHFEtpcPIDqa.cxx:11
 AliHFEtpcPIDqa.cxx:12
 AliHFEtpcPIDqa.cxx:13
 AliHFEtpcPIDqa.cxx:14
 AliHFEtpcPIDqa.cxx:15
 AliHFEtpcPIDqa.cxx:16
 AliHFEtpcPIDqa.cxx:17
 AliHFEtpcPIDqa.cxx:18
 AliHFEtpcPIDqa.cxx:19
 AliHFEtpcPIDqa.cxx:20
 AliHFEtpcPIDqa.cxx:21
 AliHFEtpcPIDqa.cxx:22
 AliHFEtpcPIDqa.cxx:23
 AliHFEtpcPIDqa.cxx:24
 AliHFEtpcPIDqa.cxx:25
 AliHFEtpcPIDqa.cxx:26
 AliHFEtpcPIDqa.cxx:27
 AliHFEtpcPIDqa.cxx:28
 AliHFEtpcPIDqa.cxx:29
 AliHFEtpcPIDqa.cxx:30
 AliHFEtpcPIDqa.cxx:31
 AliHFEtpcPIDqa.cxx:32
 AliHFEtpcPIDqa.cxx:33
 AliHFEtpcPIDqa.cxx:34
 AliHFEtpcPIDqa.cxx:35
 AliHFEtpcPIDqa.cxx:36
 AliHFEtpcPIDqa.cxx:37
 AliHFEtpcPIDqa.cxx:38
 AliHFEtpcPIDqa.cxx:39
 AliHFEtpcPIDqa.cxx:40
 AliHFEtpcPIDqa.cxx:41
 AliHFEtpcPIDqa.cxx:42
 AliHFEtpcPIDqa.cxx:43
 AliHFEtpcPIDqa.cxx:44
 AliHFEtpcPIDqa.cxx:45
 AliHFEtpcPIDqa.cxx:46
 AliHFEtpcPIDqa.cxx:47
 AliHFEtpcPIDqa.cxx:48
 AliHFEtpcPIDqa.cxx:49
 AliHFEtpcPIDqa.cxx:50
 AliHFEtpcPIDqa.cxx:51
 AliHFEtpcPIDqa.cxx:52
 AliHFEtpcPIDqa.cxx:53
 AliHFEtpcPIDqa.cxx:54
 AliHFEtpcPIDqa.cxx:55
 AliHFEtpcPIDqa.cxx:56
 AliHFEtpcPIDqa.cxx:57
 AliHFEtpcPIDqa.cxx:58
 AliHFEtpcPIDqa.cxx:59
 AliHFEtpcPIDqa.cxx:60
 AliHFEtpcPIDqa.cxx:61
 AliHFEtpcPIDqa.cxx:62
 AliHFEtpcPIDqa.cxx:63
 AliHFEtpcPIDqa.cxx:64
 AliHFEtpcPIDqa.cxx:65
 AliHFEtpcPIDqa.cxx:66
 AliHFEtpcPIDqa.cxx:67
 AliHFEtpcPIDqa.cxx:68
 AliHFEtpcPIDqa.cxx:69
 AliHFEtpcPIDqa.cxx:70
 AliHFEtpcPIDqa.cxx:71
 AliHFEtpcPIDqa.cxx:72
 AliHFEtpcPIDqa.cxx:73
 AliHFEtpcPIDqa.cxx:74
 AliHFEtpcPIDqa.cxx:75
 AliHFEtpcPIDqa.cxx:76
 AliHFEtpcPIDqa.cxx:77
 AliHFEtpcPIDqa.cxx:78
 AliHFEtpcPIDqa.cxx:79
 AliHFEtpcPIDqa.cxx:80
 AliHFEtpcPIDqa.cxx:81
 AliHFEtpcPIDqa.cxx:82
 AliHFEtpcPIDqa.cxx:83
 AliHFEtpcPIDqa.cxx:84
 AliHFEtpcPIDqa.cxx:85
 AliHFEtpcPIDqa.cxx:86
 AliHFEtpcPIDqa.cxx:87
 AliHFEtpcPIDqa.cxx:88
 AliHFEtpcPIDqa.cxx:89
 AliHFEtpcPIDqa.cxx:90
 AliHFEtpcPIDqa.cxx:91
 AliHFEtpcPIDqa.cxx:92
 AliHFEtpcPIDqa.cxx:93
 AliHFEtpcPIDqa.cxx:94
 AliHFEtpcPIDqa.cxx:95
 AliHFEtpcPIDqa.cxx:96
 AliHFEtpcPIDqa.cxx:97
 AliHFEtpcPIDqa.cxx:98
 AliHFEtpcPIDqa.cxx:99
 AliHFEtpcPIDqa.cxx:100
 AliHFEtpcPIDqa.cxx:101
 AliHFEtpcPIDqa.cxx:102
 AliHFEtpcPIDqa.cxx:103
 AliHFEtpcPIDqa.cxx:104
 AliHFEtpcPIDqa.cxx:105
 AliHFEtpcPIDqa.cxx:106
 AliHFEtpcPIDqa.cxx:107
 AliHFEtpcPIDqa.cxx:108
 AliHFEtpcPIDqa.cxx:109
 AliHFEtpcPIDqa.cxx:110
 AliHFEtpcPIDqa.cxx:111
 AliHFEtpcPIDqa.cxx:112
 AliHFEtpcPIDqa.cxx:113
 AliHFEtpcPIDqa.cxx:114
 AliHFEtpcPIDqa.cxx:115
 AliHFEtpcPIDqa.cxx:116
 AliHFEtpcPIDqa.cxx:117
 AliHFEtpcPIDqa.cxx:118
 AliHFEtpcPIDqa.cxx:119
 AliHFEtpcPIDqa.cxx:120
 AliHFEtpcPIDqa.cxx:121
 AliHFEtpcPIDqa.cxx:122
 AliHFEtpcPIDqa.cxx:123
 AliHFEtpcPIDqa.cxx:124
 AliHFEtpcPIDqa.cxx:125
 AliHFEtpcPIDqa.cxx:126
 AliHFEtpcPIDqa.cxx:127
 AliHFEtpcPIDqa.cxx:128
 AliHFEtpcPIDqa.cxx:129
 AliHFEtpcPIDqa.cxx:130
 AliHFEtpcPIDqa.cxx:131
 AliHFEtpcPIDqa.cxx:132
 AliHFEtpcPIDqa.cxx:133
 AliHFEtpcPIDqa.cxx:134
 AliHFEtpcPIDqa.cxx:135
 AliHFEtpcPIDqa.cxx:136
 AliHFEtpcPIDqa.cxx:137
 AliHFEtpcPIDqa.cxx:138
 AliHFEtpcPIDqa.cxx:139
 AliHFEtpcPIDqa.cxx:140
 AliHFEtpcPIDqa.cxx:141
 AliHFEtpcPIDqa.cxx:142
 AliHFEtpcPIDqa.cxx:143
 AliHFEtpcPIDqa.cxx:144
 AliHFEtpcPIDqa.cxx:145
 AliHFEtpcPIDqa.cxx:146
 AliHFEtpcPIDqa.cxx:147
 AliHFEtpcPIDqa.cxx:148
 AliHFEtpcPIDqa.cxx:149
 AliHFEtpcPIDqa.cxx:150
 AliHFEtpcPIDqa.cxx:151
 AliHFEtpcPIDqa.cxx:152
 AliHFEtpcPIDqa.cxx:153
 AliHFEtpcPIDqa.cxx:154
 AliHFEtpcPIDqa.cxx:155
 AliHFEtpcPIDqa.cxx:156
 AliHFEtpcPIDqa.cxx:157
 AliHFEtpcPIDqa.cxx:158
 AliHFEtpcPIDqa.cxx:159
 AliHFEtpcPIDqa.cxx:160
 AliHFEtpcPIDqa.cxx:161
 AliHFEtpcPIDqa.cxx:162
 AliHFEtpcPIDqa.cxx:163
 AliHFEtpcPIDqa.cxx:164
 AliHFEtpcPIDqa.cxx:165
 AliHFEtpcPIDqa.cxx:166
 AliHFEtpcPIDqa.cxx:167
 AliHFEtpcPIDqa.cxx:168
 AliHFEtpcPIDqa.cxx:169
 AliHFEtpcPIDqa.cxx:170
 AliHFEtpcPIDqa.cxx:171
 AliHFEtpcPIDqa.cxx:172
 AliHFEtpcPIDqa.cxx:173
 AliHFEtpcPIDqa.cxx:174
 AliHFEtpcPIDqa.cxx:175
 AliHFEtpcPIDqa.cxx:176
 AliHFEtpcPIDqa.cxx:177
 AliHFEtpcPIDqa.cxx:178
 AliHFEtpcPIDqa.cxx:179
 AliHFEtpcPIDqa.cxx:180
 AliHFEtpcPIDqa.cxx:181
 AliHFEtpcPIDqa.cxx:182
 AliHFEtpcPIDqa.cxx:183
 AliHFEtpcPIDqa.cxx:184
 AliHFEtpcPIDqa.cxx:185
 AliHFEtpcPIDqa.cxx:186
 AliHFEtpcPIDqa.cxx:187
 AliHFEtpcPIDqa.cxx:188
 AliHFEtpcPIDqa.cxx:189
 AliHFEtpcPIDqa.cxx:190
 AliHFEtpcPIDqa.cxx:191
 AliHFEtpcPIDqa.cxx:192
 AliHFEtpcPIDqa.cxx:193
 AliHFEtpcPIDqa.cxx:194
 AliHFEtpcPIDqa.cxx:195
 AliHFEtpcPIDqa.cxx:196
 AliHFEtpcPIDqa.cxx:197
 AliHFEtpcPIDqa.cxx:198
 AliHFEtpcPIDqa.cxx:199
 AliHFEtpcPIDqa.cxx:200
 AliHFEtpcPIDqa.cxx:201
 AliHFEtpcPIDqa.cxx:202
 AliHFEtpcPIDqa.cxx:203
 AliHFEtpcPIDqa.cxx:204
 AliHFEtpcPIDqa.cxx:205
 AliHFEtpcPIDqa.cxx:206
 AliHFEtpcPIDqa.cxx:207
 AliHFEtpcPIDqa.cxx:208
 AliHFEtpcPIDqa.cxx:209
 AliHFEtpcPIDqa.cxx:210
 AliHFEtpcPIDqa.cxx:211
 AliHFEtpcPIDqa.cxx:212
 AliHFEtpcPIDqa.cxx:213
 AliHFEtpcPIDqa.cxx:214
 AliHFEtpcPIDqa.cxx:215
 AliHFEtpcPIDqa.cxx:216
 AliHFEtpcPIDqa.cxx:217
 AliHFEtpcPIDqa.cxx:218
 AliHFEtpcPIDqa.cxx:219
 AliHFEtpcPIDqa.cxx:220
 AliHFEtpcPIDqa.cxx:221
 AliHFEtpcPIDqa.cxx:222
 AliHFEtpcPIDqa.cxx:223
 AliHFEtpcPIDqa.cxx:224
 AliHFEtpcPIDqa.cxx:225
 AliHFEtpcPIDqa.cxx:226
 AliHFEtpcPIDqa.cxx:227
 AliHFEtpcPIDqa.cxx:228
 AliHFEtpcPIDqa.cxx:229
 AliHFEtpcPIDqa.cxx:230
 AliHFEtpcPIDqa.cxx:231
 AliHFEtpcPIDqa.cxx:232
 AliHFEtpcPIDqa.cxx:233
 AliHFEtpcPIDqa.cxx:234
 AliHFEtpcPIDqa.cxx:235
 AliHFEtpcPIDqa.cxx:236
 AliHFEtpcPIDqa.cxx:237
 AliHFEtpcPIDqa.cxx:238
 AliHFEtpcPIDqa.cxx:239
 AliHFEtpcPIDqa.cxx:240
 AliHFEtpcPIDqa.cxx:241
 AliHFEtpcPIDqa.cxx:242
 AliHFEtpcPIDqa.cxx:243
 AliHFEtpcPIDqa.cxx:244
 AliHFEtpcPIDqa.cxx:245
 AliHFEtpcPIDqa.cxx:246
 AliHFEtpcPIDqa.cxx:247
 AliHFEtpcPIDqa.cxx:248
 AliHFEtpcPIDqa.cxx:249
 AliHFEtpcPIDqa.cxx:250
 AliHFEtpcPIDqa.cxx:251
 AliHFEtpcPIDqa.cxx:252
 AliHFEtpcPIDqa.cxx:253
 AliHFEtpcPIDqa.cxx:254
 AliHFEtpcPIDqa.cxx:255
 AliHFEtpcPIDqa.cxx:256
 AliHFEtpcPIDqa.cxx:257
 AliHFEtpcPIDqa.cxx:258
 AliHFEtpcPIDqa.cxx:259
 AliHFEtpcPIDqa.cxx:260
 AliHFEtpcPIDqa.cxx:261
 AliHFEtpcPIDqa.cxx:262
 AliHFEtpcPIDqa.cxx:263
 AliHFEtpcPIDqa.cxx:264
 AliHFEtpcPIDqa.cxx:265
 AliHFEtpcPIDqa.cxx:266
 AliHFEtpcPIDqa.cxx:267
 AliHFEtpcPIDqa.cxx:268
 AliHFEtpcPIDqa.cxx:269
 AliHFEtpcPIDqa.cxx:270
 AliHFEtpcPIDqa.cxx:271
 AliHFEtpcPIDqa.cxx:272
 AliHFEtpcPIDqa.cxx:273
 AliHFEtpcPIDqa.cxx:274
 AliHFEtpcPIDqa.cxx:275
 AliHFEtpcPIDqa.cxx:276
 AliHFEtpcPIDqa.cxx:277
 AliHFEtpcPIDqa.cxx:278
 AliHFEtpcPIDqa.cxx:279
 AliHFEtpcPIDqa.cxx:280
 AliHFEtpcPIDqa.cxx:281
 AliHFEtpcPIDqa.cxx:282
 AliHFEtpcPIDqa.cxx:283
 AliHFEtpcPIDqa.cxx:284
 AliHFEtpcPIDqa.cxx:285
 AliHFEtpcPIDqa.cxx:286
 AliHFEtpcPIDqa.cxx:287
 AliHFEtpcPIDqa.cxx:288
 AliHFEtpcPIDqa.cxx:289
 AliHFEtpcPIDqa.cxx:290
 AliHFEtpcPIDqa.cxx:291
 AliHFEtpcPIDqa.cxx:292
 AliHFEtpcPIDqa.cxx:293
 AliHFEtpcPIDqa.cxx:294
 AliHFEtpcPIDqa.cxx:295
 AliHFEtpcPIDqa.cxx:296
 AliHFEtpcPIDqa.cxx:297
 AliHFEtpcPIDqa.cxx:298
 AliHFEtpcPIDqa.cxx:299
 AliHFEtpcPIDqa.cxx:300
 AliHFEtpcPIDqa.cxx:301
 AliHFEtpcPIDqa.cxx:302
 AliHFEtpcPIDqa.cxx:303
 AliHFEtpcPIDqa.cxx:304
 AliHFEtpcPIDqa.cxx:305
 AliHFEtpcPIDqa.cxx:306
 AliHFEtpcPIDqa.cxx:307
 AliHFEtpcPIDqa.cxx:308
 AliHFEtpcPIDqa.cxx:309
 AliHFEtpcPIDqa.cxx:310
 AliHFEtpcPIDqa.cxx:311
 AliHFEtpcPIDqa.cxx:312
 AliHFEtpcPIDqa.cxx:313
 AliHFEtpcPIDqa.cxx:314
 AliHFEtpcPIDqa.cxx:315
 AliHFEtpcPIDqa.cxx:316
 AliHFEtpcPIDqa.cxx:317
 AliHFEtpcPIDqa.cxx:318
 AliHFEtpcPIDqa.cxx:319
 AliHFEtpcPIDqa.cxx:320
 AliHFEtpcPIDqa.cxx:321
 AliHFEtpcPIDqa.cxx:322
 AliHFEtpcPIDqa.cxx:323
 AliHFEtpcPIDqa.cxx:324
 AliHFEtpcPIDqa.cxx:325
 AliHFEtpcPIDqa.cxx:326
 AliHFEtpcPIDqa.cxx:327
 AliHFEtpcPIDqa.cxx:328
 AliHFEtpcPIDqa.cxx:329
 AliHFEtpcPIDqa.cxx:330
 AliHFEtpcPIDqa.cxx:331
 AliHFEtpcPIDqa.cxx:332
 AliHFEtpcPIDqa.cxx:333
 AliHFEtpcPIDqa.cxx:334
 AliHFEtpcPIDqa.cxx:335
 AliHFEtpcPIDqa.cxx:336
 AliHFEtpcPIDqa.cxx:337
 AliHFEtpcPIDqa.cxx:338
 AliHFEtpcPIDqa.cxx:339
 AliHFEtpcPIDqa.cxx:340
 AliHFEtpcPIDqa.cxx:341
 AliHFEtpcPIDqa.cxx:342
 AliHFEtpcPIDqa.cxx:343
 AliHFEtpcPIDqa.cxx:344
 AliHFEtpcPIDqa.cxx:345
 AliHFEtpcPIDqa.cxx:346
 AliHFEtpcPIDqa.cxx:347
 AliHFEtpcPIDqa.cxx:348
 AliHFEtpcPIDqa.cxx:349
 AliHFEtpcPIDqa.cxx:350
 AliHFEtpcPIDqa.cxx:351
 AliHFEtpcPIDqa.cxx:352
 AliHFEtpcPIDqa.cxx:353
 AliHFEtpcPIDqa.cxx:354
 AliHFEtpcPIDqa.cxx:355
 AliHFEtpcPIDqa.cxx:356
 AliHFEtpcPIDqa.cxx:357
 AliHFEtpcPIDqa.cxx:358
 AliHFEtpcPIDqa.cxx:359
 AliHFEtpcPIDqa.cxx:360
 AliHFEtpcPIDqa.cxx:361
 AliHFEtpcPIDqa.cxx:362
 AliHFEtpcPIDqa.cxx:363
 AliHFEtpcPIDqa.cxx:364
 AliHFEtpcPIDqa.cxx:365
 AliHFEtpcPIDqa.cxx:366
 AliHFEtpcPIDqa.cxx:367
 AliHFEtpcPIDqa.cxx:368
 AliHFEtpcPIDqa.cxx:369
 AliHFEtpcPIDqa.cxx:370
 AliHFEtpcPIDqa.cxx:371
 AliHFEtpcPIDqa.cxx:372
 AliHFEtpcPIDqa.cxx:373
 AliHFEtpcPIDqa.cxx:374
 AliHFEtpcPIDqa.cxx:375
 AliHFEtpcPIDqa.cxx:376
 AliHFEtpcPIDqa.cxx:377
 AliHFEtpcPIDqa.cxx:378