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.                  *
**************************************************************************/
//
// Debug tree task
// 
// Authors:
//   Markus Fasel <M.Fasel@gsi.de>
//
#include <TBits.h>
#include <TString.h>

#include "AliAnalysisManager.h"
#include "AliCentrality.h"
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
#include "AliESDVertex.h"
#include "AliHFEcuts.h"
#include "AliHFEsignalCuts.h"
#include "AliInputEventHandler.h"
#include "AliLog.h"
#include "AliMCEvent.h"
#include "AliMCEventHandler.h"
#include "AliMCParticle.h"
#include "AliStack.h"
#include "AliPIDResponse.h"
#include "AliTrackReference.h"
#include "AliVEvent.h"
#include "AliHFEpidTPC.h"
#include "AliHFEpidTRD.h"
#include "AliHFEmcQA.h"
#include "TTreeStream.h"

#include "AliHFEdebugTreeTask.h"

ClassImp(AliHFEdebugTreeTask)

AliHFEdebugTreeTask::AliHFEdebugTreeTask():
  AliAnalysisTaskSE(),
  fTrackCuts(NULL),
  fSignalCuts(NULL),
  fTRDpid(NULL),
  fTPCpid(NULL),
  fExtraCuts(NULL),
  fNclustersTPC(70),
  fNclustersTPCPID(0),
  fNclustersITS(2),
  fFilename("HFEtree.root"),
  fDebugTree(NULL),
  fNparents(-1)
{

}

AliHFEdebugTreeTask::AliHFEdebugTreeTask(const char *name):
  AliAnalysisTaskSE(name),
  fTrackCuts(NULL),
  fSignalCuts(NULL),
  fTRDpid(NULL),
  fTPCpid(NULL),
  fExtraCuts(NULL),
  fNclustersTPC(70),
  fNclustersTPCPID(0),
  fNclustersITS(2),
  fFilename("HFEtree.root"),
  fDebugTree(NULL),
  fNparents(-1)
{
  fTRDpid = new AliHFEpidTRD("QAtrdPID");
  fTPCpid = new AliHFEpidTPC("QAtpcPID");
}

AliHFEdebugTreeTask::~AliHFEdebugTreeTask(){
    if(fDebugTree) delete fDebugTree;
    if(fTRDpid) delete fTRDpid;
    if(fTPCpid) delete fTPCpid;
}

void AliHFEdebugTreeTask::UserCreateOutputObjects(){
  //
  // Create debug tree, signal cuts and track cuts
  //
  fDebugTree = new TTreeSRedirector(fFilename.Data());

  fSignalCuts = new AliHFEsignalCuts("HFEsignalCuts", "HFE MC Signal definition");

  fTrackCuts = new AliHFEcuts("fTrackCuts", "Basic HFE track cuts");
  fTrackCuts->CreateStandardCuts();
  // Track cuts
  fTrackCuts->SetMinNClustersTPC(fNclustersTPC);
  fTrackCuts->SetMinRatioTPCclusters(0);
  fTrackCuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable); 
  fTrackCuts->SetMinNClustersTPCPID(fNclustersTPCPID);
  fTrackCuts->SetMinNClustersITS(fNclustersITS);
  // Event cuts
  fTrackCuts->SetUseMixedVertex(kTRUE);
  fTrackCuts->SetVertexRange(10.);
  fTrackCuts->Initialize();

  fExtraCuts = new AliHFEextraCuts("hfeExtraCuts","HFE Extra Cuts");

}

