ROOT logo

/* $Id$ */

#include "TChain.h"
#include "TTree.h"
#include "TNtuple.h"
#include "TH1F.h"
#include "TString.h"

#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"

#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDVertex.h"
#include "AliESDMuonTrack.h"

#include "AliAnalysisTaskSingleMuESD.h"

// analysis task for single muon analysis of the ESD events
// Authors: Bogdan Vulpescu, Nicole Bastid, LPC Clermont-Ferrand

ClassImp(AliAnalysisTaskSingleMuESD)

//________________________________________________________________________
AliAnalysisTaskSingleMuESD::AliAnalysisTaskSingleMuESD(const char *name) 
  : AliAnalysisTask(name, ""), 
    fESD(0), 
    fNtuple(0), 
    fTrigger(0), 
    fMaskTrig1MuL(1),
    fMaskTrig1MuH(2),
    fMaskTrigUSL(4),
    fMaskTrigLSL(16),
    fMaskTrigUSH(8),
    fMaskTrigLSH(32),
    fTriggerType(kFALSE)
{
  // Constructor

  // Define input and output slots here
  // Input slot #0 works with a TChain
  DefineInput(0, TChain::Class());
  // Output slot #0 writes into a TNtuple container
  DefineOutput(0, TNtuple::Class());
  // Output slot #1 writes into a TH1F container
  DefineOutput(1, TH1F::Class());
}

//________________________________________________________________________
void AliAnalysisTaskSingleMuESD::ConnectInputData(Option_t *) 
{
  // Connect ESD or AOD here
  // Called once

  TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
  if (!tree) {
    Printf("ERROR: Could not read chain from input slot 0");
  } else {
    // Disable all branches and enable only the needed ones
    // The next two lines are different when data produced as AliESDEvent is read
    tree->SetBranchStatus("*", kFALSE);
    tree->SetBranchStatus("MuonTracks.*", kTRUE);
    tree->SetBranchStatus("SPDVertex.*", kTRUE);
    tree->SetBranchStatus("AliESDHeader.*", kTRUE);

    AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());

    if (!esdH) {
      Printf("ERROR: Could not get ESDInputHandler");
    } else
      fESD = esdH->GetEvent();
  }
}

//________________________________________________________________________
void AliAnalysisTaskSingleMuESD::CreateOutputObjects()
{
  // Create output ntuple

  fNtuple = new TNtuple("ntEsd1mu","ntEsd1mu","VtZ:Mult:TMask:Z:Pt:P:Eta:Theta:Phi:Zpos:Hits:Xi2:Eff:TrigMatch:TrigXi2");
  // histogram with trigger classes
  fTrigger = new TH1F("TriggerMask","L/H/USL/USH/LSL/LSH",6,0,6);

}

//________________________________________________________________________
void AliAnalysisTaskSingleMuESD::Exec(Option_t *) 
{
  // Main loop
  // Called for each event
  // Fill the ntuple with variables and the trigger histogram

  Float_t  ntvar[15], pt, p, eta, thetad, phid, charge, chi2, zcoor, chi2MatchTrig;
  ULong64_t mask = 0;
  Int_t masksave = 0, hits, matchTrig;
  Double_t rEff[2];
  Double_t fZVertex = 0;
  Double_t fYVertex = 0;
  Double_t fXVertex = 0;
  Double_t fErXVertex = 0;
  Double_t fErYVertex = 0;
  
  if (!fESD) {
    Printf("ERROR: fESD not available");
    return;
  }

  // Trigger checks
  // mask values: L/H/USL/USH/LSL/LSH
  // Bit position    Histogram bin     Trigger class
  // 1 (less)        1 ("L")           MULow          single low pt
  // 2               2 ("H")           MUHigh         single high pt
  // 3               3 ("USL")         MULU           unlike-sign low pt
  // 4               4 ("USH")         MUHU           unlike-sign high pt
  // 5               5 ("LSL")         MULL           like-sign low pt
  // 6 (most)        6 ("LSH")         MUHL           like-sign high pt
  if (fTriggerType) {
    mask = fESD->GetTriggerMask();
    if (mask & fMaskTrig1MuL) {
      fTrigger->Fill(0.5);
      masksave |= 0x01;
    }
    if (mask & fMaskTrig1MuH) {
      fTrigger->Fill(1.5);
      masksave |= 0x02;
    }
    if (mask & fMaskTrigUSL)  {
      fTrigger->Fill(2.5);
      masksave |= 0x04;
    }
    if (mask & fMaskTrigUSH)  {
      fTrigger->Fill(3.5);
      masksave |= 0x08;
    }
    if (mask & fMaskTrigLSL)  {
      fTrigger->Fill(4.5);
      masksave |= 0x10;
    }
    if (mask & fMaskTrigLSH)  {
      fTrigger->Fill(5.5);
      masksave |= 0x20;
    }
  } else {
    TString firedTC = fESD->GetFiredTriggerClasses();
    if (firedTC.Contains("MULow")) {
      fTrigger->Fill(0.5);
      masksave |= 0x01;
    }
    if (firedTC.Contains("MUHigh")) {
      fTrigger->Fill(1.5);
      masksave |= 0x02;
    }
    if (firedTC.Contains("MULU")) {
      fTrigger->Fill(2.5);
      masksave |= 0x04;
    }
    if (firedTC.Contains("MUHU")) {
      fTrigger->Fill(3.5);
      masksave |= 0x08;
    }
    if (firedTC.Contains("MULL")) {
      fTrigger->Fill(4.5);
      masksave |= 0x10;
    }
    if (firedTC.Contains("MUHL")) {
      fTrigger->Fill(5.5);
      masksave |= 0x20;
    }
  }

  // get the SPD reconstructed vertex (vertexer) 
  AliESDVertex* vertex = (AliESDVertex*) fESD->GetVertex();
  if (vertex->GetNContributors()) {
    fZVertex = vertex->GetZ();
    fYVertex = vertex->GetY();
    fXVertex = vertex->GetX();
    fErXVertex = vertex->GetXRes();
    fErYVertex = vertex->GetYRes();
  }

  Int_t nTracks = (Int_t)fESD->GetNumberOfMuonTracks() ;
  for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) {

    AliESDMuonTrack* muonTrack = new AliESDMuonTrack(*(fESD->GetMuonTrack(iTrack)));
    if (!muonTrack) {
      Printf("ERROR: Could not receive track %d", iTrack);
      continue;
    }

    pt = muonTrack->Pt();
    p = muonTrack->P();
    eta = muonTrack->Eta();
    thetad =  muonTrack->Theta()*180./TMath::Pi();	
    phid = muonTrack->Phi()*180./TMath::Pi();
    charge = muonTrack->Charge();
    hits = muonTrack->GetNHit();	
    chi2 = muonTrack->GetChi2() / (2.0 * hits - 5);
    zcoor = muonTrack->GetZ();
    matchTrig = muonTrack->GetMatchTrigger();
    chi2MatchTrig = muonTrack->GetChi2MatchTrigger();
    
    rEff[0] = rEff[1] = 0.0;
    GetEffFitted(eta,pt,rEff);
        
    ntvar[0] = fZVertex;
    ntvar[1] = nTracks;
    ntvar[2] = masksave;
    ntvar[3] = charge;
    ntvar[4] = pt;
    ntvar[5] = p;
    ntvar[6] = eta;	
    ntvar[7] = thetad;
    ntvar[8] = phid;
    ntvar[9] = zcoor;
    ntvar[10] = hits;	
    ntvar[11] = chi2;
    ntvar[12] = rEff[0];
    ntvar[13] = matchTrig;
    ntvar[14] = chi2MatchTrig;	

    fNtuple->Fill(ntvar);


  } //track loop 

  // Post output data.
  PostData(0, fNtuple);
  PostData(1, fTrigger);

}      

