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 AliHFEtaggedTrackAnalysis
// Analyses tracks with an apriori PID information (i.e. using the daugther
// tracks from well-identified decays of neutral charged particles). Tracks
// are processed in the Process function, where given tracks are filtered 
// via the track cuts and used for PID later. The plugin fills Correction
// Framework containers and additional PID QA containers
//
// Author:
//   Markus Fasel <M.Fasel@gsi.de>
//
#include "AliCFCutBase.h"
#include "AliCFContainer.h"
#include "AliCFManager.h"
#include "AliESDtrack.h"
#include "AliLog.h"
#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliExternalTrackParam.h"

#include "AliHFEcollection.h"
#include "AliHFEcontainer.h"
#include "AliHFEcuts.h"
#include "AliHFEpid.h"
#include "AliHFEpidTPC.h"
#include "AliHFEpidQAmanager.h"
#include "AliHFEtaggedTrackAnalysis.h"
#include "AliHFEvarManager.h"

ClassImp(AliHFEtaggedTrackAnalysis)
//____________________________________________________________
AliHFEtaggedTrackAnalysis::AliHFEtaggedTrackAnalysis():
    TNamed()
  , fVarManager(NULL)
  , fContainer(NULL)
  , fPID(NULL)
  , fPIDqa(NULL)
  , fCuts(NULL)
  , fCFM(NULL)
  , fQAhistos(NULL)
  , fCentralityF(0)
  , fClean(kFALSE)
  , fMagneticField(0.0)
  , fVariablesTRD(kFALSE)
  , fIsPbPb(kFALSE)
  , fIspPb(kFALSE)
  , fIsAOD(kFALSE)
{
  //
  // Dummy constructor
  //
}

//____________________________________________________________
AliHFEtaggedTrackAnalysis::AliHFEtaggedTrackAnalysis(const char *name):
    TNamed(name, "")
  , fVarManager(NULL)
  , fContainer(NULL)
  , fPID(NULL)
  , fPIDqa(NULL)
  , fCuts(NULL)
  , fCFM(NULL)
  , fQAhistos(NULL)
  , fCentralityF(0)
  , fClean(kFALSE)
  , fMagneticField(0.0)
  , fVariablesTRD(kFALSE)
  , fIsPbPb(kFALSE)
  , fIspPb(kFALSE)
  , fIsAOD(kFALSE)
{
  //
  // Default constructor
  //
  fVarManager = new AliHFEvarManager("taggedTrackVarManager");
  //fVarManager->AddVariable("pt");
  //fVarManager->AddVariable("eta");
  //fVarManager->AddVariable("phi");
  //fVarManager->AddVariable("charge");
  //fVarManager->AddVariable("species");
  fPIDqa = new AliHFEpidQAmanager;
  fCFM = new AliCFManager;
  SetBit(kIsOwner, kTRUE);
}

//____________________________________________________________
AliHFEtaggedTrackAnalysis::AliHFEtaggedTrackAnalysis(const AliHFEtaggedTrackAnalysis &ref):
    TNamed(ref)
  , fVarManager(ref.fVarManager)
  , fContainer(NULL)
  , fPID(ref.fPID)
  , fPIDqa(ref.fPIDqa)
  , fCuts(ref.fCuts)
  , fCFM(ref.fCFM)
  , fQAhistos(ref.fQAhistos)
  , fCentralityF(ref.fCentralityF)
  , fClean(ref.fClean)
  , fMagneticField(ref.fMagneticField)
  , fVariablesTRD(ref.fVariablesTRD)
  , fIsPbPb(ref.fIsPbPb)
  , fIspPb(ref.fIspPb)
  , fIsAOD(ref.fIsAOD)
{
  //
  // Copy constructor
  //
  if(ref.fContainer){
    InitContainer();
  }
  SetBit(kIsOwner, kFALSE);
}

//____________________________________________________________
AliHFEtaggedTrackAnalysis &AliHFEtaggedTrackAnalysis::operator=(const AliHFEtaggedTrackAnalysis &ref){
  //
  // Assignment operator
  //
  TNamed::operator=(ref);
  if(&ref != this){
    fVarManager = ref.fVarManager;
    fPID = ref.fPID;
    fPIDqa = ref.fPIDqa;
    fCuts = ref.fCuts;
    fCFM = ref.fCFM;
    fQAhistos = ref.fQAhistos;
    fCentralityF = ref.fCentralityF;
    fClean = ref.fClean;
    fMagneticField = ref.fMagneticField;
    fVariablesTRD = ref.fVariablesTRD;
    fIsPbPb = ref.fIsPbPb;
    fIspPb = ref.fIspPb;
    fIsAOD = ref.fIsAOD;

    if(ref.fContainer) InitContainer();
   
    SetBit(kIsOwner, kFALSE); 
    SetBit(kIsOwnerCuts, kFALSE);
  }
  return *this;
}

