ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2006, 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.                  *
 **************************************************************************/

/* $Id$ */

/////////////////////////////////////////////////////////////
//
// class used to extract and store info at event level
//
// Author: X-M. Zhang, zhang@clermont.in2p3.fr
//                     zhangxm@iopp.ccnu.edu.cn
/////////////////////////////////////////////////////////////

#include <TMath.h>
#include <TH1.h>
#include <TH1D.h>
#include <TList.h>

#include "AliInputEventHandler.h"
#include "AliAODMCHeader.h"
#include "AliVEvent.h"
#include "AliAODEvent.h"
#include "AliESDEvent.h"
#include "AliVVertex.h"
#include "AliCentrality.h"
#include "AliEventplane.h"

#include "AliMuonTrackCuts.h"
#include "AliMuonInfoStoreRD.h"
#include "AliMuonInfoStoreMC.h"
#include "AliDimuInfoStoreRD.h"
#include "AliDimuInfoStoreMC.h"
#include "AliMuonsHFHeader.h"

ClassImp(AliMuonsHFHeader)

const TString AliMuonsHFHeader::fgkStdBranchName("MuEvsH");
Int_t         AliMuonsHFHeader::fgAnaMode = 0;
Bool_t        AliMuonsHFHeader::fgIsMC    = kFALSE;
Double_t      AliMuonsHFHeader::fgCuts[5] = { -999999., 999999., 999999., -999999., 999999. };

//_____________________________________________________________________________
AliMuonsHFHeader::AliMuonsHFHeader() :
TNamed(),
fSelMask(AliVEvent::kAny),
fIsMB(kFALSE),
fIsMU(kFALSE),
fIsPileupSPD(kFALSE),
fVtxContrsN(0),
fFiredTriggerClass(),
fCentrality(-1.),
fCentQA(-1),
fEventPlane(0.)
{
  //
  // default constructor
  //
  for (Int_t i=3; i--;) fVtx[i] = 0.;
  for (Int_t i=3; i--;) fVMC[i] = 0.;
}

//_____________________________________________________________________________
AliMuonsHFHeader::AliMuonsHFHeader(const AliMuonsHFHeader &src) :
TNamed(),
fSelMask(src.fSelMask),
fIsMB(src.fIsMB),
fIsMU(src.fIsMU),
fIsPileupSPD(src.fIsPileupSPD),
fVtxContrsN(src.fVtxContrsN),
fFiredTriggerClass(src.fFiredTriggerClass),
fCentrality(src.fCentrality),
fCentQA(src.fCentQA),
fEventPlane(src.fEventPlane)
{
  //
  // copy constructor
  //
  for (Int_t i=3; i--;) fVtx[i] = src.fVtx[i];
  for (Int_t i=3; i--;) fVMC[i] = src.fVMC[i];
}

//_____________________________________________________________________________
AliMuonsHFHeader& AliMuonsHFHeader::operator=(const AliMuonsHFHeader &src)
{
  //
  // assignment constructor
  //

  if(&src==this) return *this;

  fSelMask           = src.fSelMask;
  fIsMB              = src.fIsMB;
  fIsMU              = src.fIsMU;
  fIsPileupSPD       = src.fIsPileupSPD;
  fVtxContrsN        = src.fVtxContrsN;
  fFiredTriggerClass = src.fFiredTriggerClass;
  fCentrality        = src.fCentrality;
  fCentQA            = src.fCentQA;
  fEventPlane        = src.fEventPlane;
  for (Int_t i=3; i--;) fVtx[i] = src.fVtx[i];
  for (Int_t i=3; i--;) fVMC[i] = src.fVMC[i];

  return *this;
}

//_____________________________________________________________________________
AliMuonsHFHeader::~AliMuonsHFHeader()
{
  //
  // default destructor
  //
}

//_____________________________________________________________________________
void AliMuonsHFHeader::SetEventInfo(AliInputEventHandler* const handler, AliMCEvent* const eventMC)
{
  // fill info at event level

  AliVEvent *event = handler->GetEvent();
  AliAODEvent *aod = dynamic_cast<AliAODEvent*>(event);
  AliESDEvent *esd = dynamic_cast<AliESDEvent*>(event);

  fSelMask = handler->IsEventSelected();
  if (aod) fFiredTriggerClass = aod->GetFiredTriggerClasses();
  if (esd) fFiredTriggerClass = esd->GetFiredTriggerClasses();
  fIsMB = fSelMask & AliVEvent::kMB;
  fIsMU = fSelMask & AliVEvent::kMUON;

  const AliVVertex *vertex = event->GetPrimaryVertex();
  vertex->GetXYZ(fVtx);
  fVtxContrsN = vertex->GetNContributors();
  if (fgIsMC) {
    if (esd)   eventMC->GetPrimaryVertex()->GetXYZ(fVMC);
    if (aod) ((AliAODMCHeader*)aod->FindListObject(AliAODMCHeader::StdBranchName()))->GetVertex(fVMC);
  } this->SetTitle(vertex->GetTitle());
  fIsPileupSPD = (aod && !aod->GetTracklets()) ? event->IsPileupFromSPD(3,0.8,3.,2.,5.) : event->IsPileupFromSPDInMultBins();

  AliCentrality *cent = event->GetCentrality();
  if (cent) {
    fCentrality = cent->GetCentralityPercentileUnchecked("V0M");
    fCentQA     = cent->GetQuality();
  }

  AliEventplane *evnP = event->GetEventplane();
  if (evnP) fEventPlane = evnP->GetEventplane("Q");
//if (evnP) fEventPlane = evnP->GetEventplane("V0A");

  return;
}