void AliHFEdebugTreeTask::UserExec(Option_t *){
  //
  // User Exec: Fill debug Tree
  // 

  // Get PID response
  AliPIDResponse *pid = NULL;
  AliInputEventHandler *handler = dynamic_cast<AliInputEventHandler *>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
  if(handler){
    pid = handler->GetPIDResponse();
  } else {
    AliError("No Handler");
  }
  if(!pid){
    AliError("No PID response");
    return;
  }
  if(!fInputEvent) {
    AliError("No Input event");
    return;
  }

  AliESDtrack copyTrack;
  
  fTrackCuts->SetRecEvent(fInputEvent);

  // Cut event
  if(fInputEvent->IsPileupFromSPD(3, 0.8, 3., 2., 5)){
  AliDebug(1, "Event flagged as pileup\n");
    return;
  }
  if(!fTrackCuts->CheckEventCuts("fCutsEvRec", fInputEvent)){
    AliDebug(1, "Event rejected by the event cuts\n");
    return;
  }

  // Get run number
  Int_t run = fInputEvent->GetRunNumber();

  // Derive trigger 
  UInt_t trigger = fInputHandler->IsEventSelected();
  Bool_t isMBTrigger = trigger & AliVEvent::kMB;
  Bool_t isCentralTrigger = trigger & AliVEvent::kCentral;
  Bool_t isSemicentralTrigger = trigger & AliVEvent::kSemiCentral;
  Bool_t isEMCALTrigger = trigger & AliVEvent::kEMCEJE;

  // Check if MC information is available
  Bool_t mcthere = dynamic_cast<AliMCEventHandler *>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()) != NULL;
  if(mcthere){ 
    fTrackCuts->SetMCEvent(fMCEvent);
    fSignalCuts->SetMCEvent(fMCEvent);
  }

  // MC get stack
  AliStack* stack = 0x0;
  if(mcthere){
      stack = fMCEvent->Stack();
      if(!stack) AliError("No Stack");
  }

  // Get Primary Vertex
  const AliVVertex *vertex = fInputEvent->GetPrimaryVertex();
  Double_t vtx[3];
  vertex->GetXYZ(vtx);
  Double_t ncontrib = fInputEvent->GetPrimaryVertex()->GetNContributors();

  // Get centrality
  Float_t centrality = -1.;
  AliESDEvent *event = (dynamic_cast<AliESDEvent *>(fInputEvent));
  if(!event) return;
  TString beamtype = event->GetBeamType();
  //printf("Beam type %s\n",(const char*)beamtype);
  if(!beamtype.CompareTo("Pb-Pb") || !beamtype.CompareTo("A-A")){
    // Heavy ion run
    AliDebug(1, "Heavy-Ion event\n");
    AliCentrality *hicent = fInputEvent->GetCentrality();
    centrality = hicent->GetCentralityPercentile("V0M");
  }

  if(!fExtraCuts){
    fExtraCuts = new AliHFEextraCuts("hfeExtraCuts","HFE Extra Cuts");
  }
  fExtraCuts->SetRecEventInfo(event);

  // Store event selection variables
  (*fDebugTree) << "EventDebug"
                << "Centrality="              << centrality
                << "VertexZ="                 << vtx[2]
                << "NumberOfContributors="    << ncontrib
                << "run="                     << run
                << "\n";

  // Common variables
  Double_t charge, eta, phi, momentum, transversemomentum;
  Int_t source;
      
  // Monte-Carlo loop
  if(mcthere){
    AliMCParticle * mcpart;
    for(Int_t itrk = 0; itrk < fMCEvent->GetNumberOfTracks(); itrk++){
      mcpart = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(itrk));
      if(!mcpart) continue;
      if(!fTrackCuts->CheckParticleCuts(static_cast<UInt_t>(AliHFEcuts::kStepMCGenerated), mcpart)) continue;
      // Kinematics
      charge = mcpart->Charge() > 0. ? 1. : -1.;
      momentum = mcpart->P() * charge;
      transversemomentum = mcpart->Pt() * charge;
      eta = mcpart->Eta();
      phi = mcpart->Phi();
      Int_t pdg = mcpart->Particle()->GetPdgCode();
      
      // Get Production Vertex in radial direction
      Double_t vx = mcpart->Particle()->Vx(), 
              vy = mcpart->Particle()->Vy(); 
      Double_t productionVertex = TMath::Sqrt(vx*vx+vy*vy);
      
      // Get Mother PDG code of the particle
      Int_t motherPdg = 0;
      Int_t motherlabel = mcpart->Particle()->GetFirstMother();
      if(motherlabel >= 0 && motherlabel < fMCEvent->GetNumberOfTracks()){
        AliMCParticle *mother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(motherlabel));
        if(mother) motherPdg = mother->Particle()->GetPdgCode();
      }
      
      // derive source
      source = 5;
      if(fSignalCuts->IsCharmElectron(mcpart)) source = 0;
      else if(fSignalCuts->IsBeautyElectron(mcpart)) source = 1;
      else if(fSignalCuts->IsGammaElectron(mcpart)) source = 2;
      else if(fSignalCuts->IsNonHFElectron(mcpart)) source = 3;
      else if(TMath::Abs(pdg) == 11) source = 4;
      else source = 5;
      
      // Momemntum at the inner wall of the TPC
      /*
      Double_t pTPC = 0., ptTPC = 0.;
      AliTrackReference *ref = FindTrackReference(mcpart, 80, 270, AliTrackReference::kTPC);
      if(ref){
        pTPC = ref->P();
        ptTPC = ref->Pt();
      }
      */


    (*fDebugTree) << "MCDebug"
                    << "centrality="          << centrality
                    << "MBtrigger="           << isMBTrigger 
                    << "CentralTrigger="      << isCentralTrigger
                    << "SemicentralTrigger="  << isSemicentralTrigger
                    << "EMCALtrigger="        << isEMCALTrigger
                    << "run="                 << run
                    << "p="                   << momentum
                    << "pt="                  << transversemomentum
                    << "eta="                 << eta
                    << "phi="                 << phi
                    << "pdg="                 << pdg
                    << "ProductionVertex="    << productionVertex
                    << "motherPdg="           << motherPdg
                    << "source="              << source
                    << "\n";
    }
  }
  
  AliESDtrack *track;
  Double_t mcp, mcpt, mcptTPC, mcpTPC;  // MC Variables added to the debug tree
  for(Int_t itrack = 0; itrack < fInputEvent->GetNumberOfTracks(); itrack++){
    // fill the tree
    track = dynamic_cast<AliESDtrack *>(fInputEvent->GetTrack(itrack));
    if(!track) continue;
    // Cut track (Only basic track cuts)
    if(!fTrackCuts->CheckParticleCuts(AliHFEcuts::kNcutStepsMCTrack + AliHFEcuts::kStepRecKineITSTPC, track)) continue;
    // Debug streaming of PID-related quantities
    copyTrack.~AliESDtrack();
    new(&copyTrack) AliESDtrack(*track);
    if(fTPCpid->HasEtaCorrection()) fTPCpid->ApplyEtaCorrection(&copyTrack, AliHFEpidObject::kESDanalysis); // Apply Eta Correction on copy track
    Double_t nSigmaTOF = pid->NumberOfSigmasTOF(track, AliPID::kElectron);
    Double_t nSigmaTPC = pid->NumberOfSigmasTPC(&copyTrack, AliPID::kElectron);
    //if(TMath::Abs(nSigmaTOF) > 5) continue;
    // we are not interested in tracks which are more than 5 sigma away from the electron hypothesis in either TOF or TPC
    Double_t tPCdEdx = copyTrack.GetTPCsignal();
    // Signal, source and MCPID
    Bool_t signal = kTRUE;
    source = 5;
    mcp = mcpt = mcpTPC = mcptTPC = 0.;



    Double_t bgcategory = 0.;
    Int_t mArr = -1;
    Int_t mesonID = -999;
    Double_t xr[3]={-999,-999,-999};
    Double_t eR=-999;
    Double_t eZ=-999;
    Double_t unique=-999;
    Double_t mesonunique=-999;
    Double_t mesonR=-999;
    Double_t mesonZ=-999;
    Double_t mesonMomPdg=-999;
    Double_t mesonMomPt=-999;
    Double_t mesonGMomPdg=-999;
    Double_t mesonGGMomPdg=-999;
    Double_t mesonPt = -999;
    Double_t mceta = -999;
    Double_t mcphi = -999;
    Int_t mcpdg;

    if(mcthere){
      // Signal
      AliMCParticle *mctrack;
      if((mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(track->GetLabel()))))){
        if(!fTrackCuts->CheckParticleCuts(AliHFEcuts::kStepMCGenerated, mctrack)) signal = kFALSE; 
      }
  
      // Source
      if(fSignalCuts->IsCharmElectron(track)) source = 0;
      else if(fSignalCuts->IsBeautyElectron(track)) source = 1;
      else if(fSignalCuts->IsGammaElectron(track)) source = 2;
      else if(fSignalCuts->IsNonHFElectron(track)) source = 3;
      else if(mctrack && (TMath::Abs(mctrack->Particle()->GetPdgCode()) == 11)) source = 4;
      else source = 5;

      if(!mctrack) continue;

      // Kinematics
      mcpt  = mctrack->Pt();
      mcp   = mctrack->P();
      mceta = mctrack->Eta();
      mcphi = mctrack->Phi();
      mcpdg = mctrack->Particle()->GetPdgCode();

      AliTrackReference *ref = FindTrackReference(mctrack, 80, 270, AliTrackReference::kTPC);
      if(ref){
        mcpTPC = ref->P();
        mcptTPC = ref->Pt();
      }

    
      TParticle *mctrack1 = mctrack->Particle();
      mesonID=GetElecSourceMC(mctrack1);
      if(mesonID==AliHFEmcQA::kGammaPi0 || mesonID==AliHFEmcQA::kPi0) mArr=0;                //pion
      else if(mesonID==AliHFEmcQA::kGammaEta || mesonID==AliHFEmcQA::kEta) mArr=1;           //eta
      else if(mesonID==AliHFEmcQA::kGammaOmega || mesonID==AliHFEmcQA::kOmega) mArr=2;       //omega
      else if(mesonID==AliHFEmcQA::kGammaPhi || mesonID==AliHFEmcQA::kPhi) mArr=3;           //phi
      else if(mesonID==AliHFEmcQA::kGammaEtaPrime || mesonID==AliHFEmcQA::kEtaPrime) mArr=4; //etaprime
      else if(mesonID==AliHFEmcQA::kGammaRho0 || mesonID==AliHFEmcQA::kRho0) mArr=5;         //rho
    
      mctrack->XvYvZv(xr);
    
      eR= TMath::Sqrt(xr[0]*xr[0]+xr[1]*xr[1]);
      eZ = xr[2];
      TParticle *mctrackt = mctrack->Particle();
      unique=mctrackt->GetUniqueID();
    
      AliMCParticle *mctrackmother = NULL;
      AliMCParticle *mctrackmother2 = NULL;

      if(!(mArr<0)){
    if(mesonID>=AliHFEmcQA::kGammaPi0) {  // conversion electron, be careful with the enum odering
        Int_t glabel=TMath::Abs(mctrack->GetMother()); // gamma label
        if((mctrackmother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel)))){
      glabel=TMath::Abs(mctrackmother->GetMother()); // gamma's mother's label
      if((mctrackmother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel)))){
          mesonPt = mctrackmother->Pt(); //meson pt
          bgcategory = 1.;
          mctrackmother->XvYvZv(xr);
          mesonR = TMath::Sqrt(xr[0]*xr[0]+xr[1]*xr[1]);
          mesonZ = xr[2];

          mctrackt = mctrackmother->Particle();
          if(mctrackt){
            mesonunique = mctrackt->GetUniqueID();
          }

        Int_t glabel2=TMath::Abs(mctrackmother->GetMother()); // gamma's mother's mother
        if((mctrackmother2 = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel2)))){
            mesonMomPdg=mctrackmother2->PdgCode();
            mesonMomPt=mctrackmother2->Pt();
        }

          if(glabel>fMCEvent->GetNumberOfPrimaries()) {
        bgcategory = 2.;
        glabel=TMath::Abs(mctrackmother->GetMother()); // gamma's mother's mother
        if((mctrackmother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel)))){
            mesonMomPdg=mctrackmother->PdgCode();
            mesonMomPt=mctrackmother->Pt();
            if(TMath::Abs(mctrackmother->PdgCode())==310){
          bgcategory = 3.;
          glabel=TMath::Abs(mctrackmother->GetMother()); // gamma's mother's mother's mother
          if((mctrackmother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel)))){
              mesonGMomPdg=mctrackmother->PdgCode();
              glabel=TMath::Abs(mctrackmother->GetMother()); // gamma's mother's mother
              if((mctrackmother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel)))){
            mesonGGMomPdg=mctrackmother->PdgCode();
              }
          }
            }
        }
          }
      }
        }
    }
    else{ // nonHFE except for the conversion electron
        Int_t glabel=TMath::Abs(mctrack->GetMother());
        if((mctrackmother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel)))){
      mesonPt = mctrackmother->Pt(); //meson pt
      bgcategory = -1.;
      mctrackmother->XvYvZv(xr);
      mesonR = TMath::Sqrt(xr[0]*xr[0]+xr[1]*xr[1]);
      mesonZ = xr[2];

      mctrackt = mctrackmother->Particle();
      if(mctrackt){
          mesonunique = mctrackt->GetUniqueID();
      }
      if(glabel>fMCEvent->GetNumberOfPrimaries()) {
          bgcategory = -2.;
          glabel=TMath::Abs(mctrackmother->GetMother()); // gamma's mother's mother
          if((mctrackmother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel)))){
        mesonMomPdg=mctrackmother->PdgCode();
        mesonMomPt=mctrackmother->Pt();
        if(TMath::Abs(mctrackmother->PdgCode())==310){
            bgcategory = -3.;
            glabel=TMath::Abs(mctrackmother->GetMother()); // gamma's mother's mother's mother
            if((mctrackmother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel)))){
                                  mesonGMomPdg=mctrackmother->PdgCode();
          glabel=TMath::Abs(mctrackmother->GetMother()); // gamma's mother's mother
          if((mctrackmother = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(glabel)))){
                                    mesonGGMomPdg=mctrackmother->PdgCode();
          }
            }
        }
          }
      }
        }
    }
      }



    }
    // Get V0 tag (if available)
    Int_t v0pid = -1;
    if(track->TestBit(BIT(14))) v0pid = AliPID::kElectron;
    else if(track->TestBit(BIT(15))) v0pid = AliPID::kPion;
    else if(track->TestBit(BIT(16))) v0pid = AliPID::kProton;
    // Kinematics
    charge = track->Charge() > 0 ? 1. : -1.;
    eta = track->Eta();
    phi = track->Phi();
    momentum = track->P() * charge;
    transversemomentum = track->Pt() * charge;
    Double_t momentumTPC = track->GetTPCInnerParam() ? track->GetTPCInnerParam()->P() : 0.;
    Double_t transversemomentumTPC = track->GetTPCInnerParam() ? track->GetTPCInnerParam()->Pt() : 0.;
    // ITS number of clusters
    UChar_t nclustersITS = track->GetITSclusters(NULL);
    Double_t chi2matching =  track->GetChi2TPCConstrainedVsGlobal(dynamic_cast<const AliESDVertex *>(vertex));
    Double_t chi2PerClusterITS = 0.0;
    if (nclustersITS != 0) chi2PerClusterITS = track->GetITSchi2() / Float_t(nclustersITS);
    // TPC number of clusters (different definitions)
    UChar_t nclustersTPCfit = track->GetTPCNcls();
    UChar_t nclustersTPCall = 0;
    const TBits &clusterTPC = track->GetTPCClusterMap();
    nclustersTPCall = clusterTPC.CountBits();
    UChar_t nclustersTPCPID = track->GetTPCsignalN();
    UChar_t nfindableTPC =  track->GetTPCNclsF();
    Double_t clusterRatioTPCfit = 0.0;
    if((static_cast<Double_t>(nfindableTPC))>0.0) clusterRatioTPCfit = static_cast<Double_t>(nclustersTPCfit)/static_cast<Double_t>(nfindableTPC);
    Double_t clusterRatioTPCall = 0.0;
    if((static_cast<Double_t>(nfindableTPC))>0.0) clusterRatioTPCall = static_cast<Double_t>(nclustersTPCall)/static_cast<Double_t>(nfindableTPC);
    UChar_t nclustersTPCshared = 0;
    Float_t ncrossedRowsTPC = track->GetTPCCrossedRows();
    const TBits &sharedTPC = track->GetTPCSharedMap();
    for(Int_t ibit = 0; ibit < 160; ibit++) if(sharedTPC.TestBitNumber(ibit)) nclustersTPCshared++;
    // TRD clusters and tracklets
    UChar_t nclustersTRD = track->GetTRDncls();
    UChar_t ntrackletsTRDPID = track->GetTRDntrackletsPID();
    // ITS and TRD acceptance maps
    UChar_t hasClusterITS[6], statusITS[6], hasTrackletTRD[6];
    UChar_t itsPixel = track->GetITSClusterMap();
    for(Int_t icl = 0; icl < 6; icl++){ 
      hasClusterITS[icl] = TESTBIT(itsPixel, icl) ? 1 : 0;
      if(CheckITSstatus(track, icl)) statusITS[icl] = 1;
      else statusITS[icl] = 0;
    }
    Double_t trddEdxSum[6];
    for(Int_t a=0;a<6;a++) { trddEdxSum[a]= 0.;}
    for(Int_t itl = 0; itl < 6; itl++){
      Int_t nSliceNonZero = 0;
      trddEdxSum[itl] = track->GetTRDslice(itl, 0); // in new reconstruction slice 0 contains the total charge
      for(Int_t islice = 0; islice < 8; islice++){
        if(track->GetTRDslice(itl, islice) > 0.001) nSliceNonZero++;
      }
      hasTrackletTRD[itl] = nSliceNonZero ? 1 : 0;
    }
    // TRD PID
    Double_t pidprobs[5];
    track->GetTRDpid(pidprobs);
    Double_t likeEleTRD = pidprobs[0];
    Double_t likeEleTRDn = likeEleTRD/(likeEleTRD + pidprobs[2]);
    Double_t trdtruncmean1 = fTRDpid->GetTRDSignalV1(track, 0.6);
    Double_t trdtruncmean2 = fTRDpid->GetTRDSignalV2(track, 0.6);

    // DCA
    Float_t b[2] = {0.,0.};
    Float_t bCov[3] = {0.,0.,0.};
    track->GetImpactParameters(b,bCov);
    Double_t dca = TMath::Sqrt(b[0]*b[0]+b[1]*b[1]); // impact parameter space
    Double_t dcaSR=0, dcaSZ=0;
    if(bCov[0]>0) dcaSR = b[0]/TMath::Sqrt(bCov[0]); // normalised impact parameter xy
    if(bCov[2]>0) dcaSZ = b[1]/TMath::Sqrt(bCov[2]); // normalised impact parameter z
    Double_t dcaS = AliESDtrackCuts::GetSigmaToVertex(track); // n_sigma

    // HFE DCA
    Double_t hfeb[2] = {-99.,-99.};
    Double_t hfebCov[3] = {-999.,-999.,-999.};
    fExtraCuts->GetHFEImpactParameters(track, hfeb, hfebCov);

    Double_t tofdx= -999.0;
    Double_t tofdz= -999.0;
    tofdx=track->GetTOFsignalDx();
    tofdz=track->GetTOFsignalDz();

    // TOF track status
    UInt_t status = 0;
    status = track->GetStatus();
    Bool_t hasTOFout  = status&AliESDtrack::kTOFout; 
    Bool_t hasTOFtime = status&AliESDtrack::kTIME;
    Bool_t hasTOFpid  = status&AliESDtrack::kTOFpid;
    Bool_t hasgoodTOF     = kFALSE;
    if (hasTOFout && hasTOFtime && hasTOFpid) hasgoodTOF = kTRUE;

    // TRD track status
    Bool_t hasTRDin = status&AliESDtrack::kTRDin;


    // TOF mismatch (particle spectra group)
    Int_t mismatchlevel=0; // default value; in data always 0
    if(mcthere){
	Int_t tofLabel[3];
	track->GetTOFLabel(tofLabel);
        if(TMath::Abs(track->GetLabel()) != TMath::Abs(tofLabel[0]) || tofLabel[1] > 0) mismatchlevel=1;
	TParticle *matchedTrack = stack->Particle(TMath::Abs(tofLabel[0]));
	if(TMath::Abs(matchedTrack->GetFirstMother()) == TMath::Abs(track->GetLabel()))
	{
	    if(mismatchlevel==1) mismatchlevel=3;
            else mismatchlevel=2;
	}
    }


    // Fill Tree
    (*fDebugTree) << "PIDdebug"
                  << "centrality="          << centrality
                  << "MBtrigger="           << isMBTrigger 
                  << "CentralTrigger="      << isCentralTrigger
                  << "SemicentralTrigger="  << isSemicentralTrigger
                  << "EMCALtrigger="        << isEMCALTrigger
                  << "signal="              << signal
                  << "source="              << source
                  << "v0pid="               << v0pid
                  << "run="                 << run
                  << "p="                   << momentum
                  << "ptpc="                << momentumTPC
                  << "pt="                  << transversemomentum
                  << "pttpc="               << transversemomentumTPC
                  << "mcp="                 << mcp
                  << "mcpt="                << mcpt
                  << "mcpTPC="              << mcpTPC
                  << "mcptTPC="             << mcptTPC
                  << "mceta="               << mceta
                  << "mcphi="               << mcphi
                  << "mcpdg="               << mcpdg
                  << "eta="                 << eta
                  << "phi="                 << phi
                  << "ntracklets="          << ntrackletsTRDPID
                  << "nclustersTPC="        << nclustersTPCfit
		  << "nclustersTPCall="     << nclustersTPCall
                  << "nclustersTPCPID="     << nclustersTPCPID
                  << "nclustersTPCshared="  << nclustersTPCshared
                  << "ncrossedRowsTPC="     << ncrossedRowsTPC
                  << "clusterRatioTPC="     << clusterRatioTPCfit
                  << "clusterRatioTPCall="  << clusterRatioTPCall
                  << "nclustersITS="        << nclustersITS
                  << "nclusters="           << nclustersTRD
                  << "chi2matching="        << chi2matching
                  << "chi2PerClusterITS="   << chi2PerClusterITS
                  << "its0="                << hasClusterITS[0]
                  << "its1="                << hasClusterITS[1]
                  << "its2="                << hasClusterITS[2]
                  << "its3="                << hasClusterITS[3]
                  << "its4="                << hasClusterITS[4]
                  << "its5="                << hasClusterITS[5]
                  << "statusITS0="          << statusITS[0]
                  << "statusITS1="          << statusITS[1]
                  << "statusITS2="          << statusITS[2]
                  << "statusITS3="          << statusITS[3]
                  << "statusITS4="          << statusITS[4]
                  << "statusITS5="          << statusITS[5]
                  << "trd0="                << hasTrackletTRD[0]
                  << "trd1="                << hasTrackletTRD[1]
                  << "trd2="                << hasTrackletTRD[2]
                  << "trd3="                << hasTrackletTRD[3]
                  << "trd4="                << hasTrackletTRD[4]
                  << "trd5="                << hasTrackletTRD[5]
                  << "TRDdEdxl0="           << trddEdxSum[0]
                  << "TRDdEdxl1="           << trddEdxSum[1]
                  << "TRDdEdxl2="           << trddEdxSum[2]
                  << "TRDdEdxl3="           << trddEdxSum[3]
                  << "TRDdEdxl4="           << trddEdxSum[4]
                  << "TRDdEdxl5="           << trddEdxSum[5]
                  << "TOFsigmaEl="          << nSigmaTOF
                  << "TPCsigmaEl="          << nSigmaTPC
                  << "TPCdEdx="             << tPCdEdx
                  << "TRDlikeEl="           << likeEleTRD
                  << "TRDlikeEln="          << likeEleTRDn
                  << "trdtruncmean1="       << trdtruncmean1
                  << "trdtruncmean2="       << trdtruncmean2
                  << "dcaR="                << b[0]
                  << "dcaZ="                << b[1]
                  << "dca="                 << dca
                  << "dcaSR="               << dcaSR
                  << "dcaSZ="               << dcaSZ
                  << "dcaS="                << dcaS
                  << "hfedcaR="             << hfeb[0]
                  << "hfedcaZ="             << hfeb[1]
                  << "hfedcacovR="          << hfebCov[0]
                  << "hfedcacovZ="          << hfebCov[2]
                  << "vx="                  << vtx[0]
                  << "vy="                  << vtx[1]
                  << "vz="                  << vtx[2]
                  << "tofdx="                << tofdx
	          << "tofdz="                << tofdz
                  << "statusTOFtracking="   << hasgoodTOF
                  << "TOFmismatchlevel="    << mismatchlevel
                  << "statusTRDtracking="   << hasTRDin
                  << "ncontrib="            << ncontrib
                  << "mesonID="             << mesonID
                  << "eR="                  << eR
                  << "mesonR="              << mesonR
                  << "eZ="                  << eZ
                  << "mesonZ="              << mesonZ
                  << "unique="              << unique
                  << "mesonunique="         << mesonunique
                  << "bgcategory="          << bgcategory
                  << "mesonpt="             << mesonPt
                  << "mesonMomPdg="         << mesonMomPdg
                  << "mesonGMomPdg="         << mesonGMomPdg
                  << "mesonGGMomPdg="         << mesonGGMomPdg
                  << "mesonMomPt="         << mesonMomPt
                  << "\n";
  }
}


