ROOT logo
#include "AliAnalysisMuMuSingle.h"

/**
 *
 * \ingroup pwg-muon-mumu
 *
 * \class AliAnalysisMuMuSingle
 *
 * Histogramming of single muon tracks. Mostly to get control plots for
 * the AliAnalysisMuMuMinv sub-analysis, with respect to track cuts used,
 * like Rabs, p x DCA, etc...
 *
 */

#include "TH2F.h"
#include "AliMuonTrackCuts.h"
#include "AliAnalysisMuonUtility.h"
#include "TMath.h"
#include "AliLog.h"
#include "AliVParticle.h"
#include "TLorentzVector.h"
#include "AliAnalysisMuMuCutCombination.h"
#include "AliAnalysisMuMuCutRegistry.h"
#include "AliMergeableCollection.h"

ClassImp(AliAnalysisMuMuSingle)

//_____________________________________________________________________________
AliAnalysisMuMuSingle::AliAnalysisMuMuSingle()
: AliAnalysisMuMuBase(),
fMuonTrackCuts(0x0),
fShouldSeparatePlusAndMinus(kFALSE),
fAccEffHisto(0x0)
{
  /// ctor
}

//_____________________________________________________________________________
AliAnalysisMuMuSingle::~AliAnalysisMuMuSingle()
{
  /// dtor
  delete fMuonTrackCuts;
  delete fAccEffHisto;
}


//_____________________________________________________________________________
void
AliAnalysisMuMuSingle::CreateTrackHisto(const char* eventSelection,
                                        const char* triggerClassName,
                                        const char* centrality,
                                        const char* hname, const char* htitle,
                                        Int_t nbinsx, Double_t xmin, Double_t xmax,
                                        Int_t nbinsy, Double_t ymin, Double_t ymax,
                                        Bool_t separatePlusAndMinus) const
{
  /// Append histograms for single track to our histogram collection
  
  if ( IsHistogramDisabled(hname) ) return;
  
  if ( separatePlusAndMinus )
  {
    const char* suffix[] = { "Plus", "Minus" };
    const char* symbol[] = { "+", "-" };
    
    for ( Int_t i = 0; i < 2; ++i )
    {
      TString shtitle(htitle);
      TString shname(hname);
      
      shtitle.ReplaceAll("#mu",Form("#mu^{%s}",symbol[i]));
      
      shname += suffix[i];
      
      CreateTrackHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,shname.Data(),shtitle.Data(),
                        nbinsx,xmin,xmax,nbinsy,ymin,ymax);
    }
  }
  else
  {
    CreateTrackHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,hname,htitle,
                nbinsx,xmin,xmax,nbinsy,ymin,ymax);
  }
}

//_____________________________________________________________________________
Bool_t AliAnalysisMuMuSingle::IsPDCAOK(const AliVParticle& part)
{
  UInt_t selectionMask = MuonTrackCuts() ? MuonTrackCuts()->GetSelectionMask(&part) : 0;

  return ( ( selectionMask & AliMuonTrackCuts::kMuPdca ) == AliMuonTrackCuts::kMuPdca );
}

//_____________________________________________________________________________
Bool_t AliAnalysisMuMuSingle::IsRabsOK(const AliVParticle& part) const
{
  Double_t thetaAbsEndDeg = AliAnalysisMuonUtility::GetThetaAbsDeg(&part);
  
  return ( thetaAbsEndDeg > 2. && thetaAbsEndDeg < 10. );
}

//_____________________________________________________________________________
Bool_t AliAnalysisMuMuSingle::IsEtaInRange(const AliVParticle& part) const
{
  return (part.Eta() > -4.0 && part.Eta() < -2.5);
}

//_____________________________________________________________________________
void AliAnalysisMuMuSingle::SetRun(const AliInputEventHandler* eventHandler)
{
  MuonTrackCuts()->SetRun(eventHandler);
}

//_____________________________________________________________________________
Int_t AliAnalysisMuMuSingle::EAGetNumberOfMuonTracks() const
{
  // Get the number of muon tracks *that are not ghosts*
  
  Int_t ntracks = AliAnalysisMuonUtility::GetNTracks(Event());
  
  for ( Int_t i = 0; i < ntracks; ++i )
  {
    AliVParticle* track = AliAnalysisMuonUtility::GetTrack(i,Event());
    if (AliAnalysisMuonUtility::IsMuonGhost(track)) --ntracks;
  }
  
  return ntracks;
}

