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 AliHFEtofPIDqa
//
// Monitoring TOF PID in the HFE PID montioring framework. The following
// quantities are monitored:
//   TOF time distance to electron hypothesis (Number of sigmas)
//   TOF time distance to the pion hypothesis (Absolute value)
//   TPC dE/dx (Number of sigmas, as control histogram)
// (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 <TClass.h>
#include <TArrayD.h>
#include <TH2.h>
#include <THnSparse.h>
#include <TString.h>

#include "AliLog.h"
#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliVParticle.h"

#include "AliHFEcollection.h"
#include "AliHFEpid.h"
#include "AliHFEpidBase.h"
#include "AliHFEpidQAmanager.h"
#include "AliHFEpidTPC.h"
#include "AliHFEpidTRD.h"
#include "AliHFEpidTOF.h"
#include "AliHFEtools.h"
#include "AliHFEtofPIDqa.h"

ClassImp(AliHFEpidTOF)

//_________________________________________________________
AliHFEtofPIDqa::AliHFEtofPIDqa():
    AliHFEdetPIDqa()
  , fHistos(NULL)
{
  //
  // Dummy constructor
  //
}

//_________________________________________________________
AliHFEtofPIDqa::AliHFEtofPIDqa(const char* name):
    AliHFEdetPIDqa(name, "QA for TOF")
  , fHistos(NULL)
{
  //
  // Default constructor
  //
}

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

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

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

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

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

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

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

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

  fHistos = new AliHFEcollection("tofqahistos", "Collection of TOF QA histograms");

  // Make common binning
  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.;
  // Quantities where one can switch between low and high resolution
  Int_t kPbins = fQAmanager->HasHighResolutionHistos() ?  1000 : 100;
  Int_t kSigmaBins = fQAmanager->HasHighResolutionHistos() ? 1400 : 140;

  // 1st histogram: TOF sigmas: (species, p nsigma, step)
  Int_t nBinsSigma[5] = {kPIDbins, kPbins, kSigmaBins, kSteps, kCentralityBins};
  Double_t minSigma[5] = {kMinPID, kMinP, -12., 0, 0};
  Double_t maxSigma[5] = {kMaxPID, kMaxP, 12., 2., 11.};
  fHistos->CreateTHnSparse("tofnSigma", "TOF signal; species; p [GeV/c]; TOF signal [a.u.]; Selection Step; Centrality", 5, nBinsSigma, minSigma, maxSigma);

  // 3rd histogram: TPC sigmas to the electron line: (species, p nsigma, step - only filled if apriori PID information available)
  fHistos->CreateTHnSparse("tofMonitorTPC", "TPC signal; species; p [GeV/c]; TPC signal [a.u.]; Selection Step; Centrality", 5, nBinsSigma, minSigma, maxSigma);

  // 4th histogram: TOF mismatch template
  AliHFEpidTOF *tofpid = dynamic_cast<AliHFEpidTOF *>(fQAmanager->GetDetectorPID(AliHFEpid::kTOFpid));
  if(!tofpid) AliDebug(1, "TOF PID not available");
  if(tofpid && tofpid->IsGenerateTOFmismatch()){
    AliDebug(1, "Prepare histogram for TOF mismatch tracks");
    fHistos->CreateTHnSparse("tofMismatch", "TOF signal; species; p [GeV/c]; TOF signal [a.u.]; Selection Step; Centrality", 5, nBinsSigma, minSigma, maxSigma);
  }
}

//_________________________________________________________
void AliHFEtofPIDqa::ProcessTrack(const AliHFEpidObject *track, AliHFEdetPIDqa::EStep_t step){
  //
  // Fill TPC histograms
  //
  //AliHFEpidObject::AnalysisType_t anatype = track->IsESDanalysis() ? AliHFEpidObject::kESDanalysis : AliHFEpidObject::kAODanalysis;
  //AliHFEpidObject::AnalysisType_t anatype = track->IsESDanalysis() ? AliHFEpidObject::kESDanalysis : AliHFEpidObject::kAODanalysis;

  Float_t centrality = track->GetCentrality();
  Int_t species = track->GetAbInitioPID();
  if(species >= AliPID::kSPECIES) species = -1;

  AliDebug(1, Form("Monitoring particle of type %d for step %d", species, step));
  AliHFEpidTOF *tofpid= dynamic_cast<AliHFEpidTOF *>(fQAmanager->GetDetectorPID(AliHFEpid::kTOFpid));
  
  const AliPIDResponse *pidResponse = tofpid ? tofpid->GetPIDResponse() : NULL;
  Double_t contentSignal[5];
  contentSignal[0] = species;
  contentSignal[1] = track->GetRecTrack()->P();
  contentSignal[2] = pidResponse ? pidResponse->NumberOfSigmasTOF(track->GetRecTrack(), AliPID::kElectron): 0.;
  contentSignal[3] = step;
  contentSignal[4] = centrality;
  fHistos->Fill("tofnSigma", contentSignal);
  contentSignal[2] = pidResponse ? pidResponse->NumberOfSigmasTPC(track->GetRecTrack(), AliPID::kElectron) : 0.;
  fHistos->Fill("tofMonitorTPC", contentSignal);

  if(tofpid && tofpid->IsGenerateTOFmismatch()){
    AliDebug(1,"Filling TOF mismatch histos");
    TArrayD nsigmismatch(tofpid->GetNmismatchTracks());
    tofpid->GenerateTOFmismatch(track->GetRecTrack(),tofpid->GetNmismatchTracks(), nsigmismatch);
    for(int itrk = 0; itrk < tofpid->GetNmismatchTracks(); itrk++){
      contentSignal[2] = nsigmismatch[itrk];
      fHistos->Fill("tofMismatch",contentSignal);
    }
  }
}