//_____________________________________________________________________________
Bool_t AliMuonsHFHeader::IsSelected()
{
  // select event according to the event selection cuts
  if (this->VtxContrsN()<fgCuts[0])       return kFALSE;
  if (TMath::Abs(this->Vz())>fgCuts[1])   return kFALSE;
  if (this->Vt()>fgCuts[2])               return kFALSE;

  // centrality selection
  Float_t centr = this->Centrality();
  if (centr<fgCuts[3] || centr>fgCuts[4]) return kFALSE;
  return kTRUE;
}

//_____________________________________________________________________________
void AliMuonsHFHeader::CreateHistograms(TList *list)
{
  // create output histos of muon analysis according to the analysis mode & MC flag

  if (fgIsMC) {
    this->CreateHistosEvnH(list);
    if (fgAnaMode!=2) {
      TString sName[7] = { "Unidentified", "Hadron", "SecondaryMu", "PrimaryMu", "CharmMu", "BottomMu", "" };
      for (Int_t i=7; i--;) this->CreateHistosMuon(list, sName[i]);
    }
    if (fgAnaMode!=1) {
      TString sName[7] = { "Uncorr", "Resonance", "DDsame", "DDdiff", "BBsame", "BBdiff", "" };
      for (Int_t i=7; i--;) this->CreateHistosDimu(list, sName[i]);
    }
    return;
  }

  this->CreateHistosEvnH(list,"MB"); this->CreateHistosEvnH(list,"MU");
  if (fgAnaMode!=2) { this->CreateHistosMuon(list,"MB"); this->CreateHistosMuon(list,"MU"); }
  if (fgAnaMode!=1) { this->CreateHistosDimu(list,"MB"); this->CreateHistosDimu(list,"MU"); }
  return;
}

//_____________________________________________________________________________
void AliMuonsHFHeader::CreateHistosEvnH(TList *list, TString sName)
{
  // create histograms at event level

  if (!list) list = new TList();
  list->SetOwner();
  Bool_t oldStatus = TH1::AddDirectoryStatus();
  TH1::AddDirectory(kFALSE);

  const Int_t nhs    = 3;
  TString tName[nhs] = {  "Vz",  "Vt",  "VtxNcontr" };
  Int_t   nbins[nhs] = {  800 ,   40 ,        202   };
  Double_t xlow[nhs] = {  -40.,    0.,         -2.5 };
  Double_t  xup[nhs] = {   40.,    4.,        199.5 };

  TH1D *histo = 0;
  for (Int_t i=0; i<nhs; i++) {
    char *hName = Form("h%s_%s", sName.Data(), tName[i].Data());
    histo = new TH1D(hName, hName, nbins[i], xlow[i], xup[i]);
    histo->Sumw2(); list->Add(histo); histo = 0;
  }

  TH1::AddDirectory(oldStatus);
  return;
}

//_____________________________________________________________________________
void AliMuonsHFHeader::CreateHistosMuon(TList *list, TString sName)
{
  // create histograms for single muon

  if (!list) list = new TList();
  list->SetOwner();
  Bool_t oldStatus = TH1::AddDirectoryStatus();
  TH1::AddDirectory(kFALSE);

  const Int_t nhs    = 7;
  TString tName[nhs] = {   "P",  "Pt",  "Eta",  "DCA",  "TrM",  "Charge", "Rabs" };
  Int_t   nbins[nhs] = { 1500 ,  300 ,    15 ,  1000 ,    4  ,       3  ,    48  };
  Double_t xlow[nhs] = {    0.,    0.,   -4.0,     0.,   -0.5,      -1.5,   17.6 };
  Double_t  xup[nhs] = {  150.,   30.,   -2.5,   500.,    3.5,       1.5,   80.0 };

  TH1D *histo = 0;
  for (Int_t i=0; i<nhs; i++) {
    char *hName = Form("h%s_%s", sName.Data(), tName[i].Data());
    histo = new TH1D(hName, hName, nbins[i], xlow[i], xup[i]);
    histo->Sumw2(); list->Add(histo); histo = 0;
  }

  TH1::AddDirectory(oldStatus);
  return;
}