////_____________________________________________________________________________
//Int_t AliAnalysisMuMuSingle::EAGetNumberOfSelectMuonTracks() const
//{
//  // Get the number of "very good" muon tracks :
//  // Rabs + DCA + pT > 1.5 Gev/C
//  
//  Int_t nTracks = AliAnalysisMuonUtility::GetNTracks(Event());
//  
//  UInt_t check = kAll | kMatched | kRabs | kDCA | kEta | kPt1dot5;
//  
//  Int_t nGood(0);
//  
//  for ( Int_t i = 0; i < nTracks; ++i )
//  {
//    ULong64_t m = GetTrackMask(i);
//    if ( ( m & check ) == check )
//    {
//      ++nGood;
//    }
//  }
//  return nGood;
//}

//_____________________________________________________________________________
Double_t AliAnalysisMuMuSingle::EAGetTrackDCA(const AliVParticle& track) const
{
  // Get track DCA
  
  Double_t xdca = AliAnalysisMuonUtility::GetXatDCA(&track);
  Double_t ydca = AliAnalysisMuonUtility::GetYatDCA(&track);
  
  return TMath::Sqrt(xdca*xdca+ydca*ydca);
}

//_____________________________________________________________________________
void AliAnalysisMuMuSingle::DefineHistogramCollection(const char* eventSelection,
                                                      const char* triggerClassName,
                                                      const char* centrality)
{
  /// Actually create the histograms for phyics/triggerClassName
 
  if ( Histo(eventSelection,triggerClassName,centrality,"AliAnalysisMuMuSingle") )
  {
    return;
  }

  AliAnalysisMuMuBase::EDataType dt = AliAnalysisMuMuBase::kHistoForData;
  
  // dummy histogram to signal that we already defined all our histograms (see above)
  CreateEventHistos(dt,eventSelection,triggerClassName,centrality,"AliAnalysisMuMuSingle","Dummy semaphore",1,0,1);
  
  Double_t ptMin = 0;
  Double_t ptMax = 12*3;
  Int_t nbinsPt = GetNbins(ptMin,ptMax,0.5);
  Double_t pMin = 0;
  Double_t pMax = 100*3;
  Int_t nbinsP = GetNbins(pMin,pMax,2.0);
  Double_t etaMin = -5;
  Double_t etaMax = -2;
  Int_t nbinsEta = GetNbins(etaMin,etaMax,0.05);
  
  Double_t rapidityMin = -5;
  Double_t rapidityMax = -2;
  Int_t nbinsRapidity = GetNbins(rapidityMin,rapidityMax,0.05);
  
  Double_t phiMin = -TMath::Pi();
  Double_t phiMax = TMath::Pi();
  Int_t nbinsPhi = GetNbins(phiMin,phiMax,0.05);
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"Chi2MatchTrigger","Chi2 Match Trigger",72,0,72);
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"EtaRapidityMu", "Eta distribution vs Rapidity for #mu", nbinsRapidity,rapidityMin,rapidityMax,nbinsEta,etaMin,etaMax, fShouldSeparatePlusAndMinus);
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"PtEtaMu", "P_{T} distribution vs Eta for #mu", nbinsEta,etaMin,etaMax, nbinsPt,ptMin,ptMax,fShouldSeparatePlusAndMinus);
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"PtRapidityMu", "P_{T} distribution vs Rapidity for #mu", nbinsRapidity,rapidityMin,rapidityMax, nbinsPt,ptMin,ptMax,fShouldSeparatePlusAndMinus);
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"PtPhiMu", "P_{T} distribution vs phi for #mu", nbinsPhi,phiMin,phiMax, nbinsPt,ptMin,ptMax,fShouldSeparatePlusAndMinus);
  
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"PEtaMu", "P distribution for #mu",nbinsEta,etaMin,etaMax,nbinsP,pMin,pMax,fShouldSeparatePlusAndMinus);
  
  Double_t chi2min = 0;
  Double_t chi2max = 20;
  Int_t nbinchi2 = GetNbins(chi2min,chi2max,0.05);
  
  CreateTrackHisto(eventSelection, triggerClassName, centrality, "Chi2Mu", "chisquare per NDF #mu", nbinchi2, chi2min, chi2max,-1, 0.0, 0.0, fShouldSeparatePlusAndMinus);
  
  Double_t xmin = 0;
  Double_t xmax = 150;
  Int_t nbins = GetNbins(xmin,xmax,2.0);
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"dcaP23Mu","#mu DCA vs P for 2-3 degrees;P (GeV);DCA (cm)",nbinsP,pMin,pMax,nbins,xmin,xmax,fShouldSeparatePlusAndMinus);
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"dcaP310Mu","#mu DCA vs P for 3-10 degrees;P (GeV);DCA (cm)",nbinsP,pMin,pMax,nbins,xmin,xmax,fShouldSeparatePlusAndMinus);
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"dcaPwPtCut23Mu","#mu DCA vs P for 2-3 degrees with Pt Cut;P (GeV);DCA (cm)",nbinsP,pMin,pMax,nbins,xmin,xmax,fShouldSeparatePlusAndMinus);
  
  CreateTrackHisto(eventSelection,triggerClassName,centrality,"dcaPwPtCut310Mu","#mu DCA vs P for 3-10 degrees with Pt Cut;P (GeV);DCA (cm)",nbinsP,pMin,pMax,nbins,xmin,xmax,fShouldSeparatePlusAndMinus);
  
}

