ROOT logo
#include "AliAnalysisMuMuMinv.h"

/**
 *
 * \ingroup pwg-muon-mumu
 *
 * \class AliAnalysisMuMuMinv
 *
 * Analysis which fills a bunch of histograms for invariant mass analysis of J/psi
 *
 * Can be used on real data and/or simulated (for instance to get Acc x Eff)
 *
 * Can optionally use as input an already computed Acc x Eff matrix that will be applied
 * when filling the invariant mass histograms.
 *
 */

#include "TH2F.h"
#include "AliLog.h"
#include "TObjArray.h"
#include "AliAnalysisMuMuBinning.h"
#include "TString.h"
#include "TLorentzVector.h"
#include "TString.h"
#include "AliMCEvent.h"
#include "AliMergeableCollection.h"
#include "AliAnalysisMuonUtility.h"
#include "TParameter.h"
#include <cassert>

ClassImp(AliAnalysisMuMuMinv)

//_____________________________________________________________________________
AliAnalysisMuMuMinv::AliAnalysisMuMuMinv(TH2* accEffHisto, Bool_t computeMeanPt, Int_t systLevel)
: AliAnalysisMuMuBase(),
fcomputeMeanPt(computeMeanPt),
fAccEffHisto(0x0),
fsystLevel(systLevel)
{
  // FIXME : find the AccxEff histogram from HistogramCollection()->Histo("/EXCHANGE/JpsiAccEff")
  
  if ( accEffHisto )
  {
    fAccEffHisto = static_cast<TH2F*>(accEffHisto->Clone());
    fAccEffHisto->SetDirectory(0);
  }
}

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

//_____________________________________________________________________________
void
AliAnalysisMuMuMinv::DefineHistogramCollection(const char* eventSelection,
                                               const char* triggerClassName,
                                               const char* centrality)
{
  /// Define the histograms this analysis will use
  
  if ( Histo(eventSelection,triggerClassName,centrality,"AliAnalysisMuMuMinv") )
  {
    return;
  }
  
  // dummy histogram to signal that we already defined all our histograms (see above)
  CreateEventHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,"AliAnalysisMuMuMinv","Dummy semaphore",1,0,1);

  /// Create invariant mass histograms
  
  Double_t minvMin = 0;
  Double_t minvMax = 16;
  Int_t nMinvBins = GetNbins(minvMin,minvMax,0.025);
  
  Int_t nMCMinvBins = GetNbins(minvMin,minvMax,0.1);
  
  Double_t rapidityMin = -5;
  Double_t rapidityMax = -2;
  Int_t nbinsRapidity = GetNbins(rapidityMin,rapidityMax,0.05);

  Double_t etaMin = -5;
  Double_t etaMax = -2;
  Int_t nbinsEta = GetNbins(etaMin,etaMax,0.05);

  TObjArray* bins = Binning()->CreateBinObjArray("psi","integrated,ptvsy,yvspt,pt,y,phi,nch,dnchdeta,ntrcorr,ntrcorrpt,ntrcorry,relntrcorr","");//We may include ,v0a,v0acent
  
  CreatePairHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,"Pt","#mu+#mu- Pt distribution",
                  200,0,20,-2);
  
  CreatePairHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,"Y","#mu+#mu- Y distribution",
                   nbinsRapidity,rapidityMin,rapidityMax,-2);
  
  CreatePairHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,"Eta","#mu+#mu- Eta distribution",
                   nbinsEta,etaMin,etaMax);
  
  
  //___Histos for pure MC
  CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,centrality,"Pt","MCINPUT #mu+#mu- Pt distribution",
                   200,0,20,-2);
  
  CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,centrality,"Y","MCINPUT #mu+#mu- Y distribution",
                   nbinsRapidity,rapidityMin,rapidityMax,-2);
  
  CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,centrality,"Eta","MCINPUT #mu+#mu- Eta distribution",
                   nbinsEta,etaMin,etaMax);
  
  CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),"Pt","MCINPUT #mu+#mu- Pt distribution",
                    200,0,20,-2);
  
  CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),"Y","MCINPUT #mu+#mu- Y distribution",
                    nbinsRapidity,rapidityMin,rapidityMax,-2);
  
  CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),"Eta","MCINPUT #mu+#mu- Eta distribution",
                    nbinsEta,etaMin,etaMax);
  //____
  
  //  CreatePairHistos(eventSelection,triggerClassName,centrality,"BinFlowPt","#mu+#mu- BinFlowPt distribution",
  //                  200,0,20);
  
  CreatePairHistos(kHistoForData,eventSelection,triggerClassName,centrality,"PtRecVsSim","#mu+#mu- Pt distribution rec vs sim",
                  200,0,20,200,0,20);
  
  TIter next(bins);
  AliAnalysisMuMuBinning::Range* r;
  Int_t nb(0);
  
  while ( ( r = static_cast<AliAnalysisMuMuBinning::Range*>(next()) ) )
  {
    TString minvName(GetMinvHistoName(*r,kFALSE));
    
    ++nb;
    
    if ( !IsHistogramDisabled(minvName.Data()) )
    {
      
      AliDebug(1,Form("bin %d %s histoname = %s",nb,r->AsString().Data(),minvName.Data()));
      
      CreatePairHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,minvName.Data(),
                       Form("#mu+#mu- inv. mass %s;M_{#mu^{+}#mu^{-}} (GeV/c^2);Counts",
                            r->AsString().Data()),
                       nMinvBins,minvMin,minvMax,-2);
      
      CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,centrality,minvName.Data(),
                       Form("MCINPUT #mu+#mu- inv. mass %s;M_{#mu^{+}#mu^{-}} (GeV/c^2);Counts",
                            r->AsString().Data()),
                       nMCMinvBins,minvMin,minvMax,-2); // Pure MC histo
      
      CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),minvName.Data(),
                        Form("MCINPUT #mu+#mu- inv. mass %s;M_{#mu^{+}#mu^{-}} (GeV/c^2);Counts",
                             r->AsString().Data()),
                        nMCMinvBins,minvMin,minvMax,-2); // Pure MC histo 

      
      if ( fcomputeMeanPt )
      {
        TString mPtName(Form("MeanPtVs%s",minvName.Data()));
        CreatePairHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,mPtName.Data(),
                         Form("#mu+#mu- mean p_{T} %s;M_{#mu^{+}#mu^{-}} (GeV/c^2);<p_{T}^{#mu^{+}#mu^{-} (GeV/c^2)}>",
                              r->AsString().Data()),
                         nMinvBins,minvMin,minvMax,0);
        
        CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,centrality,mPtName.Data(),
                         Form("#mu+#mu- mean p_{T} %s;M_{#mu^{+}#mu^{-}} (GeV/c^2);<p_{T}^{#mu^{+}#mu^{-} (GeV/c^2)}>",
                              r->AsString().Data()),
                         nMinvBins,minvMin,minvMax,0); //Pure MC Histo
        
        CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),mPtName.Data(),
                          Form("#mu+#mu- mean p_{T} %s;M_{#mu^{+}#mu^{-}} (GeV/c^2);<p_{T}^{#mu^{+}#mu^{-} (GeV/c^2)}>",
                               r->AsString().Data()),
                          nMinvBins,minvMin,minvMax,0); //Pure MC Histo
      }
      
//      if ( HasMC() )
//      {
//        TH1* h = new TH1F(minvName.Data(),Form("MC #mu+#mu- inv. mass %s",r->AsString().Data()),
//                          nMCMinvBins,minvMin,minvMax);
//        
//        HistogramCollection()->Adopt(Form("/%s/ALL",MCInputPrefix()),h);
//        
//        HistogramCollection()->Adopt(Form("/%s/INYRANGE",MCInputPrefix()),static_cast<TH1*>(h->Clone()));
//      }
    }
    
    if ( ShouldCorrectDimuonForAccEff() )
    {
      minvName = GetMinvHistoName(*r,kTRUE);
      
      if ( !IsHistogramDisabled(minvName.Data()) )
      {
        
        AliDebug(1,Form("bin %d %s histoname = %s",nb,r->AsString().Data(),minvName.Data()));
        
        CreatePairHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,minvName.Data(),
                         Form("#mu+#mu- inv. mass %s (Acc #times Eff Corrected);M_{#mu^{+}#mu^{-}}(GeV/c^2);Counts",
                              r->AsString().Data()),
                         nMinvBins,minvMin,minvMax,-2);
        
        CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,centrality,minvName.Data(),
                         Form("#mu+#mu- inv. mass %s (Acc #times Eff Corrected);M_{#mu^{+}#mu^{-}} (GeV/c^2);Counts",
                              r->AsString().Data()),
                         nMCMinvBins,minvMin,minvMax,-2); // Pure MC histo
        
        CreateEventHistos(kHistoForMCInput,eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),minvName.Data(),
                          Form("#mu+#mu- inv. mass %s (Acc #times Eff Corrected);M_{#mu^{+}#mu^{-}} (GeV/c^2);Counts",
                               r->AsString().Data()),
                          nMCMinvBins,minvMin,minvMax,-2); // Pure MC histo
        
        if ( fcomputeMeanPt )
        {
          TString mPtName(Form("MeanPtVs%s",minvName.Data()));
          CreatePairHistos(kHistoForData | kHistoForMCInput,eventSelection,triggerClassName,centrality,mPtName.Data(),
                           Form("#mu+#mu- mean p_{T} %s (Acc #times Eff Corrected);M_{#mu^{+}#mu^{-}} (GeV/c^2);<p_{T}^{#mu^{+}#mu^{-}}>",
                                r->AsString().Data()),
                           nMinvBins,minvMin,minvMax,0);
        }
        
//        if ( HasMC() )
//        {
//          TH1*  h = new TH1F(minvName.Data(),Form("MC #mu+#mu- inv. mass %s",r->AsString().Data()),
//                             nMCMinvBins,minvMin,minvMax);
//          
//          h->Sumw2();
//          
//          HistogramCollection()->Adopt(Form("/%s/ALL",MCInputPrefix()),h);
//          
//          HistogramCollection()->Adopt(Form("/%s/INYRANGE",MCInputPrefix()),static_cast<TH1*>(h->Clone()));
//        }
      }
    }
  }

  delete bins;
}

