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

/////////////////////////////////////////////////////////////
//
// AliAnalysisTaskSE for the single muon and dimuon from HF analysis,
// using the classes AliMuonsHFHeader,
//                   AliMuonInfoStoreRD,
//                   AliDimuInfoStoreRD,
//                   AliMuonInfoStoreMC,
//                   AliDimuInfoStoreMC.
//
// Author: X-M. Zhang, zhang@clermont.in2p3.fr
//                     zhangxm@iopp.ccnu.edu.cn
/////////////////////////////////////////////////////////////

#include <TList.h>
#include <TClonesArray.h>

#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliESDHeader.h"
#include "AliAODHeader.h"
#include "AliESDMuonTrack.h"
#include "AliAODTrack.h"
#include "AliCentrality.h"
#include "AliMuonsHFHeader.h"
#include "AliMuonInfoStoreRD.h"
#include "AliMuonInfoStoreMC.h"
#include "AliDimuInfoStoreRD.h"
#include "AliDimuInfoStoreMC.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliMuonTrackCuts.h"
#include "AliMuonPairCuts.h"
#include "AliAnalysisTaskSEMuonsHF.h"

ClassImp(AliAnalysisTaskSEMuonsHF)

//_____________________________________________________________________________
AliAnalysisTaskSEMuonsHF::AliAnalysisTaskSEMuonsHF() :
AliAnalysisTaskSE(),
fAnaMode(0),
fIsOutputTree(kFALSE),
fIsMC(kFALSE),
fCutsMuon(0x0),
fCutsDimu(0x0),
fHeader(0),
fMuonClArr(0),
fDimuClArr(0),
fListOutput(0)
{
  //
  // Default constructor
  //
}

//_____________________________________________________________________________
AliAnalysisTaskSEMuonsHF::AliAnalysisTaskSEMuonsHF(const char *name, const AliMuonTrackCuts& cutsMuon, const AliMuonPairCuts& cutsDimu) :
AliAnalysisTaskSE(name),
fAnaMode(0),
fIsOutputTree(kFALSE),
fIsMC(kFALSE),
fCutsMuon(new AliMuonTrackCuts(cutsMuon)),
fCutsDimu(new AliMuonPairCuts(cutsDimu)),
fHeader(0),
fMuonClArr(0),
fDimuClArr(0),
fListOutput(0)
{
  //
  // Constructor
  //
  DefineOutput(1, TList::Class());
}

//_____________________________________________________________________________
AliAnalysisTaskSEMuonsHF::~AliAnalysisTaskSEMuonsHF()
{
  //
  // Default destructor
  //
  if (fCutsMuon)   { delete fCutsMuon;   fCutsMuon  =NULL; }
  if (fCutsDimu)   { delete fCutsDimu;   fCutsDimu  =NULL; }
  if (fHeader)     { delete fHeader;     fHeader    =NULL; }
  if (fMuonClArr)  { delete fMuonClArr;  fMuonClArr =NULL; }
  if (fDimuClArr)  { delete fDimuClArr;  fDimuClArr =NULL; }
  if (fListOutput) { delete fListOutput; fListOutput=NULL; }
}

//_____________________________________________________________________________
void AliAnalysisTaskSEMuonsHF::Init()
{
  // Initialization
  // Setting and initializing the running mode and status

  AliMuonsHFHeader::SetAnaMode(fAnaMode);
  AliMuonsHFHeader::SetIsMC(fIsMC);
  if (!fHeader) {
    fHeader = new AliMuonsHFHeader();
    fHeader->SetName(AliMuonsHFHeader::StdBranchName());
  }

  if (!fMuonClArr) {
    if (fIsMC) { 
      fMuonClArr = new TClonesArray("AliMuonInfoStoreMC", 0);
      fMuonClArr->SetName(AliMuonInfoStoreMC::StdBranchName());
    } else {
      fMuonClArr = new TClonesArray("AliMuonInfoStoreRD", 0);
      fMuonClArr->SetName(AliMuonInfoStoreRD::StdBranchName());
    }
  }

  if (fAnaMode!=1 && !fDimuClArr) {
    if (fIsMC) {
      fDimuClArr = new TClonesArray("AliDimuInfoStoreMC", 0);
      fDimuClArr->SetName(AliDimuInfoStoreMC::StdBranchName());
    } else {
      fDimuClArr = new TClonesArray("AliDimuInfoStoreRD", 0);
      fDimuClArr->SetName(AliDimuInfoStoreRD::StdBranchName());
    }
  }

  return;
}

//_____________________________________________________________________________
void AliAnalysisTaskSEMuonsHF::UserCreateOutputObjects()
{
  // Create the output container

  if (!fListOutput) fListOutput = new TList();
  fHeader->CreateHistograms(fListOutput);

  if (fIsOutputTree) {
    AddAODBranch("AliMuonsHFHeader", &fHeader);
    AddAODBranch("TClonesArray", &fMuonClArr);
    if (fAnaMode!=1) AddAODBranch("TClonesArray", &fDimuClArr);
  }

  fCutsMuon->Print("mask");
  fCutsDimu->Print("mask");
  return;
}