//_________________________________________________________
TH2 *AliHFEtofPIDqa::MakeTPCspectrumNsigma(AliHFEdetPIDqa::EStep_t step, Int_t species, Int_t centralityClass){
  //
  // Get the TPC control histogram for the TRD selection step (either before or after PID)
  //
  THnSparseF *histo = dynamic_cast<THnSparseF *>(fHistos->Get("tofMonitorTPC"));
  if(!histo){
    AliError("QA histogram monitoring TPC nSigma not available");
    return NULL;
  }
  if(species > -1 && species < AliPID::kSPECIES){
    // cut on species (if available)
    histo->GetAxis(0)->SetRange(species + 2, species + 2); // undef + underflow
  }
  TString centname, centtitle;
  Bool_t hasCentralityInfo = kTRUE;
  if(centralityClass > -1){
    if(histo->GetNdimensions() < 5){
      AliError("Centrality Information not available");
      centname = centtitle = "MinBias";
      hasCentralityInfo = kFALSE;
    } else {
      // Project centrality classes
      // -1 is Min. Bias
      histo->GetAxis(4)->SetRange(centralityClass+1, centralityClass+1);
      centname = Form("Cent%d", centralityClass);
      centtitle = Form("Centrality %d", centralityClass);
    }
  } else {
    histo->GetAxis(4)->SetRange(1, histo->GetAxis(4)->GetNbins()-1);
    centname = centtitle = "MinBias";
    hasCentralityInfo = kTRUE;
  }
  histo->GetAxis(3)->SetRange(step + 1, step + 1); 

  TH2 *hSpec = histo->Projection(2, 1);
  // construct title and name
  TString stepname = step == AliHFEdetPIDqa::kBeforePID ? "before" : "after";
  TString speciesname = species > -1 && species < AliPID::kSPECIES ? AliPID::ParticleName(species) : "all Particles";
  TString specID = species > -1 && species < AliPID::kSPECIES ? AliPID::ParticleName(species) : "unid";
  TString histname = Form("hSigmaTPC%s%s%s", specID.Data(), stepname.Data(), centname.Data());
  TString histtitle = Form("TPC Sigma for %s %s PID %s", speciesname.Data(), stepname.Data(), centtitle.Data());
  hSpec->SetName(histname.Data());
  hSpec->SetTitle(histtitle.Data());

  // Unset range on the original histogram
  histo->GetAxis(0)->SetRange(0, histo->GetAxis(0)->GetNbins());
  histo->GetAxis(3)->SetRange(0, histo->GetAxis(3)->GetNbins());
  if(hasCentralityInfo)histo->GetAxis(4)->SetRange(0, histo->GetAxis(4)->GetNbins());
  return hSpec; 
}

//_________________________________________________________
TH2 *AliHFEtofPIDqa::MakeSpectrumNSigma(AliHFEdetPIDqa::EStep_t istep, Int_t species, Int_t centralityClass){
  //
  // Plot the Spectrum
  //
  THnSparseF *hSignal = dynamic_cast<THnSparseF *>(fHistos->Get("tofnSigma"));
  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 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
      AliInfo(Form("Centrality Class: %d", centralityClass));
      hSignal->GetAxis(4)->SetRange(centralityClass+1, centralityClass+1);
      centname = Form("Cent%d", centralityClass);
      centtitle = Form("Centrality %d", centralityClass);
    }
  } else {
    hSignal->GetAxis(4)->SetRange(1, hSignal->GetAxis(4)->GetNbins()-1);
    centname = centtitle = "MinBias";
    hasCentralityInfo = kTRUE;
  }
  TH2 *hTmp = hSignal->Projection(2,1);
  TString hname = Form("hTOFsigma%s%s", istep == AliHFEdetPIDqa::kBeforePID ? "before" : "after", centname.Data()), 
          htitle = Form("Time-of-flight spectrum[#sigma] %s selection %s", istep == AliHFEdetPIDqa::kBeforePID ? "before" : "after", centtitle.Data());
  if(species > -1){
    hname += AliPID::ParticleName(species);
    htitle += Form(" for %ss", AliPID::ParticleName(species));
  }
  hTmp->SetName(hname.Data());
  hTmp->SetTitle(htitle.Data());
  hTmp->SetStats(kFALSE);
  hTmp->GetXaxis()->SetTitle("p [GeV/c]");
  hTmp->GetYaxis()->SetTitle("TOF time|_{el} - expected time|_{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;
}

//_________________________________________________________
TH1 *AliHFEtofPIDqa::GetHistogram(const char *name){
  // 
  // Get the histogram
  //
  if(!fHistos) return NULL;
  TObject *histo = fHistos->Get(name);
  if(!histo->InheritsFrom("TH1")) return NULL;
  return dynamic_cast<TH1 *>(histo);
}

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