//_____________________________________________________________________________
void AliAnalysisMuMuMinv::FillHistosForPair(const char* eventSelection, const char* triggerClassName,
                                            const char* centrality, const char* pairCutName,
                                            const AliVParticle& tracki,
                                            const AliVParticle& trackj)
{
  
  TLorentzVector pi(tracki.Px(),tracki.Py(),tracki.Pz(),
                    TMath::Sqrt(AliAnalysisMuonUtility::MuonMass2()+tracki.P()*tracki.P()));
  
  if (!AliAnalysisMuonUtility::IsMuonTrack(&tracki) ) return;
  if (!AliAnalysisMuonUtility::IsMuonTrack(&trackj) ) return;
  
  TLorentzVector pair4Momentum(trackj.Px(),trackj.Py(),trackj.Pz(),
                               TMath::Sqrt(AliAnalysisMuonUtility::MuonMass2()+trackj.P()*trackj.P()));
  
  pair4Momentum += pi;
  
  
////  if (!IsHistogramDisabled("Chi12"))
////  {
////    Histo(eventSelection,triggerClassName,centrality,pairCutName,"Chi12")
////    ->Fill(
////           AliAnalysisMuonUtility::GetChi2perNDFtracker(&tracki),
////           AliAnalysisMuonUtility::GetChi2perNDFtracker(&trackj));
////  }
////  
////  if (!IsHistogramDisabled("Rabs12"))
////  {
////    Histo(eventSelection,triggerClassName,centrality,pairCutName,"Rabs12")
////    ->Fill(AliAnalysisMuonUtility::GetRabs(&tracki),
////           AliAnalysisMuonUtility::GetRabs(&trackj));
////  }
  
  if ( ( tracki.Charge() != trackj.Charge() ) )
  {
    Double_t inputWeight = WeightDistribution(pair4Momentum.Pt(),pair4Momentum.Rapidity());
    
    if ( !IsHistogramDisabled("Pt") )
    {
      Histo(eventSelection,triggerClassName,centrality,pairCutName,"Pt")->Fill(pair4Momentum.Pt(),inputWeight);
    }
    if ( !IsHistogramDisabled("Y") )
    {
      Histo(eventSelection,triggerClassName,centrality,pairCutName,"Y")->Fill(pair4Momentum.Rapidity(),inputWeight);
    }
    if ( !IsHistogramDisabled("Eta") )
    {
      Histo(eventSelection,triggerClassName,centrality,pairCutName,"Eta")->Fill(pair4Momentum.Eta());
    }
    
    TLorentzVector* pair4MomentumMC(0x0);
    Double_t inputWeightMC(1.);
    if ( HasMC() )
    {
      Int_t labeli = tracki.GetLabel();
      Int_t labelj = trackj.GetLabel();
      
      if ( labeli < 0 || labelj < 0 )
      {
        AliError("Got negative labels!");
      }
      else
      {
        AliVParticle* mcTracki = MCEvent()->GetTrack(labeli);
        AliVParticle* mcTrackj = MCEvent()->GetTrack(labelj);
        
        TLorentzVector mcpi(mcTracki->Px(),mcTracki->Py(),mcTracki->Pz(),
                            TMath::Sqrt(AliAnalysisMuonUtility::MuonMass2()+mcTracki->P()*mcTracki->P()));
        TLorentzVector mcpj(mcTrackj->Px(),mcTrackj->Py(),mcTrackj->Pz(),
                            TMath::Sqrt(AliAnalysisMuonUtility::MuonMass2()+mcTrackj->P()*mcTrackj->P()));
        
        mcpj += mcpi;
        
        inputWeightMC = WeightDistribution(mcpj.Pt(),mcpj.Rapidity());
        
        Histo(eventSelection,triggerClassName,centrality,pairCutName,"PtRecVsSim")->Fill(mcpj.Pt(),pair4Momentum.Pt());
        
        if ( !IsHistogramDisabled("Pt") )
        {
          MCHisto(eventSelection,triggerClassName,centrality,pairCutName,"Pt")->Fill(mcpj.Pt(),inputWeightMC);
        }
        if ( !IsHistogramDisabled("Y") )
        {
          MCHisto(eventSelection,triggerClassName,centrality,pairCutName,"Y")->Fill(mcpj.Rapidity(),inputWeightMC);
        }
        if ( !IsHistogramDisabled("Eta") )
        {
          MCHisto(eventSelection,triggerClassName,centrality,pairCutName,"Eta")->Fill(mcpj.Eta());
        }
        pair4MomentumMC = &mcpj;
        
      }
    }
    
    
    TObjArray* bins = Binning()->CreateBinObjArray("psi","integrated,ptvsy,yvspt,pt,y,phi,nch,dnchdeta,ntrcorr,ntrcorrpt,ntrcorry,relntrcorr",""); // We may include: ,v0a,v0acent
    TIter nextBin(bins);
    AliAnalysisMuMuBinning::Range* r;
    
    while ( ( r = static_cast<AliAnalysisMuMuBinning::Range*>(nextBin()) ) )
    {
      Bool_t ok(kFALSE);
      Bool_t okMC(kFALSE);
      
      if ( r->IsIntegrated() )
      {
        ok = kTRUE;
        if ( pair4MomentumMC ) okMC = kTRUE;
      }
      else if ( r->Is2D() )
      {
        if ( r->AsString().BeginsWith("PTVSY") )
        {
          ok = r->IsInRange(pair4Momentum.Rapidity(),pair4Momentum.Pt());
          if ( pair4MomentumMC ) okMC = r->IsInRange(pair4MomentumMC->Rapidity(),pair4MomentumMC->Pt());
        }
        else if ( r->AsString().BeginsWith("YVSPT") )
        {
          ok = r->IsInRange(pair4Momentum.Pt(),pair4Momentum.Rapidity());
          if ( pair4MomentumMC ) okMC = r->IsInRange(pair4MomentumMC->Pt(),pair4MomentumMC->Rapidity());
        }
        else if ( r->Quantity() == "NTRCORRPT" )
        {
          TList* list = static_cast<TList*>(Event()->FindListObject("NCH"));
          if (list)
          {
            Int_t i(-1);
            Bool_t parFound(kFALSE);
            while ( i < list->GetEntries() - 1 && !parFound )
            {
              i++;
              while ( list->At(i)->IsA() != TParameter<Double_t>::Class() && i < list->GetEntries() - 1 ) // In case there is a diferent object, just to skip it
              {
                i++;
              }
              
              TParameter<Double_t>* p = static_cast<TParameter<Double_t>*>(list->At(i));
              
              if ( TString(p->GetName()).Contains("NtrCorr") )
              {
                parFound = kTRUE;
                ok = r->IsInRange(p->GetVal(),pair4Momentum.Pt());
              }
            }
          }
          
        }
        else if ( r->Quantity() == "NTRCORRY" )
        {
          TList* list = static_cast<TList*>(Event()->FindListObject("NCH"));
          if (list)
          {
            Int_t i(-1);
            Bool_t parFound(kFALSE);
            while ( i < list->GetEntries() - 1 && !parFound )
            {
              i++;
              while ( list->At(i)->IsA() != TParameter<Double_t>::Class() && i < list->GetEntries() - 1 ) // In case there is a diferent object, just to skip it
              {
                i++;
              }
              
              TParameter<Double_t>* p = static_cast<TParameter<Double_t>*>(list->At(i));
              
              if ( TString(p->GetName()).Contains("NtrCorr") )
              {
                parFound = kTRUE;
                ok = r->IsInRange(p->GetVal(),pair4Momentum.Rapidity());
              }
            }
          }
          
        }

        else
        {
          AliError(Form("Don't know how to deal with 2D bin %s",r->AsString().Data()));
        }
      }
      else
      {
        if ( r->Quantity() == "PT" )
        {
          ok = r->IsInRange(pair4Momentum.Pt());
          if ( pair4MomentumMC ) okMC = r->IsInRange(pair4MomentumMC->Pt());
        }
        else if ( r->Quantity() == "Y" )
        {
          ok = r->IsInRange(pair4Momentum.Rapidity());
          if ( pair4MomentumMC ) okMC = r->IsInRange(pair4MomentumMC->Rapidity());
        }
        else if ( r->Quantity() == "PHI" )
        {
          ok = r->IsInRange(pair4Momentum.Phi());
          if ( pair4MomentumMC ) okMC = r->IsInRange(pair4MomentumMC->Phi());
        }
        else if ( r->Quantity() == "DNCHDETA" )
        {
          TList* list = static_cast<TList*>(Event()->FindListObject("NCH"));
          if (list)
          {
            Int_t i(-1);
            Bool_t parFound(kFALSE);
            while ( i < list->GetEntries() - 1 && !parFound )
            {
              i++;
              while ( list->At(i)->IsA() != TParameter<Double_t>::Class() && i < list->GetEntries() - 1 ) // In case there is a diferent object, just to skip it
              {
                i++;
              }
              
              TParameter<Double_t>* p = static_cast<TParameter<Double_t>*>(list->At(i));
              
              if ( TString(p->GetName()).Contains("dNchdEta") )
              {
                parFound = kTRUE;
                ok = r->IsInRange(p->GetVal());
              }
            }
          }
//          else AliFatal("No dNchdEta info on Event");
          
        }
        else if ( r->Quantity() == "NTRCORR" || r->Quantity() == "RELNTRCORR" )
        {
          TList* list = static_cast<TList*>(Event()->FindListObject("NCH"));
          if (list)
          {
            Int_t i(-1);
            Bool_t parFound(kFALSE);
            while ( i < list->GetEntries() - 1 && !parFound )
            {
              i++;
              while ( list->At(i)->IsA() != TParameter<Double_t>::Class() && i < list->GetEntries() - 1 ) // In case there is a diferent object, just to skip it
              {
                i++;
              }
              
              TParameter<Double_t>* p = static_cast<TParameter<Double_t>*>(list->At(i));
              
              if ( TString(p->GetName()).Contains("NtrCorr") )
              {
                parFound = kTRUE;
                if ( r->Quantity() == "NTRCORR" ) ok = r->IsInRange(p->GetVal());
                else ok = r->IsInRange(p->GetVal()/5.97);
              }
            }
          }
//          else AliFatal("No ntrcorr info on Event");
          
        }
      }
      
      if ( ok || okMC )
      {
        TString minvName = GetMinvHistoName(*r,kFALSE);
        
        if (!IsHistogramDisabled(minvName.Data()))
        {
          TH1* h(0x0);
          if ( ok )
          {
            h = Histo(eventSelection,triggerClassName,centrality,pairCutName,minvName.Data());
            
            if (!h)
            {
              AliError(Form("Could not get %s",minvName.Data()));
              //continue;
            }
            else h->Fill(pair4Momentum.M(),inputWeight);
          }
          if( okMC )
          {
            h = MCHisto(eventSelection,triggerClassName,centrality,pairCutName,minvName.Data());
            
            if (!h)
            {
              AliError(Form("Could not get MC %s",minvName.Data()));
              //continue;
            }
            else h->Fill(pair4MomentumMC->M(),inputWeightMC);
          }
          
          if ( fcomputeMeanPt )
          {
            TString hprofName("");
            
            if ( ok )
            {
              hprofName= Form("MeanPtVs%s",minvName.Data());
              
              TProfile* hprof = Prof(eventSelection,triggerClassName,centrality,pairCutName,hprofName.Data());
              
              if ( !hprof )
              {
                AliError(Form("Could not get %s",hprofName.Data()));
              }
              
              else
              {
                //              hprof->Approximate(); //I dont think its necessary here
                hprof->Fill(pair4Momentum.M(),pair4Momentum.Pt(),inputWeight);
              }
            }
            if ( okMC )
            {
              hprofName= Form("MeanPtVs%s",minvName.Data());
              
              TProfile* hprof = MCProf(eventSelection,triggerClassName,centrality,pairCutName,hprofName.Data());
              
              if ( !hprof )
              {
                AliError(Form("Could not get MC %s",hprofName.Data()));
              }
              
              else
              {
                //              hprof->Approximate(); //I dont think its necessary here
                hprof->Fill(pair4MomentumMC->M(),pair4MomentumMC->Pt(),inputWeightMC);
              }
            }

          }
          
        }
        
        if ( ShouldCorrectDimuonForAccEff() )
        {
          
          Double_t AccxEff(0);
          Bool_t okAccEff(kFALSE);
          if ( ok )
          {
            AccxEff = GetAccxEff(pair4Momentum.Pt(),pair4Momentum.Rapidity());
            if ( AccxEff <= 0.0 )
            {
              AliError(Form("AccxEff < 0 for pt = %f & y = %f ",pair4Momentum.Pt(),pair4Momentum.Rapidity()));
              //            continue;
            }
            else okAccEff = kTRUE;
          }
          
          Double_t AccxEffMC(0);
          Bool_t okAccEffMC(kFALSE);
          if ( okMC )
          {
             AccxEffMC= GetAccxEff(pair4MomentumMC->Pt(),pair4MomentumMC->Rapidity());
            if ( AccxEffMC <= 0.0 )
            {
              AliError(Form("AccxEff < 0 for MC pair with pt = %f & y = %f ",pair4MomentumMC->Pt(),pair4MomentumMC->Rapidity()));
              //            continue;
            }
            else okAccEffMC = kTRUE;
          }
          
          minvName = GetMinvHistoName(*r,kTRUE);
          
          if (!IsHistogramDisabled(minvName.Data()))
          {
            TH1* hCorr = Histo(eventSelection,triggerClassName,centrality,pairCutName,minvName.Data());
            
            if (!hCorr)
            {
              AliError(Form("Could not get %sr",minvName.Data()));
            }
            
            else  if ( okAccEff ) hCorr->Fill(pair4Momentum.M(),inputWeight/AccxEff);
            
            if( okAccEffMC )
            {
              hCorr = MCHisto(eventSelection,triggerClassName,centrality,pairCutName,minvName.Data());
              
              if (!hCorr)
              {
                AliError(Form("Could not get MC %s",minvName.Data()));
                //continue;
              }
              else hCorr->Fill(pair4MomentumMC->M(),inputWeightMC/AccxEffMC);
            }
            
            if ( fcomputeMeanPt )
            {
              TString hprofCorrName("");
              if( ok )
              {
                hprofCorrName = Form("MeanPtVs%s",minvName.Data());
                
                TProfile* hprofCorr = Prof(eventSelection,triggerClassName,centrality,pairCutName,hprofCorrName.Data());
                
                if ( !hprofCorr )
                {
                  AliError(Form("Could not get %s",hprofCorrName.Data()));
                }
                else if ( okAccEff )
                {
                  //                hprofCorr->Approximate(); //I dont know if its necessary here
                  hprofCorr->Fill(pair4Momentum.M(),pair4Momentum.Pt(),inputWeight/AccxEff);
                }
              }
              if( okMC )
              {
                hprofCorrName = Form("MeanPtVs%s",minvName.Data());
                
                TProfile* hprofCorr = MCProf(eventSelection,triggerClassName,centrality,pairCutName,hprofCorrName.Data());
                
                if ( !hprofCorr )
                {
                  AliError(Form("Could not get MC %s",hprofCorrName.Data()));
                }
                else if ( okAccEffMC )
                {
                  //                hprofCorr->Approximate(); //I dont know if its necessary here
                  hprofCorr->Fill(pair4MomentumMC->M(),pair4MomentumMC->Pt(),inputWeightMC/AccxEffMC);
                }
              }

            }
            
          }
          
        }
      }
    }
    
    delete bins;
  }
  
}


//_____________________________________________________________________________
void AliAnalysisMuMuMinv::FillHistosForMCEvent(const char* eventSelection,const char* triggerClassName,const char* centrality)
{
  // Fill the input Monte-Carlo histograms related to muons. Intended to be used on pure simulations so we wont use eventSelection, triggerClassName and centrality variables.
  
  if ( !HasMC() ) return;
  
  // Specific things for MC // These histos should go in the AliAnalysisMuMuGlobal task, but then we have to loop 2 times on the MCTracks...
//  if (!Histo(MCInputPrefix(),"ALL","Pt"))
//  {
//    HistogramCollection()->Adopt(Form("/%s/ALL",MCInputPrefix()),new TH1F("Pt","Pt",200,0,25));
//    HistogramCollection()->Adopt(Form("/%s/INYRANGE",MCInputPrefix()),new TH1F("Pt","Pt",200,0,25));
//    
//    Double_t rapidityMin = -5;
//    Double_t rapidityMax = -2;
//    Int_t nbinsRapidity = GetNbins(rapidityMin,rapidityMax,0.05);
//    
//    HistogramCollection()->Adopt(Form("/%s/ALL",MCInputPrefix()),new TH1F("Y","Y",nbinsRapidity,rapidityMin,rapidityMax));
//    HistogramCollection()->Adopt(Form("/%s/INYRANGE",MCInputPrefix()),new TH1F("Y","Y",nbinsRapidity,rapidityMin,rapidityMax));
//    
//    Double_t etaMin = -5;
//    Double_t etaMax = -2;
//    Int_t nbinsEta = GetNbins(etaMin,etaMax,0.05);
//    
//    HistogramCollection()->Adopt(Form("/%s/ALL",MCInputPrefix()),new TH1F("Eta","Eta",nbinsEta,etaMin,etaMax));
//    HistogramCollection()->Adopt(Form("/%s/INYRANGE",MCInputPrefix()),new TH1F("Eta","Eta",nbinsEta,etaMin,etaMax));
//  }
  
  Int_t nMCTracks = MCEvent()->GetNumberOfTracks();
  
  TObjArray* bins = Binning()->CreateBinObjArray("psi","integrated,ptvsy,yvspt,pt,y,phi,nch,dnchdeta,ntrcorr,ntrcorrpt,ntrcorry,relntrcorr","");//We may include: ,v0a,v0acent.
  TIter nextBin(bins);
  AliAnalysisMuMuBinning::Range* r;
  
  for ( Int_t i = 0; i < nMCTracks; ++i )
  {
    AliVParticle* part = MCEvent()->GetTrack(i);
    
    if  (AliAnalysisMuonUtility::IsPrimary(part,MCEvent()) &&
         AliAnalysisMuonUtility::GetMotherIndex(part)==-1)
    {
      Double_t inputWeight = WeightDistribution(part->Pt(),part->Y());
      
      MCHisto(eventSelection,triggerClassName,centrality,"Pt")->Fill(part->Pt(),inputWeight);
      MCHisto(eventSelection,triggerClassName,centrality,"Y")->Fill(part->Y(),inputWeight);
      MCHisto(eventSelection,triggerClassName,centrality,"Eta")->Fill(part->Eta());
      
      if ( part->Y() < -2.5 && part->Y() > -4.0 )
      {
        MCHisto(eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),"Pt")->Fill(part->Pt(),inputWeight);
        MCHisto(eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),"Y")->Fill(part->Y(),inputWeight);
        MCHisto(eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),"Eta")->Fill(part->Eta());
      }
      
      nextBin.Reset();
      
      while ( ( r = static_cast<AliAnalysisMuMuBinning::Range*>(nextBin()) ) )
      {
        Bool_t ok(kFALSE);
        
        if ( r->IsIntegrated() )
        {
          ok = kTRUE;
        }
        else if ( r->Is2D() )
        {
          if ( r->AsString().BeginsWith("PTVSY") )
          {
            ok = r->IsInRange(part->Y(),part->Pt());
          }
          else if ( r->AsString().BeginsWith("YVSPT") )
          {
            ok = r->IsInRange(part->Pt(),part->Y());
          }
          else
          {
            AliError(Form("Don't know how to deal with 2D bin %s",r->AsString().Data()));
          }
        }
        else
        {
          if ( r->Quantity() == "PT" )
          {
            ok = r->IsInRange(part->Pt());
          }
          else if ( r->Quantity() == "Y" )
          {
            ok = r->IsInRange(part->Y());
          }
          else if ( r->Quantity() == "PHI" )
          {
            ok = r->IsInRange(part->Phi());
          }
        }
        
        if ( ok )
        {
          TString hname = GetMinvHistoName(*r,kFALSE);
          
          if (!IsHistogramDisabled(hname.Data()))
          {
            
            TH1* h = MCHisto(eventSelection,triggerClassName,centrality,hname.Data());
            
            if (!h)
            {
              AliError(Form("Could not get /%s/%s/%s/%s/ %s",MCInputPrefix(),eventSelection,triggerClassName,centrality,hname.Data()));
              continue;
            }
            
            h->Fill(part->M(),inputWeight);
            
            if ( part->Y() < -2.5 && part->Y() > -4.0 )
            {
              h = MCHisto(eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),hname.Data());
              if (!h)
              {
                AliError(Form("Could not get /%s/%s/%s/%s/INYRANGE %s",MCInputPrefix(),eventSelection,triggerClassName,centrality,hname.Data()));
                continue;
              }
              h->Fill(part->M(),inputWeight);
            }
            
          }
          
          if ( fcomputeMeanPt )
          {
            TString hprofName= Form("MeanPtVs%s",hname.Data());
            
            TProfile* hprof = MCProf(eventSelection,triggerClassName,centrality,hprofName.Data());
            
            if ( !hprof )
            {
              AliError(Form("Could not get %s",hprofName.Data()));
            }
            else
            {
              //              hprof->Approximate(); //I dont think its necessary here
              hprof->Fill(part->M(),part->Pt(),inputWeight);
            }
            
            if ( part->Y() < -2.5 && part->Y() > -4.0 )
            {
              hprof = MCProf(eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),hprofName.Data());
              
              if ( !hprof )
              {
                AliError(Form("Could not get %s",hprofName.Data()));
              }
              else
              {
                //              hprof->Approximate(); //I dont think its necessary here
                hprof->Fill(part->M(),part->Pt(),inputWeight);
              }

            }

            
          }
          