void AliHFEdebugTreeTask::SetFileName(const char *filename){ fFilename = filename; }
//___________________________________________________________
AliTrackReference *AliHFEdebugTreeTask::FindTrackReference(AliMCParticle *track, Float_t minRadius, Float_t maxRadius, Int_t detectorID)
{
  //
  // Find the track reference
  //
  AliTrackReference *ref = NULL, *reftmp;
  Float_t radius;
  for(Int_t iref = 0; iref < track->GetNumberOfTrackReferences(); iref++){
    reftmp = track->GetTrackReference(iref);
    if(reftmp->DetectorId() != detectorID) continue;
    radius = reftmp->R();
    if(radius >= minRadius && radius < maxRadius){
      ref = reftmp;
      break;
    } 
    if(radius > maxRadius) break;
  }
  return ref;
}

//__________________________________________
Int_t AliHFEdebugTreeTask::GetElecSourceMC(TParticle * const mcpart)
{
  // decay particle's origin 

  if(!mcpart){
    AliDebug(1, "no mcparticle, return\n");
    return -1;
  }

  if ( abs(mcpart->GetPdgCode()) != AliHFEmcQA::kElectronPDG ) return AliHFEmcQA::kMisID;

  Int_t origin = -1;
  Bool_t isFinalOpenCharm = kFALSE;

  Int_t iLabel = mcpart->GetFirstMother();
  if (iLabel<0){
    AliDebug(1, "Stack label is negative, return\n");
    return -1;
  }

  AliMCParticle *mctrack = NULL;
  Int_t tmpMomLabel=0;
  if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(iLabel))))) return -1; 
  TParticle *partMother = mctrack->Particle();
  TParticle *partMotherCopy = mctrack->Particle();
  Int_t maPdgcode = partMother->GetPdgCode();

  // if the mother is charmed hadron  
  if ( (int(abs(maPdgcode)/100.)%10) == AliHFEmcQA::kCharm || (int(abs(maPdgcode)/1000.)%10) == AliHFEmcQA::kCharm ) {

    for (Int_t i=0; i<fNparents; i++){
        if (abs(maPdgcode)==fParentSelect[0][i]){
          isFinalOpenCharm = kTRUE;
        }
    }
    if (!isFinalOpenCharm) return -1;

    // iterate until you find B hadron as a mother or become top ancester 
    for (Int_t i=1; i<fgkMaxIter; i++){

        Int_t jLabel = partMother->GetFirstMother();
        if (jLabel == -1){
          origin = AliHFEmcQA::kDirectCharm;
          return origin;
        }
        if (jLabel < 0){ // safety protection
          AliDebug(1, "Stack label is negative, return\n");
          return -1;
        }

        // if there is an ancester
        if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(jLabel))))) return -1; 
        TParticle* grandMa = mctrack->Particle();
        Int_t grandMaPDG = grandMa->GetPdgCode();

        for (Int_t j=0; j<fNparents; j++){
          if (abs(grandMaPDG)==fParentSelect[1][j]){
            origin = AliHFEmcQA::kBeautyCharm;
            return origin;
          }
        }

        partMother = grandMa;
    } // end of iteration 
  } // end of if
  else if ( (int(abs(maPdgcode)/100.)%10) == AliHFEmcQA::kBeauty || (int(abs(maPdgcode)/1000.)%10) == AliHFEmcQA::kBeauty ) {
    for (Int_t i=0; i<fNparents; i++){
        if (abs(maPdgcode)==fParentSelect[1][i]){
          origin = AliHFEmcQA::kDirectBeauty;
          return origin;
        }
    }
  } // end of if
  else if ( abs(maPdgcode) == 22 ) { //conversion

    tmpMomLabel = partMotherCopy->GetFirstMother();
    if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(tmpMomLabel))))) return -1;
    partMother = mctrack->Particle();
    maPdgcode = partMother->GetPdgCode();
    if ( abs(maPdgcode) == 111 ) {
      origin = AliHFEmcQA::kGammaPi0;
      return origin;
    } 
    else if ( abs(maPdgcode) == 221 ) {
      origin = AliHFEmcQA::kGammaEta;
      return origin;
    } 
    else if ( abs(maPdgcode) == 223 ) {
      origin = AliHFEmcQA::kGammaOmega;
      return origin;
    } 
    else if ( abs(maPdgcode) == 333 ) {
      origin = AliHFEmcQA::kGammaPhi;
      return origin;
    }
    else if ( abs(maPdgcode) == 331 ) {
      origin = AliHFEmcQA::kGammaEtaPrime;
      return origin; 
    }
    else if ( abs(maPdgcode) == 113 ) {
      origin = AliHFEmcQA::kGammaRho0;
      return origin;
    }
    else origin = AliHFEmcQA::kElse;
    //origin = kGamma; // finer category above
    return origin;

  } // end of if
  else if ( abs(maPdgcode) == 111 ) {
    origin = AliHFEmcQA::kPi0;
    return origin;
  } // end of if
  else if ( abs(maPdgcode) == 221 ) {
    origin = AliHFEmcQA::kEta;
    return origin;
  } // end of if
  else if ( abs(maPdgcode) == 223 ) {
    origin = AliHFEmcQA::kOmega;
    return origin;
  } // end of if
  else if ( abs(maPdgcode) == 333 ) {
    origin = AliHFEmcQA::kPhi;
    return origin;
  } // end of if
  else if ( abs(maPdgcode) == 331 ) {
    origin = AliHFEmcQA::kEtaPrime;
    return origin;
  } // end of if
  else if ( abs(maPdgcode) == 113 ) {
    origin = AliHFEmcQA::kRho0;
    return origin;
  } // end of if
  else{ 
    origin = AliHFEmcQA::kElse;
  }
  return origin;
}