//_____________________________________________________________________________
void AliAnalysisMuMuSingle::FillHistosForTrack(const char* eventSelection,
                                               const char* triggerClassName,
                                               const char* centrality,
                                               const char* trackCutName,
                                               const AliVParticle& track)
{
  /// Fill histograms for one track
  
  if (!AliAnalysisMuonUtility::IsMuonTrack(&track) ) return;
  
  if ( HasMC() )
  {
    MuonTrackCuts()->SetIsMC();
  }
  
  TLorentzVector p(track.Px(),track.Py(),track.Pz(),
                   TMath::Sqrt(AliAnalysisMuonUtility::MuonMass2()+track.P()*track.P()));
  
  
  TString charge("");
  
  if ( ShouldSeparatePlusAndMinus() )
  {
    if ( track.Charge() < 0 )
    {
      charge = "Minus";
    }
    else
    {
      charge = "Plus";
    }
  }
  
  Double_t dca = EAGetTrackDCA(track);
  
  Double_t theta = AliAnalysisMuonUtility::GetThetaAbsDeg(&track);
  
  if (!IsHistogramDisabled("Chi2MatchTrigger"))
  {
    Histo(eventSelection,triggerClassName,centrality,trackCutName,"Chi2MatchTrigger")->Fill(AliAnalysisMuonUtility::GetChi2MatchTrigger(&track));
  }
  
  if (!IsHistogramDisabled("EtaRapidityMu*"))
  {
    Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("EtaRapidityMu%s",charge.Data()))->Fill(p.Rapidity(),p.Eta());
  }
  
  if (!IsHistogramDisabled("PtEtaMu*"))
  {
    Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("PtEtaMu%s",charge.Data()))->Fill(p.Eta(),p.Pt());
  }
  
  if (!IsHistogramDisabled("PtRapidityMu*"))
  {
    Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("PtRapidityMu%s",charge.Data()))->Fill(p.Rapidity(),p.Pt());
  }
  
  if (!IsHistogramDisabled("PEtaMu*"))
  {
    Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("PEtaMu%s",charge.Data()))->Fill(p.Eta(),p.P());
  }
  
  if (!IsHistogramDisabled("PtPhiMu*"))
  {
    Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("PtPhiMu%s",charge.Data()))->Fill(p.Phi(),p.Pt());
  }
  
  if (!IsHistogramDisabled("Chi2Mu*"))
  {
    Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("Chi2Mu%s",charge.Data()))->Fill(AliAnalysisMuonUtility::GetChi2perNDFtracker(&track));
  }
  
  if ( theta >= 2.0 && theta < 3.0 )
  {
    
    if (!IsHistogramDisabled("dcaP23Mu*"))
    {
      Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("dcaP23Mu%s",charge.Data()))->Fill(p.P(),dca);
    }
    
    if ( p.Pt() > 2 )
    {
      if (!IsHistogramDisabled("dcaPwPtCut23Mu*"))
      {
        Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("dcaPwPtCut23Mu%s",charge.Data()))->Fill(p.P(),dca);
      }
    }
  }
  else if ( theta >= 3.0 && theta < 10.0 )
  {
    if (!IsHistogramDisabled("dcaP310Mu*"))
    {
      Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("dcaP310Mu%s",charge.Data()))->Fill(p.P(),dca);
    }
    if ( p.Pt() > 2 )
    {
      if (!IsHistogramDisabled("dcaPwPtCut310Mu*"))
      {
        Histo(eventSelection,triggerClassName,centrality,trackCutName,Form("dcaPwPtCut310Mu%s",charge.Data()))->Fill(p.P(),dca);
      }
    }
  }
}

//_____________________________________________________________________________
AliMuonTrackCuts* AliAnalysisMuMuSingle::MuonTrackCuts()
{
  /// Get (and create the first time) our internal track cuts
  if (!fMuonTrackCuts)
  {
    fMuonTrackCuts = new AliMuonTrackCuts;
    
    fMuonTrackCuts->SetAllowDefaultParams(kTRUE);
    
    fMuonTrackCuts->SetFilterMask(AliMuonTrackCuts::kMuEta |
                                  AliMuonTrackCuts::kMuThetaAbs |
                                  AliMuonTrackCuts::kMuPdca |
                                  AliMuonTrackCuts::kMuMatchApt |
                                  AliMuonTrackCuts::kMuMatchLpt |
                                  AliMuonTrackCuts::kMuMatchHpt |
                                  AliMuonTrackCuts::kMuTrackChiSquare);
    
  }
  
  return fMuonTrackCuts;
}

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