//          if ( ShouldCorrectDimuonForAccEff() ) //What is the sense of this?? We should not correct the input
//          {
//            Double_t AccxEff = GetAccxEff(part->Pt(),part->Y());
//            if ( AccxEff <= 0.0 )
//            {
//              AliError(Form("AccxEff < 0 for pt = %f & y = %f ",part->Pt(),part->Y()));
//              continue;
//            }
//            hname = GetMinvHistoName(*r,kTRUE);
//            
//            if (!IsHistogramDisabled(hname.Data()))
//            {
//              
//              TH1* h = MCHisto(eventSelection,triggerClassName,centrality,hname.Data());
//              
//              if (!h)
//              {
//                AliError(Form("Could not get /%s/%s/%s/%s/ %s",MCInputPrefix(),eventSelection,triggerClassName,centrality,hname.Data()));
//                continue;
//              }
//              
//              h->Fill(part->M(),inputWeight/AccxEff);
//              
//              if ( part->Y() < -2.5 && part->Y() > -4.0 )
//              {
//                h = MCHisto(eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),hname.Data());
//                if (!h)
//                {
//                  AliError(Form("Could not get /%s/%s/%s/%s/INYRANGE %s",MCInputPrefix(),eventSelection,triggerClassName,Form("%s/INYRANGE",centrality),hname.Data()));
//                  continue;
//                }
//                h->Fill(part->M(),inputWeight./AccxEff);
//              }
//              
//            }
//            
//          }
          
        }
      }
    }
  }
  
  delete bins;

  
//  for ( Int_t i = 0; i < nMCTracks; ++i )
//  {
//    AliVParticle* part = MCEvent()->GetTrack(i);
//    
//    if  (AliAnalysisMuonUtility::IsPrimary(part,MCEvent()) &&
//         AliAnalysisMuonUtility::GetMotherIndex(part)==-1)
//    {
//      
//      Histo(MCInputPrefix(),"ALL","Pt")->Fill(part->Pt());
//      Histo(MCInputPrefix(),"ALL","Y")->Fill(part->Y());
//      Histo(MCInputPrefix(),"ALL","Eta")->Fill(part->Eta());
//      
//      if ( part->Y() < -2.5 && part->Y() > -4.0 )
//      {
//        Histo(MCInputPrefix(),"INYRANGE","Pt")->Fill(part->Pt());
//        Histo(MCInputPrefix(),"INYRANGE","Y")->Fill(part->Y());
//        Histo(MCInputPrefix(),"INYRANGE","Eta")->Fill(part->Eta());
//      }
//      
//      nextBin.Reset();
//      
//      while ( ( r = static_cast<AliAnalysisMuMuBinning::Range*>(nextBin()) ) )
//      {
//        Bool_t ok(kFALSE);
//        
//        if ( r->IsIntegrated() )
//        {
//          ok = kTRUE;
//        }
//        else if ( r->Is2D() )
//        {
//          if ( r->AsString().BeginsWith("PTVSY") )
//          {
//            ok = r->IsInRange(part->Y(),part->Pt());
//          }
//          else if ( r->AsString().BeginsWith("YVSPT") )
//          {
//            ok = r->IsInRange(part->Pt(),part->Y());
//          }
//          else
//          {
//            AliError(Form("Don't know how to deal with 2D bin %s",r->AsString().Data()));
//          }
//        }
//        else
//        {
//          if ( r->Quantity() == "PT" )
//          {
//            ok = r->IsInRange(part->Pt());
//          }
//          else if ( r->Quantity() == "Y" )
//          {
//            ok = r->IsInRange(part->Y());
//          }
//          else if ( r->Quantity() == "PHI" )
//          {
//            ok = r->IsInRange(part->Phi());
//          }
//        }
//        
//        if ( ok )
//        {
//          TString hname = GetMinvHistoName(*r,kFALSE);
//          
//          if (!IsHistogramDisabled(hname.Data()))
//          {
//            
//            TH1* h = Histo(MCInputPrefix(),"ALL",hname.Data());
//            
//            if (!h)
//            {
//              AliError(Form("Could not get ALL %s",hname.Data()));
//              continue;
//            }
//            
//            h->Fill(part->M());
//            
//            if ( part->Y() < -2.5 && part->Y() > -4.0 )
//            {
//              h = Histo(MCInputPrefix(),"INYRANGE",hname.Data());
//              if (!h)
//              {
//                AliError(Form("Could not get INYRANGE %s",hname.Data()));
//                continue;
//              }
//              h->Fill(part->M());
//            }
//            
//          }
//          
//          if ( ShouldCorrectDimuonForAccEff() )
//          {
//            Double_t AccxEff = GetAccxEff(part->Pt(),part->Y());
//            if ( AccxEff <= 0.0 )
//            {
//              AliError(Form("AccxEff < 0 for pt = %f & y = %f ",part->Pt(),part->Y()));
//              continue;
//            }
//            hname = GetMinvHistoName(*r,kTRUE);
//            
//            if (!IsHistogramDisabled(hname.Data()))
//            {
//              
//              TH1* h = Histo(MCInputPrefix(),"ALL",hname.Data());
//              
//              if (!h)
//              {
//                AliError(Form("Could not get ALL %s",hname.Data()));
//                continue;
//              }
//              
//              h->Fill(part->M(),1./AccxEff);
//              
//              if ( part->Y() < -2.5 && part->Y() > -4.0 )
//              {
//                h = Histo(MCInputPrefix(),"INYRANGE",hname.Data());
//                if (!h)
//                {
//                  AliError(Form("Could not get INYRANGE %s",hname.Data()));
//                  continue;
//                }
//                h->Fill(part->M(),1./AccxEff);
//              }
//              
//            }
//            
//          }
//          
//        }
//      }
//    }
//    
//    delete bins;
//  }
}

//_____________________________________________________________________________
TString AliAnalysisMuMuMinv::GetMinvHistoName(const AliAnalysisMuMuBinning::Range& r, Bool_t accEffCorrected) const
{
  return TString::Format("MinvUS%s%s",r.AsString().Data(),
                         accEffCorrected ? "_AccEffCorr" : "");
}


//_____________________________________________________________________________
Double_t AliAnalysisMuMuMinv::GetAccxEff(Double_t pt,Double_t rapidity)
{
  if (!fAccEffHisto)
  {
    AliError("ERROR: No AccxEff histo");
    return 0;
  }
  Int_t bin = fAccEffHisto->FindBin(pt,rapidity);
  Double_t accXeff = fAccEffHisto->GetBinContent(bin);
  
  return accXeff;
}