//_____________________________________________________________________________
void AliMuonsHFHeader::CreateHistosDimu(TList *list, TString sName)
{
  // create histograms for dimuon

  if (!list) list = new TList();
  list->SetOwner();
  Bool_t oldStatus = TH1::AddDirectoryStatus();
  TH1::AddDirectory(kFALSE);

  TH1D *histo = 0;
  const Int_t nhs    = 3;
  TString tName[nhs] = {   "P",  "Pt",  "InvM"   };
  Int_t   nbins[nhs] = { 1500 ,  300 ,    300    };
  Double_t xlow[nhs] = {    0.,    0.,      0.   };
  Double_t  xup[nhs] = {  150.,   30.,     30.   };
  TString dimuName[3] = { "DimuNN", "DimuNP", "DimuPP" };
  for (Int_t i=0; i<3; i++) {
    for (Int_t j=0; j<nhs; j++) {
      char *hName = Form("h%s_%s_%s", sName.Data(), dimuName[i].Data(), tName[j].Data());
      histo = new TH1D(hName, hName, nbins[j], xlow[j], xup[j]);
      histo->Sumw2(); list->Add(histo); histo = 0;
    }
  }

  TH1::AddDirectory(oldStatus);
  return;
}

//_____________________________________________________________________________
void AliMuonsHFHeader::FillHistosEvnH(TList *list)
{
  // fill histograms at event level according to event selection cuts

  if (!list)               return;
  if (!this->IsSelected()) return;

  const Int_t nhs    = 3;
  TString tName[nhs] = {       "Vz",       "Vt",        "VtxNcontr" };
  Double_t dist[nhs] = { this->Vz(), this->Vt(), static_cast<Double_t>(this->VtxContrsN()) };
  if (fgIsMC && (fSelMask & AliVEvent::kAny)) {
    for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h_%s",tName[i].Data())))->Fill(dist[i]);
  } else {
    if (fIsMB && (fSelMask & AliVEvent::kMB))   { for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s","MB",tName[i].Data())))->Fill(dist[i]); }
    if (fIsMU && (fSelMask & AliVEvent::kMUON)) { for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s","MU",tName[i].Data())))->Fill(dist[i]); }
  }
  return;
}

//_____________________________________________________________________________
void AliMuonsHFHeader::FillHistosMuon(TList *list, AliMuonInfoStoreRD* const infoStore, Int_t s)
{
  // fill histograms for single muon according to event & muon track selection cuts

  if (!list)                     return;
  if (!this->IsSelected())       return;
  if (!infoStore->IsSelected(0)) return;

  const Int_t nhs    = 7;
  TString tName[nhs] = { "P", "Pt", "Eta", "DCA", "TrM", "Charge", "Rabs" };
  Double_t dist[nhs] = { infoStore->MomentumAtVtx().Mag(),
                         infoStore->MomentumAtVtx().Pt(),
                         infoStore->MomentumAtVtx().Eta(),
                         infoStore->DCA(),
                         static_cast<Double_t>(infoStore->MatchTrigger()),
                         static_cast<Double_t>(infoStore->Charge()),
                         infoStore->RabsEnd() };

  if (fgIsMC && (fSelMask & AliVEvent::kAny)) {
    TString sName[7] = { "BottomMu", "CharmMu", "PrimaryMu", "SecondaryMu", "Hadron", "Unidentified", "" };
    for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s",sName[6].Data(),tName[i].Data())))->Fill(dist[i]);
    for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s",sName[s].Data(),tName[i].Data())))->Fill(dist[i]);
  } else {
    if (fIsMB && (fSelMask & AliVEvent::kMB))   { for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s","MB",tName[i].Data())))->Fill(dist[i]); }
    if (fIsMU && (fSelMask & AliVEvent::kMUON)) { for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s","MU",tName[i].Data())))->Fill(dist[i]); }
  }

  return; 
}

//_____________________________________________________________________________
void AliMuonsHFHeader::FillHistosDimu(TList *list, AliDimuInfoStoreRD* const infoStore, Int_t s)
{
  // fill histograms for dimuon according to evnet & dimuon candidates selection cuts

  if (!list)                     return;
  if (!this->IsSelected())       return;
  if (!infoStore->IsSelected(0)) return;

  TString dimuName = "DimuNN";
  if (infoStore->Charge()==0)     dimuName = "DimuNP";
  else if (infoStore->Charge()>0) dimuName = "DimuPP";

  const Int_t nhs    = 3;
  TString tName[nhs] = { "P", "Pt", "InvM" };
  Double_t dist[nhs] = { infoStore->Momentum().Mag(),
                         infoStore->Momentum().Pt(),
                         infoStore->InvM() };

  if (fgIsMC && (fSelMask & AliVEvent::kAny)) {
    TString sName[7] = { "BBdiff", "BBsame", "DDdiff", "DDsame", "Resonance", "Uncorr", "" };
    for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s_%s",sName[6].Data(),dimuName.Data(),tName[i].Data())))->Fill(dist[i]);
    for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s_%s",sName[s].Data(),dimuName.Data(),tName[i].Data())))->Fill(dist[i]);
  } else {
    if (fIsMB && (fSelMask & AliVEvent::kMB)) {
      for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s_%s","MB",dimuName.Data(),tName[i].Data())))->Fill(dist[i]);
    }
    if (fIsMU && (fSelMask & AliVEvent::kMUON)) {
      for (Int_t i=nhs; i--;) ((TH1D*)list->FindObject(Form("h%s_%s_%s","MU",dimuName.Data(),tName[i].Data())))->Fill(dist[i]);
    }
  }

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