//_____________________________________________________________________________
void AliAnalysisTaskSEMuonsHF::UserExec(Option_t *)
{
  // Execute analysis for current event:
  // muon event header & (di)muon info store

  if (fIsMC) {
    if (MCEvent()) {
      if (MCEvent()->GetNumberOfTracks()<=0)
           { AliError("MC event not found. Nothing done!"); return; }
    } else { AliError("MC event not found. Nothing done!"); return; }
  }

  if ( !fCutsMuon) { AliError("AliMuonTrackCuts should be loaded!"); return;}
  if ((!fCutsDimu) && (fAnaMode!=1)) { AliError("AliMuonPairCuts should be loaded!"); return; }

  Int_t ntrks = 0;
  AliAODEvent *aod = 0;
  AliESDEvent *esd = 0;
  if (((TString)InputEvent()->IsA()->GetName())=="AliAODEvent") {
    aod = dynamic_cast<AliAODEvent*>(InputEvent());
    if (!aod) { AliError("AOD event not found. Nothing done!"); return; }
    if (!fIsMC && (aod->GetHeader()->GetEventType()!=7)) return;
    ntrks = aod->GetNumberOfTracks();
  } else {
    esd = dynamic_cast<AliESDEvent*>(InputEvent());
    if (!esd) { AliError("ESD event not found. Nothing done!"); return; }
    if (!fIsMC && (esd->GetHeader()->GetEventType()!=7)) return;
    ntrks = esd->GetNumberOfMuonTracks();
  } if (fIsOutputTree) AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()->SetFillAOD(kTRUE);

  fHeader->SetEventInfo(fInputHandler, MCEvent());
  fHeader->FillHistosEvnH(fListOutput);

  fMuonClArr->Delete();
  TClonesArray &muonRef = *fMuonClArr;
  Int_t countN = fMuonClArr->GetEntriesFast();

  Int_t trkID[ntrks];
  AliAODTrack        *trkAOD = 0;
  AliESDMuonTrack    *trkESD = 0;
  AliMuonInfoStoreRD *muonRD = 0;
  AliMuonInfoStoreMC *muonMC = 0;
  for (Int_t itrk=0; itrk<ntrks; itrk++) {  // loop over all tracks
    if (aod) {
      trkAOD = (AliAODTrack*)aod->GetTrack(itrk);
      if (!trkAOD->IsMuonTrack())        { trkAOD=0; continue; }
      if (fIsMC) muonMC = new AliMuonInfoStoreMC(trkAOD,MCEvent(),fCutsMuon->GetSelectionMask(trkAOD));
      else muonRD = new AliMuonInfoStoreRD(trkAOD,fCutsMuon->GetSelectionMask(trkAOD));
      trkAOD = 0;
    } else {
      trkESD = (AliESDMuonTrack*)esd->GetMuonTrack(itrk);
      if (!trkESD->ContainTrackerData()) { trkESD=0; continue; }
      if (fIsMC) muonMC = new AliMuonInfoStoreMC(trkESD,MCEvent(),fCutsMuon->GetSelectionMask(trkESD));
      else muonRD = new AliMuonInfoStoreRD(trkESD,fCutsMuon->GetSelectionMask(trkESD));
      trkESD = 0;
    } if (muonRD) {
      new(muonRef[countN++]) AliMuonInfoStoreRD(*muonRD);
      if (fAnaMode!=2) fHeader->FillHistosMuon(fListOutput, muonRD);
    } if (muonMC) {
      new(muonRef[countN++]) AliMuonInfoStoreMC(*muonMC);
      if (fAnaMode!=2) fHeader->FillHistosMuon(fListOutput, muonMC, muonMC->Source());
    } trkID[countN-1] = itrk;

    if (muonRD) { delete muonRD; muonRD=0; }
    if (muonMC) { delete muonMC; muonMC=0; }
  }  // end loop of all tracks

  if (fAnaMode==1) { aod=0; esd=0; PostData(1,fListOutput); return; }

  fDimuClArr->Delete();
  countN = fDimuClArr->GetEntriesFast();
  TClonesArray &dimuRef = *fDimuClArr;

  AliDimuInfoStoreRD *dimuRD = 0;
  AliDimuInfoStoreMC *dimuMC = 0;
  ntrks = fMuonClArr->GetEntriesFast();
  for (Int_t itrk=0; itrk<ntrks-1; itrk++) {  // 1st loop over muon tracks
    for (Int_t jtrk=itrk+1; jtrk<ntrks; jtrk++) {  // 2nd loop ofver muon tracks
      UInt_t selMask = 0;
      if (aod) selMask = fCutsDimu->GetSelectionMask(aod->GetTrack(    trkID[itrk]),aod->GetTrack(    trkID[jtrk]));
      else     selMask = fCutsDimu->GetSelectionMask(esd->GetMuonTrack(trkID[itrk]),esd->GetMuonTrack(trkID[jtrk]));

      if (fIsMC) dimuMC = new AliDimuInfoStoreMC((AliMuonInfoStoreMC*)fMuonClArr->At(itrk),(AliMuonInfoStoreMC*)fMuonClArr->At(jtrk),selMask);
      else       dimuRD = new AliDimuInfoStoreRD((AliMuonInfoStoreRD*)fMuonClArr->At(itrk),(AliMuonInfoStoreRD*)fMuonClArr->At(jtrk),selMask);

      if (dimuRD) {
        fHeader->FillHistosDimu(fListOutput, dimuRD);
        if (fIsOutputTree) new(dimuRef[countN++]) AliDimuInfoStoreRD(*dimuRD);
      }
      if (dimuMC) {
        fHeader->FillHistosDimu(fListOutput, dimuMC, dimuMC->Source());
        if (fIsOutputTree) new(dimuRef[countN++]) AliDimuInfoStoreMC(*dimuMC);
      }

      if (dimuRD) { delete dimuRD; dimuRD=0; }
      if (dimuMC) { delete dimuMC; dimuMC=0; }
    }  // end 2nd loop of muon tracks
  }  // end 1st loop of muon tracks

  aod = 0; esd = 0;
  PostData(1, fListOutput);
  return;
}

//_____________________________________________________________________________
void AliAnalysisTaskSEMuonsHF::Terminate(Option_t *)
{
  // Terminate analysis

  // add the correction matrix

  return;
}

void AliAnalysisTaskSEMuonsHF::NotifyRun()
{
  // Notify of the current run number

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