//_____________________________________________________________________________
Double_t AliAnalysisMuMuMinv::WeightDistribution(Double_t pt,Double_t rapidity)
{
  //Return a weight for a dimuon pt and y, which depend on the varied distributions.
  // FIXME: hard coded, find a clean way to fix the distribution parameters from outside
  
  if (!HasMC() ) return 1.;
  
  //================ p-Pb ==============//
  //value for input distribution: this is the nominal pt and y distribution
  Double_t paryPPB[2] = {1.0,0.174};
  Double_t parptPPB[3] = {1.0,0.0557,3.52};
  
  Double_t paryHardPPB = 0.1344, parySoftPPB = 0.1971;
  Double_t par1ptHardPPB = 5.51e-2, par2ptHardPPB = 3.47,
  par1ptSoftPPB = 5.67e-2, par2ptSoftPPB = 3.68;
  //systematic 1: hardest in y  x softest in pt
  Double_t pary1[2] = {1.0,paryHardPPB};
  Double_t parpt1[3] = {1.0,par1ptSoftPPB,par2ptSoftPPB};
  //systematic 2: hardest in y x hardest in pt
  Double_t pary2[2] = {1.0,paryHardPPB};
  Double_t parpt2[3] = {1.0,par1ptHardPPB,par2ptHardPPB};
  //systematic 3: softest in y  x softest in pt
  Double_t pary3[2] = {1.0, parySoftPPB};
  Double_t parpt3[3] = {1.0,par1ptSoftPPB,par2ptSoftPPB};
  //systematic 4: softest in y  x hardest in pt
  Double_t pary4[2] = {1.0,parySoftPPB};
  Double_t parpt4[3] = {1.0,par1ptHardPPB,par2ptHardPPB};
  
  Double_t funcptvalPPB = powerLaw3Par(&pt,parptPPB);
  Double_t funcyvalPPB = normPol12Par(&rapidity,paryPPB);
  
  //================ Pb-p ==============//
  //value for input distribution
  Double_t paryPBP[2] = {1.0,0.189};
  Double_t parptPBP[3] = {1.0,0.0592,3.92};
  
  Double_t paryHardPBP = 0.1517, parySoftPBP = 0.2191;
  Double_t par1ptHardPBP = 5.58e-2, par2ptHardPBP = 3.83,
  par1ptSoftPBP = 5.59e-2, par2ptSoftPBP = 4.31;
  //systematic 5: hardest in y  x softest in pt
  Double_t pary5[2] = {1.0,paryHardPBP};
  Double_t parpt5[3] = {1.0,par1ptSoftPBP,par2ptSoftPBP};
  //systematic 6: hardest in y x hardest in pt
  Double_t pary6[2] = {1.0,paryHardPBP};
  Double_t parpt6[3] = {1.0,par1ptHardPBP,par2ptHardPBP};
  //systematic 7: softest in y  x softest in pt
  Double_t pary7[2] = {1.0, parySoftPBP};
  Double_t parpt7[3] = {1.0,par1ptSoftPBP,par2ptSoftPBP};
  //systematic 8: softest in y  x hardest in pt
  Double_t pary8[2] = {1.0,parySoftPBP};
  Double_t parpt8[3] = {1.0,par1ptHardPBP,par2ptHardPBP};
  
  Double_t funcptvalPBP = powerLaw3Par(&pt,parptPBP);
  Double_t funcyvalPBP = normPol12Par(&rapidity,paryPBP);
  
  //================ pp ==============//
  //value for input distribution
  Double_t paryPP[2] = {3.0,0.514/3.};
  Double_t parptPP[3] = {1.0,0.0546,3.90};
  
  Double_t paryHardPP = 0.4125/3., parySoftPP = 0.5958/3.;
  Double_t par1ptHardPP = 4.78e-2, par2ptHardPP = 3.65,//4.84e-2/3.45
  par1ptSoftPP = 6.12e-2, par2ptSoftPP = 4.31;//5.47e-2//4.29
  //systematic 9: hardest in y  x softest in pt
  Double_t pary9[2] = {3.0,paryHardPP};
  Double_t parpt9[3] = {1.0,par1ptSoftPP,par2ptSoftPP};
  //systematic 10: hardest in y x hardest in pt
  Double_t pary10[2] = {3.0,paryHardPP};
  Double_t parpt10[3] = {1.0,par1ptHardPP,par2ptHardPP};
  //systematic 11: softest in y  x softest in pt
  Double_t pary11[2] = {3.0, parySoftPP};
  Double_t parpt11[3] = {1.0,par1ptSoftPP,par2ptSoftPP};
  //systematic 12: softest in y  x hardest in pt
  Double_t pary12[2] = {3.0,parySoftPP};
  Double_t parpt12[3] = {1.0,par1ptHardPP,par2ptHardPP};
  
  Double_t funcptvalPP = powerLaw3Par(&pt,parptPP);
  Double_t funcyvalPP = normPol12Par(&rapidity,paryPP);

  //______
  Double_t weight(1.),funcptsyst(0.),funcysyst(0.);
  switch ( fsystLevel )
  {
    case 0:
      weight = 1;
      break;
    case 1:
      funcptsyst = powerLaw3Par(&pt,parpt1);
      if ( funcptvalPPB > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPPB;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary1);
      if ( funcyvalPPB > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPPB;
      break;
    case 2:
      funcptsyst = powerLaw3Par(&pt,parpt2);
      if ( funcptvalPPB > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPPB;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary2);
      if ( funcyvalPPB > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPPB;
      break;
    case 3:
      funcptsyst = powerLaw3Par(&pt,parpt3);
      if ( funcptvalPPB > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPPB;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary3);
      if ( funcyvalPPB > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPPB;
      break;
    case 4:
      funcptsyst = powerLaw3Par(&pt,parpt4);
      if ( funcptvalPPB > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPPB;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary4);
      if ( funcyvalPPB > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPPB;
      break;
    case 5:
      funcptsyst = powerLaw3Par(&pt,parpt5);
      if ( funcptvalPBP > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPBP;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary5);
      if ( funcyvalPBP > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPBP;
      break;
    case 6:
      funcptsyst = powerLaw3Par(&pt,parpt6);
      if ( funcptvalPBP > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPBP;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary6);
      if ( funcyvalPBP > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPBP;
      break;
    case 7:
      funcptsyst = powerLaw3Par(&pt,parpt7);
      if ( funcptvalPBP > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPBP;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary7);
      if ( funcyvalPBP > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPBP;
      break;
    case 8:
      funcptsyst = powerLaw3Par(&pt,parpt8);
      if ( funcptvalPBP > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPBP;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary8);
      if ( funcyvalPBP > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPBP;
      break;
    case 9:
      funcptsyst = powerLaw3Par(&pt,parpt9);
      if ( funcptvalPP > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPP;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary9);
      if ( funcyvalPP > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPP;
      break;
    case 10:
      funcptsyst = powerLaw3Par(&pt,parpt10);
      if ( funcptvalPP > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPP;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary10);
      if ( funcyvalPP > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPP;
      break;
    case 11:
      funcptsyst = powerLaw3Par(&pt,parpt11);
      if ( funcptvalPP > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPP;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary11);
      if ( funcyvalPP > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPP;
      break;
    case 12:
      funcptsyst = powerLaw3Par(&pt,parpt12);
      if ( funcptvalPP > 0 && funcptsyst > 0 ) weight = funcptsyst/funcptvalPP;
      else  weight = 1;
      funcysyst = normPol12Par(&rapidity,pary12);
      if ( funcyvalPP > 0 && funcysyst > 0 ) weight *= funcysyst/funcyvalPP;
      break;
  }
  
  return weight;
}

//________________________________________________________________________
Double_t AliAnalysisMuMuMinv::powerLaw3Par(Double_t *x, Double_t *par)
{
  //3 parameters
  Double_t arg = 0;
  
  arg = par[0]*x[0] / TMath::Power( 1 + par[1]*x[0]*x[0], par[2]);
  
  return arg;
}


//________________________________________________________________________
Double_t AliAnalysisMuMuMinv::normPol12Par(Double_t *x, Double_t *par)
{
  //2 parameters
  Double_t arg1 = 0;
  
  arg1 = par[0] * ( 1 + par[1]*x[0] );
  
  
  return arg1;
}

//_____________________________________________________________________________
Bool_t AliAnalysisMuMuMinv::IsPtInRange(const AliVParticle& t1, const AliVParticle& t2, Double_t& ptmin, Double_t& ptmax) const
{
  /// Whether the pair passes the rapidity cut
  
  TLorentzVector p1(t1.Px(),t1.Py(),t1.Pz(),TMath::Sqrt(AliAnalysisMuonUtility::MuonMass2()+t1.P()*t1.P()));
  TLorentzVector p2(t2.Px(),t2.Py(),t2.Pz(),TMath::Sqrt(AliAnalysisMuonUtility::MuonMass2()+t2.P()*t2.P()));
  
  TLorentzVector total(p1+p2);
  
  Double_t pt = total.Pt();
  
  return  ( pt < ptmax && pt > ptmin );
}

//_____________________________________________________________________________
void AliAnalysisMuMuMinv::NameOfIsPtInRange(TString& name, Double_t& ptmin, Double_t& ptmax) const
{
  name.Form("PAIRPTIN%2.1f-%2.1f",ptmin,ptmax);
}

//_____________________________________________________________________________
Bool_t AliAnalysisMuMuMinv::IsRapidityInRange(const AliVParticle& t1, const AliVParticle& t2) const
{
  TLorentzVector p1(t1.Px(),t1.Py(),t1.Pz(),TMath::Sqrt(AliAnalysisMuonUtility::MuonMass2()+t1.P()*t1.P()));
  TLorentzVector p2(t2.Px(),t2.Py(),t2.Pz(),TMath::Sqrt(AliAnalysisMuonUtility::MuonMass2()+t2.P()*t2.P()));
  
  TLorentzVector total(p1+p2);
  
  Double_t y = total.Rapidity();

  return  ( y < -2.5 && y > -4.0 );
}
 AliAnalysisMuMuMinv.cxx:1
 AliAnalysisMuMuMinv.cxx:2
 AliAnalysisMuMuMinv.cxx:3
 AliAnalysisMuMuMinv.cxx:4
 AliAnalysisMuMuMinv.cxx:5
 AliAnalysisMuMuMinv.cxx:6
 AliAnalysisMuMuMinv.cxx:7
 AliAnalysisMuMuMinv.cxx:8
 AliAnalysisMuMuMinv.cxx:9
 AliAnalysisMuMuMinv.cxx:10
 AliAnalysisMuMuMinv.cxx:11
 AliAnalysisMuMuMinv.cxx:12
 AliAnalysisMuMuMinv.cxx:13
 AliAnalysisMuMuMinv.cxx:14
 AliAnalysisMuMuMinv.cxx:15
 AliAnalysisMuMuMinv.cxx:16
 AliAnalysisMuMuMinv.cxx:17
 AliAnalysisMuMuMinv.cxx:18
 AliAnalysisMuMuMinv.cxx:19
 AliAnalysisMuMuMinv.cxx:20
 AliAnalysisMuMuMinv.cxx:21
 AliAnalysisMuMuMinv.cxx:22
 AliAnalysisMuMuMinv.cxx:23
 AliAnalysisMuMuMinv.cxx:24
 AliAnalysisMuMuMinv.cxx:25
 AliAnalysisMuMuMinv.cxx:26
 AliAnalysisMuMuMinv.cxx:27
 AliAnalysisMuMuMinv.cxx:28
 AliAnalysisMuMuMinv.cxx:29
 AliAnalysisMuMuMinv.cxx:30
 AliAnalysisMuMuMinv.cxx:31
 AliAnalysisMuMuMinv.cxx:32
 AliAnalysisMuMuMinv.cxx:33
 AliAnalysisMuMuMinv.cxx:34
 AliAnalysisMuMuMinv.cxx:35
 AliAnalysisMuMuMinv.cxx:36
 AliAnalysisMuMuMinv.cxx:37
 AliAnalysisMuMuMinv.cxx:38
 AliAnalysisMuMuMinv.cxx:39
 AliAnalysisMuMuMinv.cxx:40
 AliAnalysisMuMuMinv.cxx:41
 AliAnalysisMuMuMinv.cxx:42
 AliAnalysisMuMuMinv.cxx:43
 AliAnalysisMuMuMinv.cxx:44
 AliAnalysisMuMuMinv.cxx:45
 AliAnalysisMuMuMinv.cxx:46
 AliAnalysisMuMuMinv.cxx:47
 AliAnalysisMuMuMinv.cxx:48
 AliAnalysisMuMuMinv.cxx:49
 AliAnalysisMuMuMinv.cxx:50
 AliAnalysisMuMuMinv.cxx:51
 AliAnalysisMuMuMinv.cxx:52
 AliAnalysisMuMuMinv.cxx:53
 AliAnalysisMuMuMinv.cxx:54
 AliAnalysisMuMuMinv.cxx:55
 AliAnalysisMuMuMinv.cxx:56
 AliAnalysisMuMuMinv.cxx:57
 AliAnalysisMuMuMinv.cxx:58
 AliAnalysisMuMuMinv.cxx:59
 AliAnalysisMuMuMinv.cxx:60
 AliAnalysisMuMuMinv.cxx:61
 AliAnalysisMuMuMinv.cxx:62
 AliAnalysisMuMuMinv.cxx:63
 AliAnalysisMuMuMinv.cxx:64
 AliAnalysisMuMuMinv.cxx:65
 AliAnalysisMuMuMinv.cxx:66
 AliAnalysisMuMuMinv.cxx:67
 AliAnalysisMuMuMinv.cxx:68
 AliAnalysisMuMuMinv.cxx:69
 AliAnalysisMuMuMinv.cxx:70
 AliAnalysisMuMuMinv.cxx:71
 AliAnalysisMuMuMinv.cxx:72
 AliAnalysisMuMuMinv.cxx:73
 AliAnalysisMuMuMinv.cxx:74
 AliAnalysisMuMuMinv.cxx:75
 AliAnalysisMuMuMinv.cxx:76
 AliAnalysisMuMuMinv.cxx:77
 AliAnalysisMuMuMinv.cxx:78
 AliAnalysisMuMuMinv.cxx:79
 AliAnalysisMuMuMinv.cxx:80
 AliAnalysisMuMuMinv.cxx:81
 AliAnalysisMuMuMinv.cxx:82
 AliAnalysisMuMuMinv.cxx:83
 AliAnalysisMuMuMinv.cxx:84
 AliAnalysisMuMuMinv.cxx:85
 AliAnalysisMuMuMinv.cxx:86
 AliAnalysisMuMuMinv.cxx:87
 AliAnalysisMuMuMinv.cxx:88
 AliAnalysisMuMuMinv.cxx:89
 AliAnalysisMuMuMinv.cxx:90
 AliAnalysisMuMuMinv.cxx:91
 AliAnalysisMuMuMinv.cxx:92
 AliAnalysisMuMuMinv.cxx:93
 AliAnalysisMuMuMinv.cxx:94
 AliAnalysisMuMuMinv.cxx:95
 AliAnalysisMuMuMinv.cxx:96
 AliAnalysisMuMuMinv.cxx:97
 AliAnalysisMuMuMinv.cxx:98
 AliAnalysisMuMuMinv.cxx:99
 AliAnalysisMuMuMinv.cxx:100
 AliAnalysisMuMuMinv.cxx:101
 AliAnalysisMuMuMinv.cxx:102
 AliAnalysisMuMuMinv.cxx:103
 AliAnalysisMuMuMinv.cxx:104
 AliAnalysisMuMuMinv.cxx:105
 AliAnalysisMuMuMinv.cxx:106
 AliAnalysisMuMuMinv.cxx:107
 AliAnalysisMuMuMinv.cxx:108
 AliAnalysisMuMuMinv.cxx:109
 AliAnalysisMuMuMinv.cxx:110
 AliAnalysisMuMuMinv.cxx:111
 AliAnalysisMuMuMinv.cxx:112
 AliAnalysisMuMuMinv.cxx:113
 AliAnalysisMuMuMinv.cxx:114
 AliAnalysisMuMuMinv.cxx:115
 AliAnalysisMuMuMinv.cxx:116
 AliAnalysisMuMuMinv.cxx:117
 AliAnalysisMuMuMinv.cxx:118
 AliAnalysisMuMuMinv.cxx:119
 AliAnalysisMuMuMinv.cxx:120
 AliAnalysisMuMuMinv.cxx:121
 AliAnalysisMuMuMinv.cxx:122
 AliAnalysisMuMuMinv.cxx:123
 AliAnalysisMuMuMinv.cxx:124
 AliAnalysisMuMuMinv.cxx:125
 AliAnalysisMuMuMinv.cxx:126
 AliAnalysisMuMuMinv.cxx:127
 AliAnalysisMuMuMinv.cxx:128
 AliAnalysisMuMuMinv.cxx:129
 AliAnalysisMuMuMinv.cxx:130
 AliAnalysisMuMuMinv.cxx:131
 AliAnalysisMuMuMinv.cxx:132
 AliAnalysisMuMuMinv.cxx:133
 AliAnalysisMuMuMinv.cxx:134
 AliAnalysisMuMuMinv.cxx:135
 AliAnalysisMuMuMinv.cxx:136
 AliAnalysisMuMuMinv.cxx:137
 AliAnalysisMuMuMinv.cxx:138
 AliAnalysisMuMuMinv.cxx:139
 AliAnalysisMuMuMinv.cxx:140
 AliAnalysisMuMuMinv.cxx:141
 AliAnalysisMuMuMinv.cxx:142
 AliAnalysisMuMuMinv.cxx:143
 AliAnalysisMuMuMinv.cxx:144
 AliAnalysisMuMuMinv.cxx:145
 AliAnalysisMuMuMinv.cxx:146
 AliAnalysisMuMuMinv.cxx:147
 AliAnalysisMuMuMinv.cxx:148
 AliAnalysisMuMuMinv.cxx:149
 AliAnalysisMuMuMinv.cxx:150
 AliAnalysisMuMuMinv.cxx:151
 AliAnalysisMuMuMinv.cxx:152
 AliAnalysisMuMuMinv.cxx:153
 AliAnalysisMuMuMinv.cxx:154
 AliAnalysisMuMuMinv.cxx:155
 AliAnalysisMuMuMinv.cxx:156
 AliAnalysisMuMuMinv.cxx:157
 AliAnalysisMuMuMinv.cxx:158
 AliAnalysisMuMuMinv.cxx:159
 AliAnalysisMuMuMinv.cxx:160
 AliAnalysisMuMuMinv.cxx:161
 AliAnalysisMuMuMinv.cxx:162
 AliAnalysisMuMuMinv.cxx:163
 AliAnalysisMuMuMinv.cxx:164
 AliAnalysisMuMuMinv.cxx:165
 AliAnalysisMuMuMinv.cxx:166
 AliAnalysisMuMuMinv.cxx:167
 AliAnalysisMuMuMinv.cxx:168
 AliAnalysisMuMuMinv.cxx:169
 AliAnalysisMuMuMinv.cxx:170
 AliAnalysisMuMuMinv.cxx:171
 AliAnalysisMuMuMinv.cxx:172
 AliAnalysisMuMuMinv.cxx:173
 AliAnalysisMuMuMinv.cxx:174
 AliAnalysisMuMuMinv.cxx:175
 AliAnalysisMuMuMinv.cxx:176
 AliAnalysisMuMuMinv.cxx:177
 AliAnalysisMuMuMinv.cxx:178
 AliAnalysisMuMuMinv.cxx:179
 AliAnalysisMuMuMinv.cxx:180
 AliAnalysisMuMuMinv.cxx:181
 AliAnalysisMuMuMinv.cxx:182
 AliAnalysisMuMuMinv.cxx:183
 AliAnalysisMuMuMinv.cxx:184
 AliAnalysisMuMuMinv.cxx:185
 AliAnalysisMuMuMinv.cxx:186
 AliAnalysisMuMuMinv.cxx:187
 AliAnalysisMuMuMinv.cxx:188
 AliAnalysisMuMuMinv.cxx:189
 AliAnalysisMuMuMinv.cxx:190
 AliAnalysisMuMuMinv.cxx:191
 AliAnalysisMuMuMinv.cxx:192
 AliAnalysisMuMuMinv.cxx:193
 AliAnalysisMuMuMinv.cxx:194
 AliAnalysisMuMuMinv.cxx:195
 AliAnalysisMuMuMinv.cxx:196
 AliAnalysisMuMuMinv.cxx:197
 AliAnalysisMuMuMinv.cxx:198
 AliAnalysisMuMuMinv.cxx:199
 AliAnalysisMuMuMinv.cxx:200
 AliAnalysisMuMuMinv.cxx:201
 AliAnalysisMuMuMinv.cxx:202
 AliAnalysisMuMuMinv.cxx:203
 AliAnalysisMuMuMinv.cxx:204
 AliAnalysisMuMuMinv.cxx:205
 AliAnalysisMuMuMinv.cxx:206
 AliAnalysisMuMuMinv.cxx:207
 AliAnalysisMuMuMinv.cxx:208
 AliAnalysisMuMuMinv.cxx:209
 AliAnalysisMuMuMinv.cxx:210
 AliAnalysisMuMuMinv.cxx:211
 AliAnalysisMuMuMinv.cxx:212
 AliAnalysisMuMuMinv.cxx:213
 AliAnalysisMuMuMinv.cxx:214
 AliAnalysisMuMuMinv.cxx:215
 AliAnalysisMuMuMinv.cxx:216
 AliAnalysisMuMuMinv.cxx:217
 AliAnalysisMuMuMinv.cxx:218
 AliAnalysisMuMuMinv.cxx:219
 AliAnalysisMuMuMinv.cxx:220
 AliAnalysisMuMuMinv.cxx:221
 AliAnalysisMuMuMinv.cxx:222
 AliAnalysisMuMuMinv.cxx:223
 AliAnalysisMuMuMinv.cxx:224
 AliAnalysisMuMuMinv.cxx:225
 AliAnalysisMuMuMinv.cxx:226
 AliAnalysisMuMuMinv.cxx:227
 AliAnalysisMuMuMinv.cxx:228
 AliAnalysisMuMuMinv.cxx:229
 AliAnalysisMuMuMinv.cxx:230
 AliAnalysisMuMuMinv.cxx:231
 AliAnalysisMuMuMinv.cxx:232
 AliAnalysisMuMuMinv.cxx:233
 AliAnalysisMuMuMinv.cxx:234
 AliAnalysisMuMuMinv.cxx:235
 AliAnalysisMuMuMinv.cxx:236
 AliAnalysisMuMuMinv.cxx:237
 AliAnalysisMuMuMinv.cxx:238
 AliAnalysisMuMuMinv.cxx:239
 AliAnalysisMuMuMinv.cxx:240
 AliAnalysisMuMuMinv.cxx:241
 AliAnalysisMuMuMinv.cxx:242
 AliAnalysisMuMuMinv.cxx:243
 AliAnalysisMuMuMinv.cxx:244
 AliAnalysisMuMuMinv.cxx:245
 AliAnalysisMuMuMinv.cxx:246
 AliAnalysisMuMuMinv.cxx:247
 AliAnalysisMuMuMinv.cxx:248
 AliAnalysisMuMuMinv.cxx:249
 AliAnalysisMuMuMinv.cxx:250
 AliAnalysisMuMuMinv.cxx:251
 AliAnalysisMuMuMinv.cxx:252
 AliAnalysisMuMuMinv.cxx:253
 AliAnalysisMuMuMinv.cxx:254
 AliAnalysisMuMuMinv.cxx:255
 AliAnalysisMuMuMinv.cxx:256
 AliAnalysisMuMuMinv.cxx:257
 AliAnalysisMuMuMinv.cxx:258
 AliAnalysisMuMuMinv.cxx:259
 AliAnalysisMuMuMinv.cxx:260
 AliAnalysisMuMuMinv.cxx:261
 AliAnalysisMuMuMinv.cxx:262
 AliAnalysisMuMuMinv.cxx:263
 AliAnalysisMuMuMinv.cxx:264
 AliAnalysisMuMuMinv.cxx:265
 AliAnalysisMuMuMinv.cxx:266
 AliAnalysisMuMuMinv.cxx:267
 AliAnalysisMuMuMinv.cxx:268
 AliAnalysisMuMuMinv.cxx:269
 AliAnalysisMuMuMinv.cxx:270
 AliAnalysisMuMuMinv.cxx:271
 AliAnalysisMuMuMinv.cxx:272
 AliAnalysisMuMuMinv.cxx:273
 AliAnalysisMuMuMinv.cxx:274
 AliAnalysisMuMuMinv.cxx:275
 AliAnalysisMuMuMinv.cxx:276
 AliAnalysisMuMuMinv.cxx:277
 AliAnalysisMuMuMinv.cxx:278
 AliAnalysisMuMuMinv.cxx:279
 AliAnalysisMuMuMinv.cxx:280
 AliAnalysisMuMuMinv.cxx:281
 AliAnalysisMuMuMinv.cxx:282
 AliAnalysisMuMuMinv.cxx:283
 AliAnalysisMuMuMinv.cxx:284
 AliAnalysisMuMuMinv.cxx:285
 AliAnalysisMuMuMinv.cxx:286
 AliAnalysisMuMuMinv.cxx:287
 AliAnalysisMuMuMinv.cxx:288
 AliAnalysisMuMuMinv.cxx:289
 AliAnalysisMuMuMinv.cxx:290
 AliAnalysisMuMuMinv.cxx:291
 AliAnalysisMuMuMinv.cxx:292
 AliAnalysisMuMuMinv.cxx:293
 AliAnalysisMuMuMinv.cxx:294
 AliAnalysisMuMuMinv.cxx:295
 AliAnalysisMuMuMinv.cxx:296
 AliAnalysisMuMuMinv.cxx:297
 AliAnalysisMuMuMinv.cxx:298
 AliAnalysisMuMuMinv.cxx:299
 AliAnalysisMuMuMinv.cxx:300
 AliAnalysisMuMuMinv.cxx:301
 AliAnalysisMuMuMinv.cxx:302
 AliAnalysisMuMuMinv.cxx:303
 AliAnalysisMuMuMinv.cxx:304
 AliAnalysisMuMuMinv.cxx:305
 AliAnalysisMuMuMinv.cxx:306
 AliAnalysisMuMuMinv.cxx:307
 AliAnalysisMuMuMinv.cxx:308
 AliAnalysisMuMuMinv.cxx:309
 AliAnalysisMuMuMinv.cxx:310
 AliAnalysisMuMuMinv.cxx:311
 AliAnalysisMuMuMinv.cxx:312
 AliAnalysisMuMuMinv.cxx:313
 AliAnalysisMuMuMinv.cxx:314
 AliAnalysisMuMuMinv.cxx:315
 AliAnalysisMuMuMinv.cxx:316
 AliAnalysisMuMuMinv.cxx:317
 AliAnalysisMuMuMinv.cxx:318
 AliAnalysisMuMuMinv.cxx:319
 AliAnalysisMuMuMinv.cxx:320
 AliAnalysisMuMuMinv.cxx:321
 AliAnalysisMuMuMinv.cxx:322
 AliAnalysisMuMuMinv.cxx:323
 AliAnalysisMuMuMinv.cxx:324
 AliAnalysisMuMuMinv.cxx:325
 AliAnalysisMuMuMinv.cxx:326
 AliAnalysisMuMuMinv.cxx:327
 AliAnalysisMuMuMinv.cxx:328
 AliAnalysisMuMuMinv.cxx:329
 AliAnalysisMuMuMinv.cxx:330
 AliAnalysisMuMuMinv.cxx:331
 AliAnalysisMuMuMinv.cxx:332
 AliAnalysisMuMuMinv.cxx:333
 AliAnalysisMuMuMinv.cxx:334
 AliAnalysisMuMuMinv.cxx:335
 AliAnalysisMuMuMinv.cxx:336
 AliAnalysisMuMuMinv.cxx:337
 AliAnalysisMuMuMinv.cxx:338
 AliAnalysisMuMuMinv.cxx:339
 AliAnalysisMuMuMinv.cxx:340
 AliAnalysisMuMuMinv.cxx:341
 AliAnalysisMuMuMinv.cxx:342
 AliAnalysisMuMuMinv.cxx:343
 AliAnalysisMuMuMinv.cxx:344
 AliAnalysisMuMuMinv.cxx:345
 AliAnalysisMuMuMinv.cxx:346
 AliAnalysisMuMuMinv.cxx:347
 AliAnalysisMuMuMinv.cxx:348
 AliAnalysisMuMuMinv.cxx:349
 AliAnalysisMuMuMinv.cxx:350
 AliAnalysisMuMuMinv.cxx:351
 AliAnalysisMuMuMinv.cxx:352
 AliAnalysisMuMuMinv.cxx:353
 AliAnalysisMuMuMinv.cxx:354
 AliAnalysisMuMuMinv.cxx:355
 AliAnalysisMuMuMinv.cxx:356
 AliAnalysisMuMuMinv.cxx:357
 AliAnalysisMuMuMinv.cxx:358
 AliAnalysisMuMuMinv.cxx:359
 AliAnalysisMuMuMinv.cxx:360
 AliAnalysisMuMuMinv.cxx:361
 AliAnalysisMuMuMinv.cxx:362
 AliAnalysisMuMuMinv.cxx:363
 AliAnalysisMuMuMinv.cxx:364
 AliAnalysisMuMuMinv.cxx:365
 AliAnalysisMuMuMinv.cxx:366
 AliAnalysisMuMuMinv.cxx:367
 AliAnalysisMuMuMinv.cxx:368
 AliAnalysisMuMuMinv.cxx:369
 AliAnalysisMuMuMinv.cxx:370
 AliAnalysisMuMuMinv.cxx:371
 AliAnalysisMuMuMinv.cxx:372
 AliAnalysisMuMuMinv.cxx:373
 AliAnalysisMuMuMinv.cxx:374
 AliAnalysisMuMuMinv.cxx:375
 AliAnalysisMuMuMinv.cxx:376
 AliAnalysisMuMuMinv.cxx:377
 AliAnalysisMuMuMinv.cxx:378
 AliAnalysisMuMuMinv.cxx:379
 AliAnalysisMuMuMinv.cxx:380
 AliAnalysisMuMuMinv.cxx:381
 AliAnalysisMuMuMinv.cxx:382
 AliAnalysisMuMuMinv.cxx:383
 AliAnalysisMuMuMinv.cxx:384
 AliAnalysisMuMuMinv.cxx:385
 AliAnalysisMuMuMinv.cxx:386
 AliAnalysisMuMuMinv.cxx:387
 AliAnalysisMuMuMinv.cxx:388
 AliAnalysisMuMuMinv.cxx:389
 AliAnalysisMuMuMinv.cxx:390
 AliAnalysisMuMuMinv.cxx:391
 AliAnalysisMuMuMinv.cxx:392
 AliAnalysisMuMuMinv.cxx:393
 AliAnalysisMuMuMinv.cxx:394
 AliAnalysisMuMuMinv.cxx:395
 AliAnalysisMuMuMinv.cxx:396
 AliAnalysisMuMuMinv.cxx:397
 AliAnalysisMuMuMinv.cxx:398
 AliAnalysisMuMuMinv.cxx:399
 AliAnalysisMuMuMinv.cxx:400
 AliAnalysisMuMuMinv.cxx:401
 AliAnalysisMuMuMinv.cxx:402
 AliAnalysisMuMuMinv.cxx:403
 AliAnalysisMuMuMinv.cxx:404
 AliAnalysisMuMuMinv.cxx:405
 AliAnalysisMuMuMinv.cxx:406
 AliAnalysisMuMuMinv.cxx:407
 AliAnalysisMuMuMinv.cxx:408
 AliAnalysisMuMuMinv.cxx:409
 AliAnalysisMuMuMinv.cxx:410
 AliAnalysisMuMuMinv.cxx:411
 AliAnalysisMuMuMinv.cxx:412
 AliAnalysisMuMuMinv.cxx:413
 AliAnalysisMuMuMinv.cxx:414
 AliAnalysisMuMuMinv.cxx:415
 AliAnalysisMuMuMinv.cxx:416
 AliAnalysisMuMuMinv.cxx:417
 AliAnalysisMuMuMinv.cxx:418
 AliAnalysisMuMuMinv.cxx:419
 AliAnalysisMuMuMinv.cxx:420
 AliAnalysisMuMuMinv.cxx:421
 AliAnalysisMuMuMinv.cxx:422
 AliAnalysisMuMuMinv.cxx:423
 AliAnalysisMuMuMinv.cxx:424
 AliAnalysisMuMuMinv.cxx:425
 AliAnalysisMuMuMinv.cxx:426
 AliAnalysisMuMuMinv.cxx:427
 AliAnalysisMuMuMinv.cxx:428
 AliAnalysisMuMuMinv.cxx:429
 AliAnalysisMuMuMinv.cxx:430
 AliAnalysisMuMuMinv.cxx:431
 AliAnalysisMuMuMinv.cxx:432
 AliAnalysisMuMuMinv.cxx:433
 AliAnalysisMuMuMinv.cxx:434
 AliAnalysisMuMuMinv.cxx:435
 AliAnalysisMuMuMinv.cxx:436
 AliAnalysisMuMuMinv.cxx:437
 AliAnalysisMuMuMinv.cxx:438
 AliAnalysisMuMuMinv.cxx:439
 AliAnalysisMuMuMinv.cxx:440
 AliAnalysisMuMuMinv.cxx:441
 AliAnalysisMuMuMinv.cxx:442
 AliAnalysisMuMuMinv.cxx:443
 AliAnalysisMuMuMinv.cxx:444
 AliAnalysisMuMuMinv.cxx:445
 AliAnalysisMuMuMinv.cxx:446
 AliAnalysisMuMuMinv.cxx:447
 AliAnalysisMuMuMinv.cxx:448
 AliAnalysisMuMuMinv.cxx:449
 AliAnalysisMuMuMinv.cxx:450
 AliAnalysisMuMuMinv.cxx:451
 AliAnalysisMuMuMinv.cxx:452
 AliAnalysisMuMuMinv.cxx:453
 AliAnalysisMuMuMinv.cxx:454
 AliAnalysisMuMuMinv.cxx:455
 AliAnalysisMuMuMinv.cxx:456
 AliAnalysisMuMuMinv.cxx:457
 AliAnalysisMuMuMinv.cxx:458
 AliAnalysisMuMuMinv.cxx:459
 AliAnalysisMuMuMinv.cxx:460
 AliAnalysisMuMuMinv.cxx:461
 AliAnalysisMuMuMinv.cxx:462
 AliAnalysisMuMuMinv.cxx:463
 AliAnalysisMuMuMinv.cxx:464
 AliAnalysisMuMuMinv.cxx:465
 AliAnalysisMuMuMinv.cxx:466
 AliAnalysisMuMuMinv.cxx:467
 AliAnalysisMuMuMinv.cxx:468
 AliAnalysisMuMuMinv.cxx:469
 AliAnalysisMuMuMinv.cxx:470
 AliAnalysisMuMuMinv.cxx:471
 AliAnalysisMuMuMinv.cxx:472
 AliAnalysisMuMuMinv.cxx:473
 AliAnalysisMuMuMinv.cxx:474
 AliAnalysisMuMuMinv.cxx:475
 AliAnalysisMuMuMinv.cxx:476
 AliAnalysisMuMuMinv.cxx:477
 AliAnalysisMuMuMinv.cxx:478
 AliAnalysisMuMuMinv.cxx:479
 AliAnalysisMuMuMinv.cxx:480
 AliAnalysisMuMuMinv.cxx:481
 AliAnalysisMuMuMinv.cxx:482
 AliAnalysisMuMuMinv.cxx:483
 AliAnalysisMuMuMinv.cxx:484
 AliAnalysisMuMuMinv.cxx:485
 AliAnalysisMuMuMinv.cxx:486
 AliAnalysisMuMuMinv.cxx:487
 AliAnalysisMuMuMinv.cxx:488
 AliAnalysisMuMuMinv.cxx:489
 AliAnalysisMuMuMinv.cxx:490
 AliAnalysisMuMuMinv.cxx:491
 AliAnalysisMuMuMinv.cxx:492
 AliAnalysisMuMuMinv.cxx:493
 AliAnalysisMuMuMinv.cxx:494
 AliAnalysisMuMuMinv.cxx:495
 AliAnalysisMuMuMinv.cxx:496
 AliAnalysisMuMuMinv.cxx:497
 AliAnalysisMuMuMinv.cxx:498
 AliAnalysisMuMuMinv.cxx:499
 AliAnalysisMuMuMinv.cxx:500
 AliAnalysisMuMuMinv.cxx:501
 AliAnalysisMuMuMinv.cxx:502
 AliAnalysisMuMuMinv.cxx:503
 AliAnalysisMuMuMinv.cxx:504
 AliAnalysisMuMuMinv.cxx:505
 AliAnalysisMuMuMinv.cxx:506
 AliAnalysisMuMuMinv.cxx:507
 AliAnalysisMuMuMinv.cxx:508
 AliAnalysisMuMuMinv.cxx:509
 AliAnalysisMuMuMinv.cxx:510
 AliAnalysisMuMuMinv.cxx:511
 AliAnalysisMuMuMinv.cxx:512
 AliAnalysisMuMuMinv.cxx:513
 AliAnalysisMuMuMinv.cxx:514
 AliAnalysisMuMuMinv.cxx:515
 AliAnalysisMuMuMinv.cxx:516
 AliAnalysisMuMuMinv.cxx:517
 AliAnalysisMuMuMinv.cxx:518
 AliAnalysisMuMuMinv.cxx:519
 AliAnalysisMuMuMinv.cxx:520
 AliAnalysisMuMuMinv.cxx:521
 AliAnalysisMuMuMinv.cxx:522
 AliAnalysisMuMuMinv.cxx:523
 AliAnalysisMuMuMinv.cxx:524
 AliAnalysisMuMuMinv.cxx:525
 AliAnalysisMuMuMinv.cxx:526
 AliAnalysisMuMuMinv.cxx:527
 AliAnalysisMuMuMinv.cxx:528
 AliAnalysisMuMuMinv.cxx:529
 AliAnalysisMuMuMinv.cxx:530
 AliAnalysisMuMuMinv.cxx:531
 AliAnalysisMuMuMinv.cxx:532
 AliAnalysisMuMuMinv.cxx:533
 AliAnalysisMuMuMinv.cxx:534
 AliAnalysisMuMuMinv.cxx:535
 AliAnalysisMuMuMinv.cxx:536
 AliAnalysisMuMuMinv.cxx:537
 AliAnalysisMuMuMinv.cxx:538
 AliAnalysisMuMuMinv.cxx:539
 AliAnalysisMuMuMinv.cxx:540
 AliAnalysisMuMuMinv.cxx:541
 AliAnalysisMuMuMinv.cxx:542
 AliAnalysisMuMuMinv.cxx:543
 AliAnalysisMuMuMinv.cxx:544
 AliAnalysisMuMuMinv.cxx:545
 AliAnalysisMuMuMinv.cxx:546
 AliAnalysisMuMuMinv.cxx:547
 AliAnalysisMuMuMinv.cxx:548
 AliAnalysisMuMuMinv.cxx:549
 AliAnalysisMuMuMinv.cxx:550
 AliAnalysisMuMuMinv.cxx:551
 AliAnalysisMuMuMinv.cxx:552
 AliAnalysisMuMuMinv.cxx:553
 AliAnalysisMuMuMinv.cxx:554
 AliAnalysisMuMuMinv.cxx:555
 AliAnalysisMuMuMinv.cxx:556
 AliAnalysisMuMuMinv.cxx:557
 AliAnalysisMuMuMinv.cxx:558
 AliAnalysisMuMuMinv.cxx:559
 AliAnalysisMuMuMinv.cxx:560
 AliAnalysisMuMuMinv.cxx:561
 AliAnalysisMuMuMinv.cxx:562
 AliAnalysisMuMuMinv.cxx:563
 AliAnalysisMuMuMinv.cxx:564
 AliAnalysisMuMuMinv.cxx:565
 AliAnalysisMuMuMinv.cxx:566
 AliAnalysisMuMuMinv.cxx:567
 AliAnalysisMuMuMinv.cxx:568
 AliAnalysisMuMuMinv.cxx:569
 AliAnalysisMuMuMinv.cxx:570
 AliAnalysisMuMuMinv.cxx:571
 AliAnalysisMuMuMinv.cxx:572
 AliAnalysisMuMuMinv.cxx:573
 AliAnalysisMuMuMinv.cxx:574
 AliAnalysisMuMuMinv.cxx:575
 AliAnalysisMuMuMinv.cxx:576
 AliAnalysisMuMuMinv.cxx:577
 AliAnalysisMuMuMinv.cxx:578
 AliAnalysisMuMuMinv.cxx:579
 AliAnalysisMuMuMinv.cxx:580
 AliAnalysisMuMuMinv.cxx:581
 AliAnalysisMuMuMinv.cxx:582
 AliAnalysisMuMuMinv.cxx:583
 AliAnalysisMuMuMinv.cxx:584
 AliAnalysisMuMuMinv.cxx:585
 AliAnalysisMuMuMinv.cxx:586
 AliAnalysisMuMuMinv.cxx:587
 AliAnalysisMuMuMinv.cxx:588
 AliAnalysisMuMuMinv.cxx:589
 AliAnalysisMuMuMinv.cxx:590
 AliAnalysisMuMuMinv.cxx:591
 AliAnalysisMuMuMinv.cxx:592
 AliAnalysisMuMuMinv.cxx:593
 AliAnalysisMuMuMinv.cxx:594
 AliAnalysisMuMuMinv.cxx:595
 AliAnalysisMuMuMinv.cxx:596
 AliAnalysisMuMuMinv.cxx:597
 AliAnalysisMuMuMinv.cxx:598
 AliAnalysisMuMuMinv.cxx:599
 AliAnalysisMuMuMinv.cxx:600
 AliAnalysisMuMuMinv.cxx:601
 AliAnalysisMuMuMinv.cxx:602
 AliAnalysisMuMuMinv.cxx:603
 AliAnalysisMuMuMinv.cxx:604
 AliAnalysisMuMuMinv.cxx:605
 AliAnalysisMuMuMinv.cxx:606
 AliAnalysisMuMuMinv.cxx:607
 AliAnalysisMuMuMinv.cxx:608
 AliAnalysisMuMuMinv.cxx:609
 AliAnalysisMuMuMinv.cxx:610
 AliAnalysisMuMuMinv.cxx:611
 AliAnalysisMuMuMinv.cxx:612
 AliAnalysisMuMuMinv.cxx:613
 AliAnalysisMuMuMinv.cxx:614
 AliAnalysisMuMuMinv.cxx:615
 AliAnalysisMuMuMinv.cxx:616
 AliAnalysisMuMuMinv.cxx:617
 AliAnalysisMuMuMinv.cxx:618
 AliAnalysisMuMuMinv.cxx:619
 AliAnalysisMuMuMinv.cxx:620
 AliAnalysisMuMuMinv.cxx:621
 AliAnalysisMuMuMinv.cxx:622
 AliAnalysisMuMuMinv.cxx:623
 AliAnalysisMuMuMinv.cxx:624
 AliAnalysisMuMuMinv.cxx:625
 AliAnalysisMuMuMinv.cxx:626
 AliAnalysisMuMuMinv.cxx:627
 AliAnalysisMuMuMinv.cxx:628
 AliAnalysisMuMuMinv.cxx:629
 AliAnalysisMuMuMinv.cxx:630
 AliAnalysisMuMuMinv.cxx:631
 AliAnalysisMuMuMinv.cxx:632
 AliAnalysisMuMuMinv.cxx:633
 AliAnalysisMuMuMinv.cxx:634
 AliAnalysisMuMuMinv.cxx:635
 AliAnalysisMuMuMinv.cxx:636
 AliAnalysisMuMuMinv.cxx:637
 AliAnalysisMuMuMinv.cxx:638
 AliAnalysisMuMuMinv.cxx:639
 AliAnalysisMuMuMinv.cxx:640
 AliAnalysisMuMuMinv.cxx:641
 AliAnalysisMuMuMinv.cxx:642
 AliAnalysisMuMuMinv.cxx:643
 AliAnalysisMuMuMinv.cxx:644
 AliAnalysisMuMuMinv.cxx:645
 AliAnalysisMuMuMinv.cxx:646
 AliAnalysisMuMuMinv.cxx:647
 AliAnalysisMuMuMinv.cxx:648
 AliAnalysisMuMuMinv.cxx:649
 AliAnalysisMuMuMinv.cxx:650
 AliAnalysisMuMuMinv.cxx:651
 AliAnalysisMuMuMinv.cxx:652
 AliAnalysisMuMuMinv.cxx:653
 AliAnalysisMuMuMinv.cxx:654
 AliAnalysisMuMuMinv.cxx:655
 AliAnalysisMuMuMinv.cxx:656
 AliAnalysisMuMuMinv.cxx:657
 AliAnalysisMuMuMinv.cxx:658
 AliAnalysisMuMuMinv.cxx:659
 AliAnalysisMuMuMinv.cxx:660
 AliAnalysisMuMuMinv.cxx:661
 AliAnalysisMuMuMinv.cxx:662
 AliAnalysisMuMuMinv.cxx:663
 AliAnalysisMuMuMinv.cxx:664
 AliAnalysisMuMuMinv.cxx:665
 AliAnalysisMuMuMinv.cxx:666
 AliAnalysisMuMuMinv.cxx:667
 AliAnalysisMuMuMinv.cxx:668
 AliAnalysisMuMuMinv.cxx:669
 AliAnalysisMuMuMinv.cxx:670
 AliAnalysisMuMuMinv.cxx:671
 AliAnalysisMuMuMinv.cxx:672
 AliAnalysisMuMuMinv.cxx:673
 AliAnalysisMuMuMinv.cxx:674
 AliAnalysisMuMuMinv.cxx:675
 AliAnalysisMuMuMinv.cxx:676
 AliAnalysisMuMuMinv.cxx:677
 AliAnalysisMuMuMinv.cxx:678
 AliAnalysisMuMuMinv.cxx:679
 AliAnalysisMuMuMinv.cxx:680
 AliAnalysisMuMuMinv.cxx:681
 AliAnalysisMuMuMinv.cxx:682
 AliAnalysisMuMuMinv.cxx:683
 AliAnalysisMuMuMinv.cxx:684
 AliAnalysisMuMuMinv.cxx:685
 AliAnalysisMuMuMinv.cxx:686
 AliAnalysisMuMuMinv.cxx:687
 AliAnalysisMuMuMinv.cxx:688
 AliAnalysisMuMuMinv.cxx:689
 AliAnalysisMuMuMinv.cxx:690
 AliAnalysisMuMuMinv.cxx:691
 AliAnalysisMuMuMinv.cxx:692
 AliAnalysisMuMuMinv.cxx:693
 AliAnalysisMuMuMinv.cxx:694
 AliAnalysisMuMuMinv.cxx:695
 AliAnalysisMuMuMinv.cxx:696
 AliAnalysisMuMuMinv.cxx:697
 AliAnalysisMuMuMinv.cxx:698
 AliAnalysisMuMuMinv.cxx:699
 AliAnalysisMuMuMinv.cxx:700
 AliAnalysisMuMuMinv.cxx:701
 AliAnalysisMuMuMinv.cxx:702
 AliAnalysisMuMuMinv.cxx:703
 AliAnalysisMuMuMinv.cxx:704
 AliAnalysisMuMuMinv.cxx:705
 AliAnalysisMuMuMinv.cxx:706
 AliAnalysisMuMuMinv.cxx:707
 AliAnalysisMuMuMinv.cxx:708
 AliAnalysisMuMuMinv.cxx:709
 AliAnalysisMuMuMinv.cxx:710
 AliAnalysisMuMuMinv.cxx:711
 AliAnalysisMuMuMinv.cxx:712
 AliAnalysisMuMuMinv.cxx:713
 AliAnalysisMuMuMinv.cxx:714
 AliAnalysisMuMuMinv.cxx:715
 AliAnalysisMuMuMinv.cxx:716
 AliAnalysisMuMuMinv.cxx:717
 AliAnalysisMuMuMinv.cxx:718
 AliAnalysisMuMuMinv.cxx:719
 AliAnalysisMuMuMinv.cxx:720
 AliAnalysisMuMuMinv.cxx:721
 AliAnalysisMuMuMinv.cxx:722
 AliAnalysisMuMuMinv.cxx:723
 AliAnalysisMuMuMinv.cxx:724
 AliAnalysisMuMuMinv.cxx:725
 AliAnalysisMuMuMinv.cxx:726
 AliAnalysisMuMuMinv.cxx:727
 AliAnalysisMuMuMinv.cxx:728
 AliAnalysisMuMuMinv.cxx:729
 AliAnalysisMuMuMinv.cxx:730
 AliAnalysisMuMuMinv.cxx:731
 AliAnalysisMuMuMinv.cxx:732
 AliAnalysisMuMuMinv.cxx:733
 AliAnalysisMuMuMinv.cxx:734
 AliAnalysisMuMuMinv.cxx:735
 AliAnalysisMuMuMinv.cxx:736
 AliAnalysisMuMuMinv.cxx:737
 AliAnalysisMuMuMinv.cxx:738
 AliAnalysisMuMuMinv.cxx:739
 AliAnalysisMuMuMinv.cxx:740
 AliAnalysisMuMuMinv.cxx:741
 AliAnalysisMuMuMinv.cxx:742
 AliAnalysisMuMuMinv.cxx:743
 AliAnalysisMuMuMinv.cxx:744
 AliAnalysisMuMuMinv.cxx:745
 AliAnalysisMuMuMinv.cxx:746
 AliAnalysisMuMuMinv.cxx:747
 AliAnalysisMuMuMinv.cxx:748
 AliAnalysisMuMuMinv.cxx:749
 AliAnalysisMuMuMinv.cxx:750
 AliAnalysisMuMuMinv.cxx:751
 AliAnalysisMuMuMinv.cxx:752
 AliAnalysisMuMuMinv.cxx:753
 AliAnalysisMuMuMinv.cxx:754
 AliAnalysisMuMuMinv.cxx:755
 AliAnalysisMuMuMinv.cxx:756
 AliAnalysisMuMuMinv.cxx:757
 AliAnalysisMuMuMinv.cxx:758
 AliAnalysisMuMuMinv.cxx:759
 AliAnalysisMuMuMinv.cxx:760
 AliAnalysisMuMuMinv.cxx:761
 AliAnalysisMuMuMinv.cxx:762
 AliAnalysisMuMuMinv.cxx:763
 AliAnalysisMuMuMinv.cxx:764
 AliAnalysisMuMuMinv.cxx:765
 AliAnalysisMuMuMinv.cxx:766
 AliAnalysisMuMuMinv.cxx:767
 AliAnalysisMuMuMinv.cxx:768
 AliAnalysisMuMuMinv.cxx:769
 AliAnalysisMuMuMinv.cxx:770
 AliAnalysisMuMuMinv.cxx:771
 AliAnalysisMuMuMinv.cxx:772
 AliAnalysisMuMuMinv.cxx:773
 AliAnalysisMuMuMinv.cxx:774
 AliAnalysisMuMuMinv.cxx:775
 AliAnalysisMuMuMinv.cxx:776
 AliAnalysisMuMuMinv.cxx:777
 AliAnalysisMuMuMinv.cxx:778
 AliAnalysisMuMuMinv.cxx:779
 AliAnalysisMuMuMinv.cxx:780
 AliAnalysisMuMuMinv.cxx:781
 AliAnalysisMuMuMinv.cxx:782
 AliAnalysisMuMuMinv.cxx:783
 AliAnalysisMuMuMinv.cxx:784
 AliAnalysisMuMuMinv.cxx:785
 AliAnalysisMuMuMinv.cxx:786
 AliAnalysisMuMuMinv.cxx:787
 AliAnalysisMuMuMinv.cxx:788
 AliAnalysisMuMuMinv.cxx:789
 AliAnalysisMuMuMinv.cxx:790
 AliAnalysisMuMuMinv.cxx:791
 AliAnalysisMuMuMinv.cxx:792
 AliAnalysisMuMuMinv.cxx:793
 AliAnalysisMuMuMinv.cxx:794
 AliAnalysisMuMuMinv.cxx:795
 AliAnalysisMuMuMinv.cxx:796
 AliAnalysisMuMuMinv.cxx:797
 AliAnalysisMuMuMinv.cxx:798
 AliAnalysisMuMuMinv.cxx:799
 AliAnalysisMuMuMinv.cxx:800
 AliAnalysisMuMuMinv.cxx:801
 AliAnalysisMuMuMinv.cxx:802
 AliAnalysisMuMuMinv.cxx:803
 AliAnalysisMuMuMinv.cxx:804
 AliAnalysisMuMuMinv.cxx:805
 AliAnalysisMuMuMinv.cxx:806
 AliAnalysisMuMuMinv.cxx:807
 AliAnalysisMuMuMinv.cxx:808
 AliAnalysisMuMuMinv.cxx:809
 AliAnalysisMuMuMinv.cxx:810
 AliAnalysisMuMuMinv.cxx:811
 AliAnalysisMuMuMinv.cxx:812
 AliAnalysisMuMuMinv.cxx:813
 AliAnalysisMuMuMinv.cxx:814
 AliAnalysisMuMuMinv.cxx:815
 AliAnalysisMuMuMinv.cxx:816
 AliAnalysisMuMuMinv.cxx:817
 AliAnalysisMuMuMinv.cxx:818
 AliAnalysisMuMuMinv.cxx:819
 AliAnalysisMuMuMinv.cxx:820
 AliAnalysisMuMuMinv.cxx:821
 AliAnalysisMuMuMinv.cxx:822
 AliAnalysisMuMuMinv.cxx:823
 AliAnalysisMuMuMinv.cxx:824
 AliAnalysisMuMuMinv.cxx:825
 AliAnalysisMuMuMinv.cxx:826
 AliAnalysisMuMuMinv.cxx:827
 AliAnalysisMuMuMinv.cxx:828
 AliAnalysisMuMuMinv.cxx:829
 AliAnalysisMuMuMinv.cxx:830
 AliAnalysisMuMuMinv.cxx:831
 AliAnalysisMuMuMinv.cxx:832
 AliAnalysisMuMuMinv.cxx:833
 AliAnalysisMuMuMinv.cxx:834
 AliAnalysisMuMuMinv.cxx:835
 AliAnalysisMuMuMinv.cxx:836
 AliAnalysisMuMuMinv.cxx:837
 AliAnalysisMuMuMinv.cxx:838
 AliAnalysisMuMuMinv.cxx:839
 AliAnalysisMuMuMinv.cxx:840
 AliAnalysisMuMuMinv.cxx:841
 AliAnalysisMuMuMinv.cxx:842
 AliAnalysisMuMuMinv.cxx:843
 AliAnalysisMuMuMinv.cxx:844
 AliAnalysisMuMuMinv.cxx:845
 AliAnalysisMuMuMinv.cxx:846
 AliAnalysisMuMuMinv.cxx:847
 AliAnalysisMuMuMinv.cxx:848
 AliAnalysisMuMuMinv.cxx:849
 AliAnalysisMuMuMinv.cxx:850
 AliAnalysisMuMuMinv.cxx:851
 AliAnalysisMuMuMinv.cxx:852
 AliAnalysisMuMuMinv.cxx:853
 AliAnalysisMuMuMinv.cxx:854
 AliAnalysisMuMuMinv.cxx:855
 AliAnalysisMuMuMinv.cxx:856
 AliAnalysisMuMuMinv.cxx:857
 AliAnalysisMuMuMinv.cxx:858
 AliAnalysisMuMuMinv.cxx:859
 AliAnalysisMuMuMinv.cxx:860
 AliAnalysisMuMuMinv.cxx:861
 AliAnalysisMuMuMinv.cxx:862
 AliAnalysisMuMuMinv.cxx:863
 AliAnalysisMuMuMinv.cxx:864
 AliAnalysisMuMuMinv.cxx:865
 AliAnalysisMuMuMinv.cxx:866
 AliAnalysisMuMuMinv.cxx:867
 AliAnalysisMuMuMinv.cxx:868
 AliAnalysisMuMuMinv.cxx:869
 AliAnalysisMuMuMinv.cxx:870
 AliAnalysisMuMuMinv.cxx:871
 AliAnalysisMuMuMinv.cxx:872
 AliAnalysisMuMuMinv.cxx:873
 AliAnalysisMuMuMinv.cxx:874
 AliAnalysisMuMuMinv.cxx:875
 AliAnalysisMuMuMinv.cxx:876
 AliAnalysisMuMuMinv.cxx:877
 AliAnalysisMuMuMinv.cxx:878
 AliAnalysisMuMuMinv.cxx:879
 AliAnalysisMuMuMinv.cxx:880
 AliAnalysisMuMuMinv.cxx:881
 AliAnalysisMuMuMinv.cxx:882
 AliAnalysisMuMuMinv.cxx:883
 AliAnalysisMuMuMinv.cxx:884
 AliAnalysisMuMuMinv.cxx:885
 AliAnalysisMuMuMinv.cxx:886
 AliAnalysisMuMuMinv.cxx:887
 AliAnalysisMuMuMinv.cxx:888
 AliAnalysisMuMuMinv.cxx:889
 AliAnalysisMuMuMinv.cxx:890
 AliAnalysisMuMuMinv.cxx:891
 AliAnalysisMuMuMinv.cxx:892
 AliAnalysisMuMuMinv.cxx:893
 AliAnalysisMuMuMinv.cxx:894
 AliAnalysisMuMuMinv.cxx:895
 AliAnalysisMuMuMinv.cxx:896
 AliAnalysisMuMuMinv.cxx:897
 AliAnalysisMuMuMinv.cxx:898
 AliAnalysisMuMuMinv.cxx:899
 AliAnalysisMuMuMinv.cxx:900
 AliAnalysisMuMuMinv.cxx:901
 AliAnalysisMuMuMinv.cxx:902
 AliAnalysisMuMuMinv.cxx:903
 AliAnalysisMuMuMinv.cxx:904
 AliAnalysisMuMuMinv.cxx:905
 AliAnalysisMuMuMinv.cxx:906
 AliAnalysisMuMuMinv.cxx:907
 AliAnalysisMuMuMinv.cxx:908
 AliAnalysisMuMuMinv.cxx:909
 AliAnalysisMuMuMinv.cxx:910
 AliAnalysisMuMuMinv.cxx:911
 AliAnalysisMuMuMinv.cxx:912
 AliAnalysisMuMuMinv.cxx:913
 AliAnalysisMuMuMinv.cxx:914
 AliAnalysisMuMuMinv.cxx:915
 AliAnalysisMuMuMinv.cxx:916
 AliAnalysisMuMuMinv.cxx:917
 AliAnalysisMuMuMinv.cxx:918
 AliAnalysisMuMuMinv.cxx:919
 AliAnalysisMuMuMinv.cxx:920
 AliAnalysisMuMuMinv.cxx:921
 AliAnalysisMuMuMinv.cxx:922
 AliAnalysisMuMuMinv.cxx:923
 AliAnalysisMuMuMinv.cxx:924
 AliAnalysisMuMuMinv.cxx:925
 AliAnalysisMuMuMinv.cxx:926
 AliAnalysisMuMuMinv.cxx:927
 AliAnalysisMuMuMinv.cxx:928
 AliAnalysisMuMuMinv.cxx:929
 AliAnalysisMuMuMinv.cxx:930
 AliAnalysisMuMuMinv.cxx:931
 AliAnalysisMuMuMinv.cxx:932
 AliAnalysisMuMuMinv.cxx:933
 AliAnalysisMuMuMinv.cxx:934
 AliAnalysisMuMuMinv.cxx:935
 AliAnalysisMuMuMinv.cxx:936
 AliAnalysisMuMuMinv.cxx:937
 AliAnalysisMuMuMinv.cxx:938
 AliAnalysisMuMuMinv.cxx:939
 AliAnalysisMuMuMinv.cxx:940
 AliAnalysisMuMuMinv.cxx:941
 AliAnalysisMuMuMinv.cxx:942
 AliAnalysisMuMuMinv.cxx:943
 AliAnalysisMuMuMinv.cxx:944
 AliAnalysisMuMuMinv.cxx:945
 AliAnalysisMuMuMinv.cxx:946
 AliAnalysisMuMuMinv.cxx:947
 AliAnalysisMuMuMinv.cxx:948
 AliAnalysisMuMuMinv.cxx:949
 AliAnalysisMuMuMinv.cxx:950
 AliAnalysisMuMuMinv.cxx:951
 AliAnalysisMuMuMinv.cxx:952
 AliAnalysisMuMuMinv.cxx:953
 AliAnalysisMuMuMinv.cxx:954
 AliAnalysisMuMuMinv.cxx:955
 AliAnalysisMuMuMinv.cxx:956
 AliAnalysisMuMuMinv.cxx:957
 AliAnalysisMuMuMinv.cxx:958
 AliAnalysisMuMuMinv.cxx:959
 AliAnalysisMuMuMinv.cxx:960
 AliAnalysisMuMuMinv.cxx:961
 AliAnalysisMuMuMinv.cxx:962
 AliAnalysisMuMuMinv.cxx:963
 AliAnalysisMuMuMinv.cxx:964
 AliAnalysisMuMuMinv.cxx:965
 AliAnalysisMuMuMinv.cxx:966
 AliAnalysisMuMuMinv.cxx:967
 AliAnalysisMuMuMinv.cxx:968
 AliAnalysisMuMuMinv.cxx:969
 AliAnalysisMuMuMinv.cxx:970
 AliAnalysisMuMuMinv.cxx:971
 AliAnalysisMuMuMinv.cxx:972
 AliAnalysisMuMuMinv.cxx:973
 AliAnalysisMuMuMinv.cxx:974
 AliAnalysisMuMuMinv.cxx:975
 AliAnalysisMuMuMinv.cxx:976
 AliAnalysisMuMuMinv.cxx:977
 AliAnalysisMuMuMinv.cxx:978
 AliAnalysisMuMuMinv.cxx:979
 AliAnalysisMuMuMinv.cxx:980
 AliAnalysisMuMuMinv.cxx:981
 AliAnalysisMuMuMinv.cxx:982
 AliAnalysisMuMuMinv.cxx:983
 AliAnalysisMuMuMinv.cxx:984
 AliAnalysisMuMuMinv.cxx:985
 AliAnalysisMuMuMinv.cxx:986
 AliAnalysisMuMuMinv.cxx:987
 AliAnalysisMuMuMinv.cxx:988
 AliAnalysisMuMuMinv.cxx:989
 AliAnalysisMuMuMinv.cxx:990
 AliAnalysisMuMuMinv.cxx:991
 AliAnalysisMuMuMinv.cxx:992
 AliAnalysisMuMuMinv.cxx:993
 AliAnalysisMuMuMinv.cxx:994
 AliAnalysisMuMuMinv.cxx:995
 AliAnalysisMuMuMinv.cxx:996
 AliAnalysisMuMuMinv.cxx:997
 AliAnalysisMuMuMinv.cxx:998
 AliAnalysisMuMuMinv.cxx:999
 AliAnalysisMuMuMinv.cxx:1000
 AliAnalysisMuMuMinv.cxx:1001
 AliAnalysisMuMuMinv.cxx:1002
 AliAnalysisMuMuMinv.cxx:1003
 AliAnalysisMuMuMinv.cxx:1004
 AliAnalysisMuMuMinv.cxx:1005
 AliAnalysisMuMuMinv.cxx:1006
 AliAnalysisMuMuMinv.cxx:1007
 AliAnalysisMuMuMinv.cxx:1008
 AliAnalysisMuMuMinv.cxx:1009
 AliAnalysisMuMuMinv.cxx:1010
 AliAnalysisMuMuMinv.cxx:1011
 AliAnalysisMuMuMinv.cxx:1012
 AliAnalysisMuMuMinv.cxx:1013
 AliAnalysisMuMuMinv.cxx:1014
 AliAnalysisMuMuMinv.cxx:1015
 AliAnalysisMuMuMinv.cxx:1016
 AliAnalysisMuMuMinv.cxx:1017
 AliAnalysisMuMuMinv.cxx:1018
 AliAnalysisMuMuMinv.cxx:1019
 AliAnalysisMuMuMinv.cxx:1020
 AliAnalysisMuMuMinv.cxx:1021
 AliAnalysisMuMuMinv.cxx:1022
 AliAnalysisMuMuMinv.cxx:1023
 AliAnalysisMuMuMinv.cxx:1024
 AliAnalysisMuMuMinv.cxx:1025
 AliAnalysisMuMuMinv.cxx:1026
 AliAnalysisMuMuMinv.cxx:1027
 AliAnalysisMuMuMinv.cxx:1028
 AliAnalysisMuMuMinv.cxx:1029
 AliAnalysisMuMuMinv.cxx:1030
 AliAnalysisMuMuMinv.cxx:1031
 AliAnalysisMuMuMinv.cxx:1032
 AliAnalysisMuMuMinv.cxx:1033
 AliAnalysisMuMuMinv.cxx:1034
 AliAnalysisMuMuMinv.cxx:1035
 AliAnalysisMuMuMinv.cxx:1036
 AliAnalysisMuMuMinv.cxx:1037
 AliAnalysisMuMuMinv.cxx:1038
 AliAnalysisMuMuMinv.cxx:1039
 AliAnalysisMuMuMinv.cxx:1040
 AliAnalysisMuMuMinv.cxx:1041
 AliAnalysisMuMuMinv.cxx:1042
 AliAnalysisMuMuMinv.cxx:1043
 AliAnalysisMuMuMinv.cxx:1044
 AliAnalysisMuMuMinv.cxx:1045
 AliAnalysisMuMuMinv.cxx:1046
 AliAnalysisMuMuMinv.cxx:1047
 AliAnalysisMuMuMinv.cxx:1048
 AliAnalysisMuMuMinv.cxx:1049
 AliAnalysisMuMuMinv.cxx:1050
 AliAnalysisMuMuMinv.cxx:1051
 AliAnalysisMuMuMinv.cxx:1052
 AliAnalysisMuMuMinv.cxx:1053
 AliAnalysisMuMuMinv.cxx:1054
 AliAnalysisMuMuMinv.cxx:1055
 AliAnalysisMuMuMinv.cxx:1056
 AliAnalysisMuMuMinv.cxx:1057
 AliAnalysisMuMuMinv.cxx:1058
 AliAnalysisMuMuMinv.cxx:1059
 AliAnalysisMuMuMinv.cxx:1060
 AliAnalysisMuMuMinv.cxx:1061
 AliAnalysisMuMuMinv.cxx:1062
 AliAnalysisMuMuMinv.cxx:1063
 AliAnalysisMuMuMinv.cxx:1064
 AliAnalysisMuMuMinv.cxx:1065
 AliAnalysisMuMuMinv.cxx:1066
 AliAnalysisMuMuMinv.cxx:1067
 AliAnalysisMuMuMinv.cxx:1068
 AliAnalysisMuMuMinv.cxx:1069
 AliAnalysisMuMuMinv.cxx:1070
 AliAnalysisMuMuMinv.cxx:1071
 AliAnalysisMuMuMinv.cxx:1072
 AliAnalysisMuMuMinv.cxx:1073
 AliAnalysisMuMuMinv.cxx:1074
 AliAnalysisMuMuMinv.cxx:1075
 AliAnalysisMuMuMinv.cxx:1076
 AliAnalysisMuMuMinv.cxx:1077
 AliAnalysisMuMuMinv.cxx:1078
 AliAnalysisMuMuMinv.cxx:1079
 AliAnalysisMuMuMinv.cxx:1080
 AliAnalysisMuMuMinv.cxx:1081
 AliAnalysisMuMuMinv.cxx:1082
 AliAnalysisMuMuMinv.cxx:1083
 AliAnalysisMuMuMinv.cxx:1084
 AliAnalysisMuMuMinv.cxx:1085
 AliAnalysisMuMuMinv.cxx:1086
 AliAnalysisMuMuMinv.cxx:1087
 AliAnalysisMuMuMinv.cxx:1088
 AliAnalysisMuMuMinv.cxx:1089
 AliAnalysisMuMuMinv.cxx:1090
 AliAnalysisMuMuMinv.cxx:1091
 AliAnalysisMuMuMinv.cxx:1092
 AliAnalysisMuMuMinv.cxx:1093
 AliAnalysisMuMuMinv.cxx:1094
 AliAnalysisMuMuMinv.cxx:1095
 AliAnalysisMuMuMinv.cxx:1096
 AliAnalysisMuMuMinv.cxx:1097
 AliAnalysisMuMuMinv.cxx:1098
 AliAnalysisMuMuMinv.cxx:1099
 AliAnalysisMuMuMinv.cxx:1100
 AliAnalysisMuMuMinv.cxx:1101
 AliAnalysisMuMuMinv.cxx:1102
 AliAnalysisMuMuMinv.cxx:1103
 AliAnalysisMuMuMinv.cxx:1104
 AliAnalysisMuMuMinv.cxx:1105
 AliAnalysisMuMuMinv.cxx:1106
 AliAnalysisMuMuMinv.cxx:1107
 AliAnalysisMuMuMinv.cxx:1108
 AliAnalysisMuMuMinv.cxx:1109
 AliAnalysisMuMuMinv.cxx:1110
 AliAnalysisMuMuMinv.cxx:1111
 AliAnalysisMuMuMinv.cxx:1112
 AliAnalysisMuMuMinv.cxx:1113
 AliAnalysisMuMuMinv.cxx:1114
 AliAnalysisMuMuMinv.cxx:1115
 AliAnalysisMuMuMinv.cxx:1116
 AliAnalysisMuMuMinv.cxx:1117
 AliAnalysisMuMuMinv.cxx:1118
 AliAnalysisMuMuMinv.cxx:1119
 AliAnalysisMuMuMinv.cxx:1120
 AliAnalysisMuMuMinv.cxx:1121
 AliAnalysisMuMuMinv.cxx:1122
 AliAnalysisMuMuMinv.cxx:1123
 AliAnalysisMuMuMinv.cxx:1124
 AliAnalysisMuMuMinv.cxx:1125
 AliAnalysisMuMuMinv.cxx:1126
 AliAnalysisMuMuMinv.cxx:1127
 AliAnalysisMuMuMinv.cxx:1128
 AliAnalysisMuMuMinv.cxx:1129
 AliAnalysisMuMuMinv.cxx:1130
 AliAnalysisMuMuMinv.cxx:1131
 AliAnalysisMuMuMinv.cxx:1132
 AliAnalysisMuMuMinv.cxx:1133
 AliAnalysisMuMuMinv.cxx:1134
 AliAnalysisMuMuMinv.cxx:1135
 AliAnalysisMuMuMinv.cxx:1136
 AliAnalysisMuMuMinv.cxx:1137
 AliAnalysisMuMuMinv.cxx:1138
 AliAnalysisMuMuMinv.cxx:1139
 AliAnalysisMuMuMinv.cxx:1140
 AliAnalysisMuMuMinv.cxx:1141
 AliAnalysisMuMuMinv.cxx:1142
 AliAnalysisMuMuMinv.cxx:1143
 AliAnalysisMuMuMinv.cxx:1144
 AliAnalysisMuMuMinv.cxx:1145
 AliAnalysisMuMuMinv.cxx:1146
 AliAnalysisMuMuMinv.cxx:1147
 AliAnalysisMuMuMinv.cxx:1148
 AliAnalysisMuMuMinv.cxx:1149
 AliAnalysisMuMuMinv.cxx:1150
 AliAnalysisMuMuMinv.cxx:1151
 AliAnalysisMuMuMinv.cxx:1152
 AliAnalysisMuMuMinv.cxx:1153
 AliAnalysisMuMuMinv.cxx:1154
 AliAnalysisMuMuMinv.cxx:1155
 AliAnalysisMuMuMinv.cxx:1156
 AliAnalysisMuMuMinv.cxx:1157
 AliAnalysisMuMuMinv.cxx:1158
 AliAnalysisMuMuMinv.cxx:1159
 AliAnalysisMuMuMinv.cxx:1160
 AliAnalysisMuMuMinv.cxx:1161
 AliAnalysisMuMuMinv.cxx:1162
 AliAnalysisMuMuMinv.cxx:1163
 AliAnalysisMuMuMinv.cxx:1164
 AliAnalysisMuMuMinv.cxx:1165
 AliAnalysisMuMuMinv.cxx:1166
 AliAnalysisMuMuMinv.cxx:1167
 AliAnalysisMuMuMinv.cxx:1168
 AliAnalysisMuMuMinv.cxx:1169
 AliAnalysisMuMuMinv.cxx:1170
 AliAnalysisMuMuMinv.cxx:1171
 AliAnalysisMuMuMinv.cxx:1172
 AliAnalysisMuMuMinv.cxx:1173
 AliAnalysisMuMuMinv.cxx:1174
 AliAnalysisMuMuMinv.cxx:1175
 AliAnalysisMuMuMinv.cxx:1176
 AliAnalysisMuMuMinv.cxx:1177
 AliAnalysisMuMuMinv.cxx:1178
 AliAnalysisMuMuMinv.cxx:1179
 AliAnalysisMuMuMinv.cxx:1180
 AliAnalysisMuMuMinv.cxx:1181
 AliAnalysisMuMuMinv.cxx:1182
 AliAnalysisMuMuMinv.cxx:1183
 AliAnalysisMuMuMinv.cxx:1184
 AliAnalysisMuMuMinv.cxx:1185
 AliAnalysisMuMuMinv.cxx:1186
 AliAnalysisMuMuMinv.cxx:1187
 AliAnalysisMuMuMinv.cxx:1188
 AliAnalysisMuMuMinv.cxx:1189
 AliAnalysisMuMuMinv.cxx:1190
 AliAnalysisMuMuMinv.cxx:1191
 AliAnalysisMuMuMinv.cxx:1192
 AliAnalysisMuMuMinv.cxx:1193
 AliAnalysisMuMuMinv.cxx:1194
 AliAnalysisMuMuMinv.cxx:1195
 AliAnalysisMuMuMinv.cxx:1196
 AliAnalysisMuMuMinv.cxx:1197
 AliAnalysisMuMuMinv.cxx:1198
 AliAnalysisMuMuMinv.cxx:1199
 AliAnalysisMuMuMinv.cxx:1200
 AliAnalysisMuMuMinv.cxx:1201
 AliAnalysisMuMuMinv.cxx:1202
 AliAnalysisMuMuMinv.cxx:1203
 AliAnalysisMuMuMinv.cxx:1204
 AliAnalysisMuMuMinv.cxx:1205
 AliAnalysisMuMuMinv.cxx:1206
 AliAnalysisMuMuMinv.cxx:1207
 AliAnalysisMuMuMinv.cxx:1208
 AliAnalysisMuMuMinv.cxx:1209
 AliAnalysisMuMuMinv.cxx:1210
 AliAnalysisMuMuMinv.cxx:1211
 AliAnalysisMuMuMinv.cxx:1212
 AliAnalysisMuMuMinv.cxx:1213
 AliAnalysisMuMuMinv.cxx:1214
 AliAnalysisMuMuMinv.cxx:1215
 AliAnalysisMuMuMinv.cxx:1216
 AliAnalysisMuMuMinv.cxx:1217
 AliAnalysisMuMuMinv.cxx:1218
 AliAnalysisMuMuMinv.cxx:1219
 AliAnalysisMuMuMinv.cxx:1220
 AliAnalysisMuMuMinv.cxx:1221
 AliAnalysisMuMuMinv.cxx:1222
 AliAnalysisMuMuMinv.cxx:1223
 AliAnalysisMuMuMinv.cxx:1224
 AliAnalysisMuMuMinv.cxx:1225
 AliAnalysisMuMuMinv.cxx:1226
 AliAnalysisMuMuMinv.cxx:1227
 AliAnalysisMuMuMinv.cxx:1228
 AliAnalysisMuMuMinv.cxx:1229
 AliAnalysisMuMuMinv.cxx:1230
 AliAnalysisMuMuMinv.cxx:1231
 AliAnalysisMuMuMinv.cxx:1232
 AliAnalysisMuMuMinv.cxx:1233
 AliAnalysisMuMuMinv.cxx:1234
 AliAnalysisMuMuMinv.cxx:1235
 AliAnalysisMuMuMinv.cxx:1236
 AliAnalysisMuMuMinv.cxx:1237
 AliAnalysisMuMuMinv.cxx:1238
 AliAnalysisMuMuMinv.cxx:1239
 AliAnalysisMuMuMinv.cxx:1240
 AliAnalysisMuMuMinv.cxx:1241
 AliAnalysisMuMuMinv.cxx:1242
 AliAnalysisMuMuMinv.cxx:1243
 AliAnalysisMuMuMinv.cxx:1244
 AliAnalysisMuMuMinv.cxx:1245
 AliAnalysisMuMuMinv.cxx:1246
 AliAnalysisMuMuMinv.cxx:1247
 AliAnalysisMuMuMinv.cxx:1248
 AliAnalysisMuMuMinv.cxx:1249
 AliAnalysisMuMuMinv.cxx:1250
 AliAnalysisMuMuMinv.cxx:1251
 AliAnalysisMuMuMinv.cxx:1252
 AliAnalysisMuMuMinv.cxx:1253
 AliAnalysisMuMuMinv.cxx:1254
 AliAnalysisMuMuMinv.cxx:1255
 AliAnalysisMuMuMinv.cxx:1256
 AliAnalysisMuMuMinv.cxx:1257
 AliAnalysisMuMuMinv.cxx:1258
 AliAnalysisMuMuMinv.cxx:1259
 AliAnalysisMuMuMinv.cxx:1260
 AliAnalysisMuMuMinv.cxx:1261
 AliAnalysisMuMuMinv.cxx:1262
 AliAnalysisMuMuMinv.cxx:1263
 AliAnalysisMuMuMinv.cxx:1264
 AliAnalysisMuMuMinv.cxx:1265