//________________________________________________________________________
void AliAnalysisTaskSingleMuESD::Terminate(Option_t *) 
{
  // the end
}

//________________________________________________________________________
void AliAnalysisTaskSingleMuESD::GetEffFitted(Double_t eta, Double_t pt, Double_t rEff[2])
{
  // tracking efficiency

  Int_t nbinEta =15;
  Float_t etaMin = -4.;
  Float_t etaBin = 0.1;
  Int_t numBin = -1;
  rEff[0]=1.;rEff[1]=0.;
  
  // nbinEta = number of eta bins startig at etaMin = -4 and binning of 0.1 (etaBin)
  Float_t p0[15] = {-0.9338,-0.9441,-0.9397,-0.9586,-0.9713,-0.9752,-0.9711,-0.9751,-0.9746,-0.9729,-0.9754,-0.9722,-0.9722,-0.971,-0.9709};
  Float_t p1[15] = {-0.6383,-1.4729,-1.0109,-1.4316,-1.5926,-1.367,-1.1895,-1.2834,-1.3289,-1.5916,-1.4258,-1.0983,-1.0812,-0.7179, -0.4613};      
  
  Float_t etaInf, etaSup;
  for (Int_t i = 1; i < nbinEta+1; i++){
    etaInf = etaMin + (i-1)*etaBin;
    etaSup = etaMin + i*etaBin;
    if(eta > etaInf && eta <= etaSup) numBin = i-1;
  } 
  
  if(numBin>=0 && pt >=1.) rEff[0] = p0[numBin] * TMath::TanH(p1[numBin]*pt);
  rEff[1] = 0;

}

//________________________________________________________________________
void AliAnalysisTaskSingleMuESD::SetTriggerType(const Char_t *trig)
{
  // set the trigger masks according to the trigger type used in the
  // simulations
  
  TString triggerType(trig);

  if (!triggerType.CompareTo("MUON")) {
    fMaskTrig1MuL =  1;  // MULow
    fMaskTrig1MuH =  2;  // MUHigh
    fMaskTrigUSL  =  4;  // MULU
    fMaskTrigLSL  = 16;  // MULL
    fMaskTrigUSH  =  8;  // MUHU
    fMaskTrigLSH  = 32;  // MUHL
  } else if (!triggerType.CompareTo("p-p")) {
    fMaskTrig1MuL =    128;  // MULow
    fMaskTrig1MuH =    256;  // MUHigh
    fMaskTrigUSL  =  65536;  // MULU
    fMaskTrigLSL  = 131072;  // MULL
    fMaskTrigUSH  = 262144;  // MUHU
    fMaskTrigLSH  = 524288;  // MUHL
  } else {
    // MUON trigger, values by default in the constructor
  }
  
  fTriggerType = kTRUE;

}

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