//______________________________________________________
Bool_t AliHFEdebugTreeTask::CheckITSstatus( const AliESDtrack * const esdtrack, Int_t layer) const {
  //
  // Check whether ITS area is dead
  //
  Int_t itsStatus = 0;
  Int_t det;
  Float_t xloc, zloc;
  esdtrack->GetITSModuleIndexInfo(layer, det, itsStatus, xloc, zloc);
  Bool_t status;
  switch(itsStatus){
    case 2: status = kFALSE; break;
    case 3: status = kFALSE; break;
    case 7: status = kFALSE; break;
    default: status = kTRUE;
  }
  return status;
}

 AliHFEdebugTreeTask.cxx:1
 AliHFEdebugTreeTask.cxx:2
 AliHFEdebugTreeTask.cxx:3
 AliHFEdebugTreeTask.cxx:4
 AliHFEdebugTreeTask.cxx:5
 AliHFEdebugTreeTask.cxx:6
 AliHFEdebugTreeTask.cxx:7
 AliHFEdebugTreeTask.cxx:8
 AliHFEdebugTreeTask.cxx:9
 AliHFEdebugTreeTask.cxx:10
 AliHFEdebugTreeTask.cxx:11
 AliHFEdebugTreeTask.cxx:12
 AliHFEdebugTreeTask.cxx:13
 AliHFEdebugTreeTask.cxx:14
 AliHFEdebugTreeTask.cxx:15
 AliHFEdebugTreeTask.cxx:16
 AliHFEdebugTreeTask.cxx:17
 AliHFEdebugTreeTask.cxx:18
 AliHFEdebugTreeTask.cxx:19
 AliHFEdebugTreeTask.cxx:20
 AliHFEdebugTreeTask.cxx:21
 AliHFEdebugTreeTask.cxx:22
 AliHFEdebugTreeTask.cxx:23
 AliHFEdebugTreeTask.cxx:24
 AliHFEdebugTreeTask.cxx:25
 AliHFEdebugTreeTask.cxx:26
 AliHFEdebugTreeTask.cxx:27
 AliHFEdebugTreeTask.cxx:28
 AliHFEdebugTreeTask.cxx:29
 AliHFEdebugTreeTask.cxx:30
 AliHFEdebugTreeTask.cxx:31
 AliHFEdebugTreeTask.cxx:32
 AliHFEdebugTreeTask.cxx:33
 AliHFEdebugTreeTask.cxx:34
 AliHFEdebugTreeTask.cxx:35
 AliHFEdebugTreeTask.cxx:36
 AliHFEdebugTreeTask.cxx:37
 AliHFEdebugTreeTask.cxx:38
 AliHFEdebugTreeTask.cxx:39
 AliHFEdebugTreeTask.cxx:40
 AliHFEdebugTreeTask.cxx:41
 AliHFEdebugTreeTask.cxx:42
 AliHFEdebugTreeTask.cxx:43
 AliHFEdebugTreeTask.cxx:44
 AliHFEdebugTreeTask.cxx:45
 AliHFEdebugTreeTask.cxx:46
 AliHFEdebugTreeTask.cxx:47
 AliHFEdebugTreeTask.cxx:48
 AliHFEdebugTreeTask.cxx:49
 AliHFEdebugTreeTask.cxx:50
 AliHFEdebugTreeTask.cxx:51
 AliHFEdebugTreeTask.cxx:52
 AliHFEdebugTreeTask.cxx:53
 AliHFEdebugTreeTask.cxx:54
 AliHFEdebugTreeTask.cxx:55
 AliHFEdebugTreeTask.cxx:56
 AliHFEdebugTreeTask.cxx:57
 AliHFEdebugTreeTask.cxx:58
 AliHFEdebugTreeTask.cxx:59
 AliHFEdebugTreeTask.cxx:60
 AliHFEdebugTreeTask.cxx:61
 AliHFEdebugTreeTask.cxx:62
 AliHFEdebugTreeTask.cxx:63
 AliHFEdebugTreeTask.cxx:64
 AliHFEdebugTreeTask.cxx:65
 AliHFEdebugTreeTask.cxx:66
 AliHFEdebugTreeTask.cxx:67
 AliHFEdebugTreeTask.cxx:68
 AliHFEdebugTreeTask.cxx:69
 AliHFEdebugTreeTask.cxx:70
 AliHFEdebugTreeTask.cxx:71
 AliHFEdebugTreeTask.cxx:72
 AliHFEdebugTreeTask.cxx:73
 AliHFEdebugTreeTask.cxx:74
 AliHFEdebugTreeTask.cxx:75
 AliHFEdebugTreeTask.cxx:76
 AliHFEdebugTreeTask.cxx:77
 AliHFEdebugTreeTask.cxx:78
 AliHFEdebugTreeTask.cxx:79
 AliHFEdebugTreeTask.cxx:80
 AliHFEdebugTreeTask.cxx:81
 AliHFEdebugTreeTask.cxx:82
 AliHFEdebugTreeTask.cxx:83
 AliHFEdebugTreeTask.cxx:84
 AliHFEdebugTreeTask.cxx:85
 AliHFEdebugTreeTask.cxx:86
 AliHFEdebugTreeTask.cxx:87
 AliHFEdebugTreeTask.cxx:88
 AliHFEdebugTreeTask.cxx:89
 AliHFEdebugTreeTask.cxx:90
 AliHFEdebugTreeTask.cxx:91
 AliHFEdebugTreeTask.cxx:92
 AliHFEdebugTreeTask.cxx:93
 AliHFEdebugTreeTask.cxx:94
 AliHFEdebugTreeTask.cxx:95
 AliHFEdebugTreeTask.cxx:96
 AliHFEdebugTreeTask.cxx:97
 AliHFEdebugTreeTask.cxx:98
 AliHFEdebugTreeTask.cxx:99
 AliHFEdebugTreeTask.cxx:100
 AliHFEdebugTreeTask.cxx:101
 AliHFEdebugTreeTask.cxx:102
 AliHFEdebugTreeTask.cxx:103
 AliHFEdebugTreeTask.cxx:104
 AliHFEdebugTreeTask.cxx:105
 AliHFEdebugTreeTask.cxx:106
 AliHFEdebugTreeTask.cxx:107
 AliHFEdebugTreeTask.cxx:108
 AliHFEdebugTreeTask.cxx:109
 AliHFEdebugTreeTask.cxx:110
 AliHFEdebugTreeTask.cxx:111
 AliHFEdebugTreeTask.cxx:112
 AliHFEdebugTreeTask.cxx:113
 AliHFEdebugTreeTask.cxx:114
 AliHFEdebugTreeTask.cxx:115
 AliHFEdebugTreeTask.cxx:116
 AliHFEdebugTreeTask.cxx:117
 AliHFEdebugTreeTask.cxx:118
 AliHFEdebugTreeTask.cxx:119
 AliHFEdebugTreeTask.cxx:120
 AliHFEdebugTreeTask.cxx:121
 AliHFEdebugTreeTask.cxx:122
 AliHFEdebugTreeTask.cxx:123
 AliHFEdebugTreeTask.cxx:124
 AliHFEdebugTreeTask.cxx:125
 AliHFEdebugTreeTask.cxx:126
 AliHFEdebugTreeTask.cxx:127
 AliHFEdebugTreeTask.cxx:128
 AliHFEdebugTreeTask.cxx:129
 AliHFEdebugTreeTask.cxx:130
 AliHFEdebugTreeTask.cxx:131
 AliHFEdebugTreeTask.cxx:132
 AliHFEdebugTreeTask.cxx:133
 AliHFEdebugTreeTask.cxx:134
 AliHFEdebugTreeTask.cxx:135
 AliHFEdebugTreeTask.cxx:136
 AliHFEdebugTreeTask.cxx:137
 AliHFEdebugTreeTask.cxx:138
 AliHFEdebugTreeTask.cxx:139
 AliHFEdebugTreeTask.cxx:140
 AliHFEdebugTreeTask.cxx:141
 AliHFEdebugTreeTask.cxx:142
 AliHFEdebugTreeTask.cxx:143
 AliHFEdebugTreeTask.cxx:144
 AliHFEdebugTreeTask.cxx:145
 AliHFEdebugTreeTask.cxx:146
 AliHFEdebugTreeTask.cxx:147
 AliHFEdebugTreeTask.cxx:148
 AliHFEdebugTreeTask.cxx:149
 AliHFEdebugTreeTask.cxx:150
 AliHFEdebugTreeTask.cxx:151
 AliHFEdebugTreeTask.cxx:152
 AliHFEdebugTreeTask.cxx:153
 AliHFEdebugTreeTask.cxx:154
 AliHFEdebugTreeTask.cxx:155
 AliHFEdebugTreeTask.cxx:156
 AliHFEdebugTreeTask.cxx:157
 AliHFEdebugTreeTask.cxx:158
 AliHFEdebugTreeTask.cxx:159
 AliHFEdebugTreeTask.cxx:160
 AliHFEdebugTreeTask.cxx:161
 AliHFEdebugTreeTask.cxx:162
 AliHFEdebugTreeTask.cxx:163
 AliHFEdebugTreeTask.cxx:164
 AliHFEdebugTreeTask.cxx:165
 AliHFEdebugTreeTask.cxx:166
 AliHFEdebugTreeTask.cxx:167
 AliHFEdebugTreeTask.cxx:168
 AliHFEdebugTreeTask.cxx:169
 AliHFEdebugTreeTask.cxx:170
 AliHFEdebugTreeTask.cxx:171
 AliHFEdebugTreeTask.cxx:172
 AliHFEdebugTreeTask.cxx:173
 AliHFEdebugTreeTask.cxx:174
 AliHFEdebugTreeTask.cxx:175
 AliHFEdebugTreeTask.cxx:176
 AliHFEdebugTreeTask.cxx:177
 AliHFEdebugTreeTask.cxx:178
 AliHFEdebugTreeTask.cxx:179
 AliHFEdebugTreeTask.cxx:180
 AliHFEdebugTreeTask.cxx:181
 AliHFEdebugTreeTask.cxx:182
 AliHFEdebugTreeTask.cxx:183
 AliHFEdebugTreeTask.cxx:184
 AliHFEdebugTreeTask.cxx:185
 AliHFEdebugTreeTask.cxx:186
 AliHFEdebugTreeTask.cxx:187
 AliHFEdebugTreeTask.cxx:188
 AliHFEdebugTreeTask.cxx:189
 AliHFEdebugTreeTask.cxx:190
 AliHFEdebugTreeTask.cxx:191
 AliHFEdebugTreeTask.cxx:192
 AliHFEdebugTreeTask.cxx:193
 AliHFEdebugTreeTask.cxx:194
 AliHFEdebugTreeTask.cxx:195
 AliHFEdebugTreeTask.cxx:196
 AliHFEdebugTreeTask.cxx:197
 AliHFEdebugTreeTask.cxx:198
 AliHFEdebugTreeTask.cxx:199
 AliHFEdebugTreeTask.cxx:200
 AliHFEdebugTreeTask.cxx:201
 AliHFEdebugTreeTask.cxx:202
 AliHFEdebugTreeTask.cxx:203
 AliHFEdebugTreeTask.cxx:204
 AliHFEdebugTreeTask.cxx:205
 AliHFEdebugTreeTask.cxx:206
 AliHFEdebugTreeTask.cxx:207
 AliHFEdebugTreeTask.cxx:208
 AliHFEdebugTreeTask.cxx:209
 AliHFEdebugTreeTask.cxx:210
 AliHFEdebugTreeTask.cxx:211
 AliHFEdebugTreeTask.cxx:212
 AliHFEdebugTreeTask.cxx:213
 AliHFEdebugTreeTask.cxx:214
 AliHFEdebugTreeTask.cxx:215
 AliHFEdebugTreeTask.cxx:216
 AliHFEdebugTreeTask.cxx:217
 AliHFEdebugTreeTask.cxx:218
 AliHFEdebugTreeTask.cxx:219
 AliHFEdebugTreeTask.cxx:220
 AliHFEdebugTreeTask.cxx:221
 AliHFEdebugTreeTask.cxx:222
 AliHFEdebugTreeTask.cxx:223
 AliHFEdebugTreeTask.cxx:224
 AliHFEdebugTreeTask.cxx:225
 AliHFEdebugTreeTask.cxx:226
 AliHFEdebugTreeTask.cxx:227
 AliHFEdebugTreeTask.cxx:228
 AliHFEdebugTreeTask.cxx:229
 AliHFEdebugTreeTask.cxx:230
 AliHFEdebugTreeTask.cxx:231
 AliHFEdebugTreeTask.cxx:232
 AliHFEdebugTreeTask.cxx:233
 AliHFEdebugTreeTask.cxx:234
 AliHFEdebugTreeTask.cxx:235
 AliHFEdebugTreeTask.cxx:236
 AliHFEdebugTreeTask.cxx:237
 AliHFEdebugTreeTask.cxx:238
 AliHFEdebugTreeTask.cxx:239
 AliHFEdebugTreeTask.cxx:240
 AliHFEdebugTreeTask.cxx:241
 AliHFEdebugTreeTask.cxx:242
 AliHFEdebugTreeTask.cxx:243
 AliHFEdebugTreeTask.cxx:244
 AliHFEdebugTreeTask.cxx:245
 AliHFEdebugTreeTask.cxx:246
 AliHFEdebugTreeTask.cxx:247
 AliHFEdebugTreeTask.cxx:248
 AliHFEdebugTreeTask.cxx:249
 AliHFEdebugTreeTask.cxx:250
 AliHFEdebugTreeTask.cxx:251
 AliHFEdebugTreeTask.cxx:252
 AliHFEdebugTreeTask.cxx:253
 AliHFEdebugTreeTask.cxx:254
 AliHFEdebugTreeTask.cxx:255
 AliHFEdebugTreeTask.cxx:256
 AliHFEdebugTreeTask.cxx:257
 AliHFEdebugTreeTask.cxx:258
 AliHFEdebugTreeTask.cxx:259
 AliHFEdebugTreeTask.cxx:260
 AliHFEdebugTreeTask.cxx:261
 AliHFEdebugTreeTask.cxx:262
 AliHFEdebugTreeTask.cxx:263
 AliHFEdebugTreeTask.cxx:264
 AliHFEdebugTreeTask.cxx:265
 AliHFEdebugTreeTask.cxx:266
 AliHFEdebugTreeTask.cxx:267
 AliHFEdebugTreeTask.cxx:268
 AliHFEdebugTreeTask.cxx:269
 AliHFEdebugTreeTask.cxx:270
 AliHFEdebugTreeTask.cxx:271
 AliHFEdebugTreeTask.cxx:272
 AliHFEdebugTreeTask.cxx:273
 AliHFEdebugTreeTask.cxx:274
 AliHFEdebugTreeTask.cxx:275
 AliHFEdebugTreeTask.cxx:276
 AliHFEdebugTreeTask.cxx:277
 AliHFEdebugTreeTask.cxx:278
 AliHFEdebugTreeTask.cxx:279
 AliHFEdebugTreeTask.cxx:280
 AliHFEdebugTreeTask.cxx:281
 AliHFEdebugTreeTask.cxx:282
 AliHFEdebugTreeTask.cxx:283
 AliHFEdebugTreeTask.cxx:284
 AliHFEdebugTreeTask.cxx:285
 AliHFEdebugTreeTask.cxx:286
 AliHFEdebugTreeTask.cxx:287
 AliHFEdebugTreeTask.cxx:288
 AliHFEdebugTreeTask.cxx:289
 AliHFEdebugTreeTask.cxx:290
 AliHFEdebugTreeTask.cxx:291
 AliHFEdebugTreeTask.cxx:292
 AliHFEdebugTreeTask.cxx:293
 AliHFEdebugTreeTask.cxx:294
 AliHFEdebugTreeTask.cxx:295
 AliHFEdebugTreeTask.cxx:296
 AliHFEdebugTreeTask.cxx:297
 AliHFEdebugTreeTask.cxx:298
 AliHFEdebugTreeTask.cxx:299
 AliHFEdebugTreeTask.cxx:300
 AliHFEdebugTreeTask.cxx:301
 AliHFEdebugTreeTask.cxx:302
 AliHFEdebugTreeTask.cxx:303
 AliHFEdebugTreeTask.cxx:304
 AliHFEdebugTreeTask.cxx:305
 AliHFEdebugTreeTask.cxx:306
 AliHFEdebugTreeTask.cxx:307
 AliHFEdebugTreeTask.cxx:308
 AliHFEdebugTreeTask.cxx:309
 AliHFEdebugTreeTask.cxx:310
 AliHFEdebugTreeTask.cxx:311
 AliHFEdebugTreeTask.cxx:312
 AliHFEdebugTreeTask.cxx:313
 AliHFEdebugTreeTask.cxx:314
 AliHFEdebugTreeTask.cxx:315
 AliHFEdebugTreeTask.cxx:316
 AliHFEdebugTreeTask.cxx:317
 AliHFEdebugTreeTask.cxx:318
 AliHFEdebugTreeTask.cxx:319
 AliHFEdebugTreeTask.cxx:320
 AliHFEdebugTreeTask.cxx:321
 AliHFEdebugTreeTask.cxx:322
 AliHFEdebugTreeTask.cxx:323
 AliHFEdebugTreeTask.cxx:324
 AliHFEdebugTreeTask.cxx:325
 AliHFEdebugTreeTask.cxx:326
 AliHFEdebugTreeTask.cxx:327
 AliHFEdebugTreeTask.cxx:328
 AliHFEdebugTreeTask.cxx:329
 AliHFEdebugTreeTask.cxx:330
 AliHFEdebugTreeTask.cxx:331
 AliHFEdebugTreeTask.cxx:332
 AliHFEdebugTreeTask.cxx:333
 AliHFEdebugTreeTask.cxx:334
 AliHFEdebugTreeTask.cxx:335
 AliHFEdebugTreeTask.cxx:336
 AliHFEdebugTreeTask.cxx:337
 AliHFEdebugTreeTask.cxx:338
 AliHFEdebugTreeTask.cxx:339
 AliHFEdebugTreeTask.cxx:340
 AliHFEdebugTreeTask.cxx:341
 AliHFEdebugTreeTask.cxx:342
 AliHFEdebugTreeTask.cxx:343
 AliHFEdebugTreeTask.cxx:344
 AliHFEdebugTreeTask.cxx:345
 AliHFEdebugTreeTask.cxx:346
 AliHFEdebugTreeTask.cxx:347
 AliHFEdebugTreeTask.cxx:348
 AliHFEdebugTreeTask.cxx:349
 AliHFEdebugTreeTask.cxx:350
 AliHFEdebugTreeTask.cxx:351
 AliHFEdebugTreeTask.cxx:352
 AliHFEdebugTreeTask.cxx:353
 AliHFEdebugTreeTask.cxx:354
 AliHFEdebugTreeTask.cxx:355
 AliHFEdebugTreeTask.cxx:356
 AliHFEdebugTreeTask.cxx:357
 AliHFEdebugTreeTask.cxx:358
 AliHFEdebugTreeTask.cxx:359
 AliHFEdebugTreeTask.cxx:360
 AliHFEdebugTreeTask.cxx:361
 AliHFEdebugTreeTask.cxx:362
 AliHFEdebugTreeTask.cxx:363
 AliHFEdebugTreeTask.cxx:364
 AliHFEdebugTreeTask.cxx:365
 AliHFEdebugTreeTask.cxx:366
 AliHFEdebugTreeTask.cxx:367
 AliHFEdebugTreeTask.cxx:368
 AliHFEdebugTreeTask.cxx:369
 AliHFEdebugTreeTask.cxx:370
 AliHFEdebugTreeTask.cxx:371
 AliHFEdebugTreeTask.cxx:372
 AliHFEdebugTreeTask.cxx:373
 AliHFEdebugTreeTask.cxx:374
 AliHFEdebugTreeTask.cxx:375
 AliHFEdebugTreeTask.cxx:376
 AliHFEdebugTreeTask.cxx:377
 AliHFEdebugTreeTask.cxx:378
 AliHFEdebugTreeTask.cxx:379
 AliHFEdebugTreeTask.cxx:380
 AliHFEdebugTreeTask.cxx:381
 AliHFEdebugTreeTask.cxx:382
 AliHFEdebugTreeTask.cxx:383
 AliHFEdebugTreeTask.cxx:384
 AliHFEdebugTreeTask.cxx:385
 AliHFEdebugTreeTask.cxx:386
 AliHFEdebugTreeTask.cxx:387
 AliHFEdebugTreeTask.cxx:388
 AliHFEdebugTreeTask.cxx:389
 AliHFEdebugTreeTask.cxx:390
 AliHFEdebugTreeTask.cxx:391
 AliHFEdebugTreeTask.cxx:392
 AliHFEdebugTreeTask.cxx:393
 AliHFEdebugTreeTask.cxx:394
 AliHFEdebugTreeTask.cxx:395
 AliHFEdebugTreeTask.cxx:396
 AliHFEdebugTreeTask.cxx:397
 AliHFEdebugTreeTask.cxx:398
 AliHFEdebugTreeTask.cxx:399
 AliHFEdebugTreeTask.cxx:400
 AliHFEdebugTreeTask.cxx:401
 AliHFEdebugTreeTask.cxx:402
 AliHFEdebugTreeTask.cxx:403
 AliHFEdebugTreeTask.cxx:404
 AliHFEdebugTreeTask.cxx:405
 AliHFEdebugTreeTask.cxx:406
 AliHFEdebugTreeTask.cxx:407
 AliHFEdebugTreeTask.cxx:408
 AliHFEdebugTreeTask.cxx:409
 AliHFEdebugTreeTask.cxx:410
 AliHFEdebugTreeTask.cxx:411
 AliHFEdebugTreeTask.cxx:412
 AliHFEdebugTreeTask.cxx:413
 AliHFEdebugTreeTask.cxx:414
 AliHFEdebugTreeTask.cxx:415
 AliHFEdebugTreeTask.cxx:416
 AliHFEdebugTreeTask.cxx:417
 AliHFEdebugTreeTask.cxx:418
 AliHFEdebugTreeTask.cxx:419
 AliHFEdebugTreeTask.cxx:420
 AliHFEdebugTreeTask.cxx:421
 AliHFEdebugTreeTask.cxx:422
 AliHFEdebugTreeTask.cxx:423
 AliHFEdebugTreeTask.cxx:424
 AliHFEdebugTreeTask.cxx:425
 AliHFEdebugTreeTask.cxx:426
 AliHFEdebugTreeTask.cxx:427
 AliHFEdebugTreeTask.cxx:428
 AliHFEdebugTreeTask.cxx:429
 AliHFEdebugTreeTask.cxx:430
 AliHFEdebugTreeTask.cxx:431
 AliHFEdebugTreeTask.cxx:432
 AliHFEdebugTreeTask.cxx:433
 AliHFEdebugTreeTask.cxx:434
 AliHFEdebugTreeTask.cxx:435
 AliHFEdebugTreeTask.cxx:436
 AliHFEdebugTreeTask.cxx:437
 AliHFEdebugTreeTask.cxx:438
 AliHFEdebugTreeTask.cxx:439
 AliHFEdebugTreeTask.cxx:440
 AliHFEdebugTreeTask.cxx:441
 AliHFEdebugTreeTask.cxx:442
 AliHFEdebugTreeTask.cxx:443
 AliHFEdebugTreeTask.cxx:444
 AliHFEdebugTreeTask.cxx:445
 AliHFEdebugTreeTask.cxx:446
 AliHFEdebugTreeTask.cxx:447
 AliHFEdebugTreeTask.cxx:448
 AliHFEdebugTreeTask.cxx:449
 AliHFEdebugTreeTask.cxx:450
 AliHFEdebugTreeTask.cxx:451
 AliHFEdebugTreeTask.cxx:452
 AliHFEdebugTreeTask.cxx:453
 AliHFEdebugTreeTask.cxx:454
 AliHFEdebugTreeTask.cxx:455
 AliHFEdebugTreeTask.cxx:456
 AliHFEdebugTreeTask.cxx:457
 AliHFEdebugTreeTask.cxx:458
 AliHFEdebugTreeTask.cxx:459
 AliHFEdebugTreeTask.cxx:460
 AliHFEdebugTreeTask.cxx:461
 AliHFEdebugTreeTask.cxx:462
 AliHFEdebugTreeTask.cxx:463
 AliHFEdebugTreeTask.cxx:464
 AliHFEdebugTreeTask.cxx:465
 AliHFEdebugTreeTask.cxx:466
 AliHFEdebugTreeTask.cxx:467
 AliHFEdebugTreeTask.cxx:468
 AliHFEdebugTreeTask.cxx:469
 AliHFEdebugTreeTask.cxx:470
 AliHFEdebugTreeTask.cxx:471
 AliHFEdebugTreeTask.cxx:472
 AliHFEdebugTreeTask.cxx:473
 AliHFEdebugTreeTask.cxx:474
 AliHFEdebugTreeTask.cxx:475
 AliHFEdebugTreeTask.cxx:476
 AliHFEdebugTreeTask.cxx:477
 AliHFEdebugTreeTask.cxx:478
 AliHFEdebugTreeTask.cxx:479
 AliHFEdebugTreeTask.cxx:480
 AliHFEdebugTreeTask.cxx:481
 AliHFEdebugTreeTask.cxx:482
 AliHFEdebugTreeTask.cxx:483
 AliHFEdebugTreeTask.cxx:484
 AliHFEdebugTreeTask.cxx:485
 AliHFEdebugTreeTask.cxx:486
 AliHFEdebugTreeTask.cxx:487
 AliHFEdebugTreeTask.cxx:488
 AliHFEdebugTreeTask.cxx:489
 AliHFEdebugTreeTask.cxx:490
 AliHFEdebugTreeTask.cxx:491
 AliHFEdebugTreeTask.cxx:492
 AliHFEdebugTreeTask.cxx:493
 AliHFEdebugTreeTask.cxx:494
 AliHFEdebugTreeTask.cxx:495
 AliHFEdebugTreeTask.cxx:496
 AliHFEdebugTreeTask.cxx:497
 AliHFEdebugTreeTask.cxx:498
 AliHFEdebugTreeTask.cxx:499
 AliHFEdebugTreeTask.cxx:500
 AliHFEdebugTreeTask.cxx:501
 AliHFEdebugTreeTask.cxx:502
 AliHFEdebugTreeTask.cxx:503
 AliHFEdebugTreeTask.cxx:504
 AliHFEdebugTreeTask.cxx:505
 AliHFEdebugTreeTask.cxx:506
 AliHFEdebugTreeTask.cxx:507
 AliHFEdebugTreeTask.cxx:508
 AliHFEdebugTreeTask.cxx:509
 AliHFEdebugTreeTask.cxx:510
 AliHFEdebugTreeTask.cxx:511
 AliHFEdebugTreeTask.cxx:512
 AliHFEdebugTreeTask.cxx:513
 AliHFEdebugTreeTask.cxx:514
 AliHFEdebugTreeTask.cxx:515
 AliHFEdebugTreeTask.cxx:516
 AliHFEdebugTreeTask.cxx:517
 AliHFEdebugTreeTask.cxx:518
 AliHFEdebugTreeTask.cxx:519
 AliHFEdebugTreeTask.cxx:520
 AliHFEdebugTreeTask.cxx:521
 AliHFEdebugTreeTask.cxx:522
 AliHFEdebugTreeTask.cxx:523
 AliHFEdebugTreeTask.cxx:524
 AliHFEdebugTreeTask.cxx:525
 AliHFEdebugTreeTask.cxx:526
 AliHFEdebugTreeTask.cxx:527
 AliHFEdebugTreeTask.cxx:528
 AliHFEdebugTreeTask.cxx:529
 AliHFEdebugTreeTask.cxx:530
 AliHFEdebugTreeTask.cxx:531
 AliHFEdebugTreeTask.cxx:532
 AliHFEdebugTreeTask.cxx:533
 AliHFEdebugTreeTask.cxx:534
 AliHFEdebugTreeTask.cxx:535
 AliHFEdebugTreeTask.cxx:536
 AliHFEdebugTreeTask.cxx:537
 AliHFEdebugTreeTask.cxx:538
 AliHFEdebugTreeTask.cxx:539
 AliHFEdebugTreeTask.cxx:540
 AliHFEdebugTreeTask.cxx:541
 AliHFEdebugTreeTask.cxx:542
 AliHFEdebugTreeTask.cxx:543
 AliHFEdebugTreeTask.cxx:544
 AliHFEdebugTreeTask.cxx:545
 AliHFEdebugTreeTask.cxx:546
 AliHFEdebugTreeTask.cxx:547
 AliHFEdebugTreeTask.cxx:548
 AliHFEdebugTreeTask.cxx:549
 AliHFEdebugTreeTask.cxx:550
 AliHFEdebugTreeTask.cxx:551
 AliHFEdebugTreeTask.cxx:552
 AliHFEdebugTreeTask.cxx:553
 AliHFEdebugTreeTask.cxx:554
 AliHFEdebugTreeTask.cxx:555
 AliHFEdebugTreeTask.cxx:556
 AliHFEdebugTreeTask.cxx:557
 AliHFEdebugTreeTask.cxx:558
 AliHFEdebugTreeTask.cxx:559
 AliHFEdebugTreeTask.cxx:560
 AliHFEdebugTreeTask.cxx:561
 AliHFEdebugTreeTask.cxx:562
 AliHFEdebugTreeTask.cxx:563
 AliHFEdebugTreeTask.cxx:564
 AliHFEdebugTreeTask.cxx:565
 AliHFEdebugTreeTask.cxx:566
 AliHFEdebugTreeTask.cxx:567
 AliHFEdebugTreeTask.cxx:568
 AliHFEdebugTreeTask.cxx:569
 AliHFEdebugTreeTask.cxx:570
 AliHFEdebugTreeTask.cxx:571
 AliHFEdebugTreeTask.cxx:572
 AliHFEdebugTreeTask.cxx:573
 AliHFEdebugTreeTask.cxx:574
 AliHFEdebugTreeTask.cxx:575
 AliHFEdebugTreeTask.cxx:576
 AliHFEdebugTreeTask.cxx:577
 AliHFEdebugTreeTask.cxx:578
 AliHFEdebugTreeTask.cxx:579
 AliHFEdebugTreeTask.cxx:580
 AliHFEdebugTreeTask.cxx:581
 AliHFEdebugTreeTask.cxx:582
 AliHFEdebugTreeTask.cxx:583
 AliHFEdebugTreeTask.cxx:584
 AliHFEdebugTreeTask.cxx:585
 AliHFEdebugTreeTask.cxx:586
 AliHFEdebugTreeTask.cxx:587
 AliHFEdebugTreeTask.cxx:588
 AliHFEdebugTreeTask.cxx:589
 AliHFEdebugTreeTask.cxx:590
 AliHFEdebugTreeTask.cxx:591
 AliHFEdebugTreeTask.cxx:592
 AliHFEdebugTreeTask.cxx:593
 AliHFEdebugTreeTask.cxx:594
 AliHFEdebugTreeTask.cxx:595
 AliHFEdebugTreeTask.cxx:596
 AliHFEdebugTreeTask.cxx:597
 AliHFEdebugTreeTask.cxx:598
 AliHFEdebugTreeTask.cxx:599
 AliHFEdebugTreeTask.cxx:600
 AliHFEdebugTreeTask.cxx:601
 AliHFEdebugTreeTask.cxx:602
 AliHFEdebugTreeTask.cxx:603
 AliHFEdebugTreeTask.cxx:604
 AliHFEdebugTreeTask.cxx:605
 AliHFEdebugTreeTask.cxx:606
 AliHFEdebugTreeTask.cxx:607
 AliHFEdebugTreeTask.cxx:608
 AliHFEdebugTreeTask.cxx:609
 AliHFEdebugTreeTask.cxx:610
 AliHFEdebugTreeTask.cxx:611
 AliHFEdebugTreeTask.cxx:612
 AliHFEdebugTreeTask.cxx:613
 AliHFEdebugTreeTask.cxx:614
 AliHFEdebugTreeTask.cxx:615
 AliHFEdebugTreeTask.cxx:616
 AliHFEdebugTreeTask.cxx:617
 AliHFEdebugTreeTask.cxx:618
 AliHFEdebugTreeTask.cxx:619
 AliHFEdebugTreeTask.cxx:620
 AliHFEdebugTreeTask.cxx:621
 AliHFEdebugTreeTask.cxx:622
 AliHFEdebugTreeTask.cxx:623
 AliHFEdebugTreeTask.cxx:624
 AliHFEdebugTreeTask.cxx:625
 AliHFEdebugTreeTask.cxx:626
 AliHFEdebugTreeTask.cxx:627
 AliHFEdebugTreeTask.cxx:628
 AliHFEdebugTreeTask.cxx:629
 AliHFEdebugTreeTask.cxx:630
 AliHFEdebugTreeTask.cxx:631
 AliHFEdebugTreeTask.cxx:632
 AliHFEdebugTreeTask.cxx:633
 AliHFEdebugTreeTask.cxx:634
 AliHFEdebugTreeTask.cxx:635
 AliHFEdebugTreeTask.cxx:636
 AliHFEdebugTreeTask.cxx:637
 AliHFEdebugTreeTask.cxx:638
 AliHFEdebugTreeTask.cxx:639
 AliHFEdebugTreeTask.cxx:640
 AliHFEdebugTreeTask.cxx:641
 AliHFEdebugTreeTask.cxx:642
 AliHFEdebugTreeTask.cxx:643
 AliHFEdebugTreeTask.cxx:644
 AliHFEdebugTreeTask.cxx:645
 AliHFEdebugTreeTask.cxx:646
 AliHFEdebugTreeTask.cxx:647
 AliHFEdebugTreeTask.cxx:648
 AliHFEdebugTreeTask.cxx:649
 AliHFEdebugTreeTask.cxx:650
 AliHFEdebugTreeTask.cxx:651
 AliHFEdebugTreeTask.cxx:652
 AliHFEdebugTreeTask.cxx:653
 AliHFEdebugTreeTask.cxx:654
 AliHFEdebugTreeTask.cxx:655
 AliHFEdebugTreeTask.cxx:656
 AliHFEdebugTreeTask.cxx:657
 AliHFEdebugTreeTask.cxx:658
 AliHFEdebugTreeTask.cxx:659
 AliHFEdebugTreeTask.cxx:660
 AliHFEdebugTreeTask.cxx:661
 AliHFEdebugTreeTask.cxx:662
 AliHFEdebugTreeTask.cxx:663
 AliHFEdebugTreeTask.cxx:664
 AliHFEdebugTreeTask.cxx:665
 AliHFEdebugTreeTask.cxx:666
 AliHFEdebugTreeTask.cxx:667
 AliHFEdebugTreeTask.cxx:668
 AliHFEdebugTreeTask.cxx:669
 AliHFEdebugTreeTask.cxx:670
 AliHFEdebugTreeTask.cxx:671
 AliHFEdebugTreeTask.cxx:672
 AliHFEdebugTreeTask.cxx:673
 AliHFEdebugTreeTask.cxx:674
 AliHFEdebugTreeTask.cxx:675
 AliHFEdebugTreeTask.cxx:676
 AliHFEdebugTreeTask.cxx:677
 AliHFEdebugTreeTask.cxx:678
 AliHFEdebugTreeTask.cxx:679
 AliHFEdebugTreeTask.cxx:680
 AliHFEdebugTreeTask.cxx:681
 AliHFEdebugTreeTask.cxx:682
 AliHFEdebugTreeTask.cxx:683
 AliHFEdebugTreeTask.cxx:684
 AliHFEdebugTreeTask.cxx:685
 AliHFEdebugTreeTask.cxx:686
 AliHFEdebugTreeTask.cxx:687
 AliHFEdebugTreeTask.cxx:688
 AliHFEdebugTreeTask.cxx:689
 AliHFEdebugTreeTask.cxx:690
 AliHFEdebugTreeTask.cxx:691
 AliHFEdebugTreeTask.cxx:692
 AliHFEdebugTreeTask.cxx:693
 AliHFEdebugTreeTask.cxx:694
 AliHFEdebugTreeTask.cxx:695
 AliHFEdebugTreeTask.cxx:696
 AliHFEdebugTreeTask.cxx:697
 AliHFEdebugTreeTask.cxx:698
 AliHFEdebugTreeTask.cxx:699
 AliHFEdebugTreeTask.cxx:700
 AliHFEdebugTreeTask.cxx:701
 AliHFEdebugTreeTask.cxx:702
 AliHFEdebugTreeTask.cxx:703
 AliHFEdebugTreeTask.cxx:704
 AliHFEdebugTreeTask.cxx:705
 AliHFEdebugTreeTask.cxx:706
 AliHFEdebugTreeTask.cxx:707
 AliHFEdebugTreeTask.cxx:708
 AliHFEdebugTreeTask.cxx:709
 AliHFEdebugTreeTask.cxx:710
 AliHFEdebugTreeTask.cxx:711
 AliHFEdebugTreeTask.cxx:712
 AliHFEdebugTreeTask.cxx:713
 AliHFEdebugTreeTask.cxx:714
 AliHFEdebugTreeTask.cxx:715
 AliHFEdebugTreeTask.cxx:716
 AliHFEdebugTreeTask.cxx:717
 AliHFEdebugTreeTask.cxx:718
 AliHFEdebugTreeTask.cxx:719
 AliHFEdebugTreeTask.cxx:720
 AliHFEdebugTreeTask.cxx:721
 AliHFEdebugTreeTask.cxx:722
 AliHFEdebugTreeTask.cxx:723
 AliHFEdebugTreeTask.cxx:724
 AliHFEdebugTreeTask.cxx:725
 AliHFEdebugTreeTask.cxx:726
 AliHFEdebugTreeTask.cxx:727
 AliHFEdebugTreeTask.cxx:728
 AliHFEdebugTreeTask.cxx:729
 AliHFEdebugTreeTask.cxx:730
 AliHFEdebugTreeTask.cxx:731
 AliHFEdebugTreeTask.cxx:732
 AliHFEdebugTreeTask.cxx:733
 AliHFEdebugTreeTask.cxx:734
 AliHFEdebugTreeTask.cxx:735
 AliHFEdebugTreeTask.cxx:736
 AliHFEdebugTreeTask.cxx:737
 AliHFEdebugTreeTask.cxx:738
 AliHFEdebugTreeTask.cxx:739
 AliHFEdebugTreeTask.cxx:740
 AliHFEdebugTreeTask.cxx:741
 AliHFEdebugTreeTask.cxx:742
 AliHFEdebugTreeTask.cxx:743
 AliHFEdebugTreeTask.cxx:744
 AliHFEdebugTreeTask.cxx:745
 AliHFEdebugTreeTask.cxx:746
 AliHFEdebugTreeTask.cxx:747
 AliHFEdebugTreeTask.cxx:748
 AliHFEdebugTreeTask.cxx:749
 AliHFEdebugTreeTask.cxx:750
 AliHFEdebugTreeTask.cxx:751
 AliHFEdebugTreeTask.cxx:752
 AliHFEdebugTreeTask.cxx:753
 AliHFEdebugTreeTask.cxx:754
 AliHFEdebugTreeTask.cxx:755
 AliHFEdebugTreeTask.cxx:756
 AliHFEdebugTreeTask.cxx:757
 AliHFEdebugTreeTask.cxx:758
 AliHFEdebugTreeTask.cxx:759
 AliHFEdebugTreeTask.cxx:760
 AliHFEdebugTreeTask.cxx:761
 AliHFEdebugTreeTask.cxx:762
 AliHFEdebugTreeTask.cxx:763
 AliHFEdebugTreeTask.cxx:764
 AliHFEdebugTreeTask.cxx:765
 AliHFEdebugTreeTask.cxx:766
 AliHFEdebugTreeTask.cxx:767
 AliHFEdebugTreeTask.cxx:768
 AliHFEdebugTreeTask.cxx:769
 AliHFEdebugTreeTask.cxx:770
 AliHFEdebugTreeTask.cxx:771
 AliHFEdebugTreeTask.cxx:772
 AliHFEdebugTreeTask.cxx:773
 AliHFEdebugTreeTask.cxx:774
 AliHFEdebugTreeTask.cxx:775
 AliHFEdebugTreeTask.cxx:776
 AliHFEdebugTreeTask.cxx:777
 AliHFEdebugTreeTask.cxx:778
 AliHFEdebugTreeTask.cxx:779
 AliHFEdebugTreeTask.cxx:780
 AliHFEdebugTreeTask.cxx:781
 AliHFEdebugTreeTask.cxx:782
 AliHFEdebugTreeTask.cxx:783
 AliHFEdebugTreeTask.cxx:784
 AliHFEdebugTreeTask.cxx:785
 AliHFEdebugTreeTask.cxx:786
 AliHFEdebugTreeTask.cxx:787
 AliHFEdebugTreeTask.cxx:788
 AliHFEdebugTreeTask.cxx:789
 AliHFEdebugTreeTask.cxx:790
 AliHFEdebugTreeTask.cxx:791
 AliHFEdebugTreeTask.cxx:792
 AliHFEdebugTreeTask.cxx:793
 AliHFEdebugTreeTask.cxx:794
 AliHFEdebugTreeTask.cxx:795
 AliHFEdebugTreeTask.cxx:796
 AliHFEdebugTreeTask.cxx:797
 AliHFEdebugTreeTask.cxx:798
 AliHFEdebugTreeTask.cxx:799
 AliHFEdebugTreeTask.cxx:800
 AliHFEdebugTreeTask.cxx:801
 AliHFEdebugTreeTask.cxx:802
 AliHFEdebugTreeTask.cxx:803
 AliHFEdebugTreeTask.cxx:804
 AliHFEdebugTreeTask.cxx:805
 AliHFEdebugTreeTask.cxx:806
 AliHFEdebugTreeTask.cxx:807
 AliHFEdebugTreeTask.cxx:808
 AliHFEdebugTreeTask.cxx:809
 AliHFEdebugTreeTask.cxx:810
 AliHFEdebugTreeTask.cxx:811
 AliHFEdebugTreeTask.cxx:812
 AliHFEdebugTreeTask.cxx:813
 AliHFEdebugTreeTask.cxx:814
 AliHFEdebugTreeTask.cxx:815
 AliHFEdebugTreeTask.cxx:816
 AliHFEdebugTreeTask.cxx:817
 AliHFEdebugTreeTask.cxx:818
 AliHFEdebugTreeTask.cxx:819
 AliHFEdebugTreeTask.cxx:820
 AliHFEdebugTreeTask.cxx:821
 AliHFEdebugTreeTask.cxx:822
 AliHFEdebugTreeTask.cxx:823
 AliHFEdebugTreeTask.cxx:824
 AliHFEdebugTreeTask.cxx:825
 AliHFEdebugTreeTask.cxx:826
 AliHFEdebugTreeTask.cxx:827
 AliHFEdebugTreeTask.cxx:828
 AliHFEdebugTreeTask.cxx:829
 AliHFEdebugTreeTask.cxx:830
 AliHFEdebugTreeTask.cxx:831
 AliHFEdebugTreeTask.cxx:832
 AliHFEdebugTreeTask.cxx:833
 AliHFEdebugTreeTask.cxx:834
 AliHFEdebugTreeTask.cxx:835
 AliHFEdebugTreeTask.cxx:836
 AliHFEdebugTreeTask.cxx:837
 AliHFEdebugTreeTask.cxx:838
 AliHFEdebugTreeTask.cxx:839
 AliHFEdebugTreeTask.cxx:840
 AliHFEdebugTreeTask.cxx:841
 AliHFEdebugTreeTask.cxx:842
 AliHFEdebugTreeTask.cxx:843
 AliHFEdebugTreeTask.cxx:844
 AliHFEdebugTreeTask.cxx:845
 AliHFEdebugTreeTask.cxx:846
 AliHFEdebugTreeTask.cxx:847
 AliHFEdebugTreeTask.cxx:848
 AliHFEdebugTreeTask.cxx:849