//____________________________________________________________
AliHFEtaggedTrackAnalysis::~AliHFEtaggedTrackAnalysis(){
  //
  // Destructor
  //
  if(TestBit(kIsOwner)){
    if(fVarManager) delete fVarManager;
    if(fPIDqa) delete fPIDqa;
  }
  if(TestBit(kIsOwnerCuts)) delete fCuts;
  if(fContainer) delete fContainer;
}

//____________________________________________________________
void AliHFEtaggedTrackAnalysis::InitContainer(){
  //
  // Initialize output container
  //
  if(fContainer) return;
  Int_t nStepPID = 0;
  if(!fPID){
    AliError("No PID set - defining container without PID steps");
  } else {
    nStepPID = fPID->GetNumberOfPIDdetectors();
  }
  fContainer = new AliHFEcontainer("containerV0");
  fVarManager->DefineVariables(fContainer);
  fContainer->CreateContainer("taggedTrackContainerReco", "Container for Tagged Tracks", AliHFEcuts::kNcutStepsRecTrack + nStepPID);

  // Set the step titles
  for(Int_t istep = 0; istep < AliHFEcuts::kNcutStepsRecTrack; istep++)
    fContainer->SetStepTitle("taggedTrackContainerReco", AliHFEcuts::RecoCutName(istep), istep);
  for(Int_t ipid = 0; ipid < nStepPID; ipid++){
    fContainer->SetStepTitle("taggedTrackContainerReco", fPID->SortedDetectorName(ipid), ipid + AliHFEcuts::kNcutStepsRecTrack);
  }
  fCFM->SetParticleContainer(fContainer->GetCFContainer("taggedTrackContainerReco"));

  // temporarily special QA
  fQAhistos = new AliHFEcollection("taggedTrackQA", "Special QA for the TaggedTrackAnalysis");
  fQAhistos->CreateTH2F("TPCclusters2_1", "TPCclusterInfo for findable clusters for 2 neighbors", 30, 0.1, 10., 162, 0., 161.);
  fQAhistos->CreateTH2F("TPCclusters2_0", "TPCclusterInfo for the ratio for 2 neighbors", 30, 0.1, 10., 110, 0., 1.1);
  fQAhistos->CreateTH2F("TPCncls", "TPC number of clusters", 30, 0.1, 10., 162, 0., 161.);
  fQAhistos->CreateTH2F("TPCclr", "TPC cluster ratio", 30, 0.1, 10., 110, 0., 1.1);
  fQAhistos->BinLogAxis("TPCclusters2_1", 0);   // pt axis in logarithmic binning
  fQAhistos->BinLogAxis("TPCclusters2_0", 0);   // pt axis in logarithmic binning
  fQAhistos->BinLogAxis("TPCncls", 0);   // pt axis in logarithmic binning
  fQAhistos->BinLogAxis("TPCclr", 0);   // pt axis in logarithmic binning
}

//____________________________________________________________
void AliHFEtaggedTrackAnalysis::ProcessTrack(AliVTrack *track, Int_t abinitioPID){
  //
  // Filter tracks tagged by V0 PID class
  //
  //
  fVarManager->NewTrack(track, NULL, fCentralityF, abinitioPID, kTRUE);



  // Phi Angle
  if(fVariablesTRD) {
    AliESDtrack *esdtrackc = dynamic_cast<AliESDtrack *>(track);
    if(esdtrackc) {
      
      const AliExternalTrackParam *trueparam = NULL;
      if(esdtrackc->GetOuterParam()) {
	trueparam = esdtrackc->GetOuterParam();
	fVarManager->NewTrack((AliVParticle *)trueparam, NULL, fCentralityF, abinitioPID, kTRUE);
      }
      else return;
    }
  }
  

  // Try a loose cut to reject pion contamination
  if(fClean) {
    if(abinitioPID == AliPID::kElectron){
      AliHFEpidTPC *pidTPC = (AliHFEpidTPC *) fPID->GetDetPID(AliHFEpid::kTPCpid);
      if(pidTPC) {
	      Double_t numberOfSigmaTPC = pidTPC->GetPIDResponse()->NumberOfSigmasTPC(track,AliPID::kElectron);
	      if(numberOfSigmaTPC < -5) return;
      }
    }
  }
  // temporarily monitoring of the number of TPC clusters 
  AliESDtrack *esdtrack = dynamic_cast<AliESDtrack *>(track);
  if(esdtrack && abinitioPID == AliPID::kElectron){
    if((esdtrack->GetITSClusterMap() & (BIT(0) | BIT(1))) && (TMath::Abs(esdtrack->Eta()) < 0.8)){  // Only select quasi-primary tracks
      fQAhistos->Fill("TPCclusters2_1", track->Pt(), esdtrack->GetTPCClusterInfo(2,1));
      fQAhistos->Fill("TPCclusters2_0", track->Pt(), esdtrack->GetTPCNclsF() > 0 ? esdtrack->GetTPCClusterInfo(2,1)/esdtrack->GetTPCNclsF() : 0.);
      fQAhistos->Fill("TPCncls", track->Pt(), esdtrack->GetTPCNcls());
      fQAhistos->Fill("TPCclr", track->Pt(), esdtrack->GetTPCNclsF() > 0 ? static_cast<Double_t>(esdtrack->GetTPCNcls())/static_cast<Double_t>(esdtrack->GetTPCNclsF()) : 0.);
    }
   }
   
  Int_t offset = AliHFEcuts::kStepRecKineITSTPC;
  fVarManager->FillContainer(fCFM->GetParticleContainer(), 0); // Fill Container without filtering
  
  Bool_t survived = kTRUE;
  for(Int_t icut = AliHFEcuts::kStepRecKineITSTPC; icut <= AliHFEcuts::kStepHFEcutsTRD; icut++){
    AliDebug(2, Form("Checking cut %d for species %s", icut + AliHFEcuts::kNcutStepsMCTrack, AliPID::ParticleName(abinitioPID)));
    /*
      TObjArray *cutlist = fCFM->GetParticleCutsList(icut + AliHFEcuts::kNcutStepsMCTrack);
      if(!cutlist){
      AliDebug(2, Form("No cuts for step %d set", icut + AliHFEcuts::kNcutStepsMCTrack));
      } else {
      AliDebug(2, Form("Cut Collection %s", cutlist->GetName()));
      TIter cutiter(cutlist);
      AliCFCutBase *cut;
      while((cut = dynamic_cast<AliCFCutBase *>(cutiter()))){
      AliDebug(2, Form("Cut object %s, QA on? %s", cut->GetName(), cut->IsQAOn() ? "yes" : "no"));
      }
      }
    */
    //if(!fCFM->CheckParticleCuts(icut + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)){
    if(!fCuts->CheckParticleCuts(icut + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)){
      AliDebug(2, Form("Track didn' survive cut %d", icut + AliHFEcuts::kNcutStepsMCTrack));
      survived = kFALSE;
      break;
    }
    AliDebug(2, Form("Cut passed, filling container %d", icut - offset + 1));
    fVarManager->FillContainer(fCFM->GetParticleContainer(), icut - offset + 1);
  }
  
   if(survived){
     AliDebug(2, "Use track in the PID");
     // Apply PID
     AliHFEpidObject hfetrack;
     if(!fIsAOD) hfetrack.SetAnalysisType(AliHFEpidObject::kESDanalysis);
     else hfetrack.SetAnalysisType(AliHFEpidObject::kAODanalysis);
     hfetrack.SetRecTrack(track);
     hfetrack.SetAbInitioPID(abinitioPID);
     hfetrack.SetCentrality(fCentralityF);
     if(fIsPbPb) hfetrack.SetPbPb();
     else
     {
	 if(fIspPb) hfetrack.SetpPb();
	 else hfetrack.SetPP();
     }
     fPID->SetVarManager(fVarManager);
     fPID->IsSelected(&hfetrack, fContainer, "taggedTrackContainer", fPIDqa);
   }
}

//____________________________________________________________
void AliHFEtaggedTrackAnalysis::SetCuts(AliHFEcuts *cuts){
  //
  // Set HFE cuts to be used to filter the tagged tracks
  //
  if(!cuts){
    AliWarning("Nob cuts provided - Using standard cuts");
    fCuts = new AliHFEcuts("cutsTagged", "HFE Cuts for the V0 tagged tracks");
    fCuts->CreateStandardCuts();
    fCuts->SetQAOn();
    SetBit(kIsOwnerCuts);
  } else {
    AliDebug(1, "Setting single track cuts");
    fCuts = cuts;
  }
  const Int_t kNcutSteps = AliHFEcuts::kNcutStepsMCTrack + AliHFEcuts::kNcutStepsRecTrack + AliHFEcuts::kNcutStepsDETrack;
  printf("Setting Number of cut steps %d\n", kNcutSteps);
  fCFM->SetNStepParticle(kNcutSteps);
  for(Int_t istep = 0; istep < kNcutSteps; istep++)
    fCFM->SetParticleCutsList(istep, NULL);

  fCuts->Initialize(fCFM); 
}

//____________________________________________________________
void AliHFEtaggedTrackAnalysis::SetPID(AliHFEpid *pid){
  //
  // Set the PID and initialize the the QA manager
  //
  fPID = pid;
  fPIDqa->Initialize(fPID);
}

//____________________________________________________________
TList *AliHFEtaggedTrackAnalysis::GetPIDQA() const {
  //
  // return PID QA 
  //
  return fPIDqa->MakeList("PIDqa_taggedTracks");
}

//____________________________________________________________
TList *AliHFEtaggedTrackAnalysis::GetCutQA() const {
  //
  // return Cut QA
  //
  return fCuts->GetQAhistograms();
}


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