ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

///
/// AliAnalysisMuMuFnorm : class to encapsulate computation(s)
/// of the normalisation factor used to get the equivalent
/// number of MB events from the number of REF triggers
///
/// The computed objects are stored within a AliMergeableCollection
/// with 3 subdirectories, dependinf on their type
///
/// /GRAPHS/
/// /RESULTS/
/// /HISTOS/
///
/// author: Laurent Aphecetche (Subatech)

#include "AliAnalysisMuMuFnorm.h"

#include "AliAnalysisMuMuGraphUtil.h"
#include "AliAnalysisMuMuResult.h"
#include "AliAnalysisTriggerScalers.h"
#include "AliCounterCollection.h"
#include "AliLog.h"
#include "AliMergeableCollection.h"
#include "Riostream.h"
#include "TAxis.h"
#include "TCanvas.h"
#include "TGraphErrors.h"
#include "TH1F.h"
#include "TList.h"
#include "TMap.h"
#include "TMath.h"
#include "TObjArray.h"
#include "TObjString.h"
#include "TPaveText.h"
#include "TStyle.h"
#include <cassert>
#include <numeric>

ClassImp(AliAnalysisMuMuFnorm)

//_____________________________________________________________________________
AliAnalysisMuMuFnorm::AliAnalysisMuMuFnorm(AliCounterCollection& cc,
                                           AliAnalysisMuMuFnorm::ETriggerType refTriggerType,
                                           const char* ocdbpath,
                                           Bool_t compactGraphs) :
TObject(),
fCounterCollection(cc),
fMergeableCollection(0x0),
fIsOwner(kTRUE),
fOCDBPath(ocdbpath),
fResult(0x0),
fIsCompactGraphs(compactGraphs),
fReferenceTriggerType(refTriggerType)
{
  // ctor
  
  
}

//_____________________________________________________________________________
AliAnalysisMuMuFnorm::~AliAnalysisMuMuFnorm()
{
  // dtor
  if ( fIsOwner )
  {
    delete fMergeableCollection;
  }
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeFnorm()
{
  /// Compute the REF to CINT ratio(s)
  ///
  /// Using offline method
  ///   - in one go CINT/REF
  ///   - in two steps CINT/CMSL and CMSL/REF
  ///
  /// Using scaler method
  ///   - bare scaler values
  ///   - scaler values corrected for pile-up
  ///   - scaler values corrected for pile-up and physics selection

  const ETriggerType triggerTypes[] = { kMB, kMUL, kMSL, kMSH };
  const Bool_t trueFalse[] = { kTRUE, kFALSE };
  
  for ( Int_t i = 0; i < 4; ++i )
  {
    for ( Int_t pileup = 0; pileup < 2; ++pileup )
    {
      for ( Int_t ps = 0; ps < 2; ++ps )
      {
        ComputeNofEvents(triggerTypes[i],trueFalse[pileup],ps);
      }
    }
  }

  ComputeFnormOffline(1,kFALSE,0);
  ComputeFnormOffline(1,kFALSE,1);
  ComputeFnormOffline(1,kTRUE,1);
  
  ComputeFnormOffline(2,kFALSE,0);
  ComputeFnormOffline(2,kFALSE,1);
  ComputeFnormOffline(2,kTRUE,1);

//  ComputeFnormOffline(2,kFALSE,2);
//  ComputeFnormOffline(2,kTRUE,2);

  ComputeFnormScalers(kFALSE,0);
  ComputeFnormScalers(kTRUE,0);
  ComputeFnormScalers(kTRUE,1);
//  ComputeFnormScalers(kTRUE,2);

  WeightedMeanGraphs("Offline");
  WeightedMeanGraphs("Scalers");
  WeightedMeanGraphs("FnormOffline2PUPS,FnormOffline1PUPS","FnormOffline12PUPS");
  
  WeightedMeanGraphs("FnormOffline2PUPS,FnormScalersPUPS","FnormBest2");
  
  ComputeGraphRelDif("FnormOffline2PUPS","FnormScalersPUPS");

  ComputeGraphRelDif("FnormOffline2PUPS","FnormOffline2");
  ComputeGraphRelDif("FnormOffline2PUPS","FnormOffline2PS");
  
  ComputeGraphRelDif("CorrectionPSMB","CorrectionPSREF");

//  for ( Int_t i = 0; i < 4; ++i )
///  {
    TString triggerEvents;
    
//  triggerEvents.Form("NofEvent%sPUPS",GetTriggerTypeName(triggerTypes[i]).Data());
  triggerEvents.Form("NofEvent%sPUPS",GetTriggerTypeName(fReferenceTriggerType).Data());
  
  MultiplyGraphs(triggerEvents.Data(),"FnormBest2","NMBeqBest2");
  
    MultiplyGraphs(triggerEvents.Data(),"FnormOffline2PUPS","NMBeqOffline2PUPS");
  MultiplyGraphs(triggerEvents.Data(),"FnormScalersPUPS","NMBeqScalersPUPS");
//  }

//  MultiplyGraphs(Form("NofEvent%sPUTS",GetTriggerTypeName(fReferenceTriggerType).Data()),"FnormOffline2PUTS","NMBeqOffline2PUTS");
//  MultiplyGraphs(Form("NofEvent%sPUTS",GetTriggerTypeName(fReferenceTriggerType).Data()),"FnormOffline2TS","NMBeqOffline2TS");

  ComputeResultsFromGraphs();
  
  AliAnalysisMuMuResult* result = GetResult("Fnorm");
  if (result)
  {
    result->Exclude("*");
    result->Include("FnormBest2");
  }
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeCorrectionFactors(Int_t eventSelectionCorrected)
{
  /// Compute individual graphs for the correction factors (PS_REF, PS_CINT,
  /// F_pile-up,PS_CINT/PS_REF) used in the computation of (some) Fnorm factors
  ///

  TString graphName(Form("CorrectionGlobal%s",GetEventSelectionName(eventSelectionCorrected).Data()));;

  if ( GetGraph(graphName) )
  {
    // insure we compute it only once
    return;
  }
  
  AliDebug(2,"");
  
  std::vector<double> vx;
  std::vector<double> vxerr;
  std::vector<double> vy;
  std::vector<double> vyerr;

  std::vector<double> vyGlobal;
  std::vector<double> vyGlobalErr;

  const ETriggerType triggerTypes[] = { kMB, kMUL, kMSL, kMSH };
  
  for ( Int_t i = 0; i < 4; ++i )
  {
    ComputeEventSelectionGraph(triggerTypes[i],eventSelectionCorrected);
    ComputePileUpGraph(triggerTypes[i],eventSelectionCorrected);
  }
  
  TGraphErrors* gPSCINT = GetGraph(Form("Correction%s%s",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(AliAnalysisMuMuFnorm::kMB).Data()));
                                   
  TGraphErrors* gPSREF = GetGraph(Form("Correction%s%s", GetEventSelectionName(eventSelectionCorrected).Data(), GetTriggerTypeName(fReferenceTriggerType).Data()));
                                   
  TGraphErrors* gPU = GetGraph(Form("CorrectionPU%s%s",GetEventSelectionName(eventSelectionCorrected).Data(), GetTriggerTypeName(AliAnalysisMuMuFnorm::kMB).Data()));
  
  if ( !gPSCINT || !gPSREF || !gPU )
  {
    AliError("Did not get the relevant graphs. Cannot work");
    return;
  }
  
  for ( Int_t i = 0; i < gPSCINT->GetN(); ++i )
  {
    Double_t x,y,yerr,yGlobal,yGlobalErr;
    
    gPSCINT->GetPoint(i,x,y);
    
    if ( fIsCompactGraphs )
    {
      x = TString(gPSCINT->GetXaxis()->GetBinLabel(i)).Atoi();
    }
    
    yGlobal = gPSCINT->GetY()[i] * gPU->GetY()[i] / gPSREF->GetY()[i];
    
    yGlobalErr = yGlobal*AliAnalysisMuMuResult::ErrorABC(gPSCINT->GetY()[i],gPSCINT->GetEY()[i],
                                                         gPSREF->GetY()[i],gPSREF->GetEY()[i],
                                                         gPU->GetY()[i],gPU->GetEY()[i]);
    
    y = gPSCINT->GetY()[i] / gPSREF->GetY()[i];
    yerr = y * AliAnalysisMuMuResult::ErrorAB(gPSCINT->GetY()[i],gPSCINT->GetEY()[i],
                                              gPSREF->GetY()[i],gPSREF->GetEY()[i]);

    vx.push_back(x);
    vxerr.push_back(gPSCINT->GetEX()[i]);

    vyGlobal.push_back(yGlobal);
    vyGlobalErr.push_back(yGlobalErr);
    
    vy.push_back(y);
    vyerr.push_back(yerr);
  }
  
  TString name(Form("Correction%sRatio",GetEventSelectionName(eventSelectionCorrected).Data()));
  TString title(Form("%s_MB/%s_%s",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(fReferenceTriggerType).Data(),
                     GetEventSelectionName(eventSelectionCorrected).Data()));
  
  CreateAndAddGraph(name,title,vx,vxerr,vy,vyerr);
  
  title = TString::Format("%s_MB x Fpile-up / %s_%s ",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(fReferenceTriggerType).Data(),GetEventSelectionName(eventSelectionCorrected).Data());
  
  CreateAndAddGraph(graphName,title,vx,vxerr,vyGlobal,vyGlobalErr);
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeFnormOffline(Int_t nstep, Bool_t pileUpCorrected, Int_t eventSelectionCorrected)
{
  /// Compute MB to REF ratio using offline method, either in 1 or 2 steps
  
  TString name("FnormOffline");
  TString title("Computed using offline information");
  TString refInput = Form("0%s",GetTriggerTypeName(fReferenceTriggerType).Data());
  
  if (nstep==1)
  {
    name += "1";
    title += Form(" in one step (CINT/CINT&%s)",refInput.Data());
  }
  else
  {
    name += "2";
    title += Form(" in two steps (CMSL/CMSL&%s x CINT/CINT&0MSL)",refInput.Data());
  }
  
  if (pileUpCorrected)
  {
    name += "PU";
    title += " with pile-up correction";
  }
  if (eventSelectionCorrected==1)
  {
    name += "PS";
    title += " with (ps) purity corrections";
  }
  else if ( eventSelectionCorrected==2 )
  {
    name += "TS";
    title += " with (ts) purity corrections";
  }

  if ( GetGraph(name) )
  {
    // insure we're computing it only once
    return;
  }
  
  AliDebug(2,name);
  
  std::vector<double> vx;
  std::vector<double> vxerr;
  std::vector<double> vy;
  std::vector<double> vyerr;

  const std::set<int>& runs = RunNumbers();
  
  for ( std::set<int>::const_iterator it = runs.begin(); it != runs.end(); ++it )
  {
    Int_t runNumber = *it;
    
    TString mbTrigger = GetTriggerClassName(kMB,runNumber);
    TString muonTrigger = GetTriggerClassName(kMSL,runNumber);
//    TString refTrigger = GetTriggerClassName(fReferenceTriggerType,runNumber);
    
    if (!mbTrigger.Length())
    {
      AliError(Form("Cannot get MB trigger for run %d",runNumber));
      continue;
    }
    
    Double_t nofMB = GetSum(mbTrigger.Data(),runNumber,eventSelectionCorrected);
    Double_t nofMSL(0.0);
    Double_t nofMSLw0REF(0.0);
    
    if ( nstep==2 )
    {
      nofMSL = GetSum(muonTrigger.Data(),runNumber,eventSelectionCorrected);
      TString counterName = muonTrigger;
      if ( fReferenceTriggerType != kMSL ) counterName += Form("&%s",refInput.Data());
      nofMSLw0REF = GetSum(counterName,runNumber,eventSelectionCorrected);
    }
    
    Double_t nofMBw0REF = GetSum(Form("%s&%s",mbTrigger.Data(),refInput.Data()),runNumber,eventSelectionCorrected);
    Double_t nofMBw0MSL = GetSum(Form("%s&0MSL",mbTrigger.Data()),runNumber,eventSelectionCorrected);
    
    if ( !nofMBw0REF ) continue;
    if ( !nofMBw0MSL && nstep == 2 ) continue;
    
    Double_t purityMB(1.0);
    Double_t purityMBerror(0.0);

    if ( eventSelectionCorrected > 0 )
    {
      ComputeEventSelectionGraph(kMB,eventSelectionCorrected);
      
      TGraphErrors* gps = GetGraph(Form("Correction%s%s",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(kMB).Data()));
      
      GetValueAndErrorFromGraph(gps,runNumber,purityMB,purityMBerror);
    }
    
    Double_t pileUpFactor(1.0);
    Double_t pileUpFactorError(0.0);
    
    if (pileUpCorrected)
    {      
      ComputePileUpGraph(kMB,eventSelectionCorrected);
      
      TGraphErrors* gpu = GetGraph(Form("CorrectionPU%s%s",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(kMB).Data()));
      
      GetValueAndErrorFromGraph(gpu,runNumber,pileUpFactor,pileUpFactorError);

      nofMB *= pileUpFactor;
    }
        
    double value = nofMBw0REF > 0.0 ? nofMB/nofMBw0REF : 0.0;
    double error = value*AliAnalysisMuMuResult::ErrorABC(nofMB,TMath::Sqrt(nofMB),
                                                              nofMBw0REF,TMath::Sqrt(nofMBw0REF),
                                                              pileUpFactor,pileUpFactorError);
    
    if ( nstep == 2 )
    {
      value = (nofMB/nofMSLw0REF)*(nofMSL/nofMBw0MSL);
      
      if ( runNumber == 196310 )
      {
        AliDebug(1,Form("RUN %09d %d-%d-%d value=%e nofMB %e nofMSLw%s %e nofMSL %e nofMBw0MSL %e",
                        runNumber,nstep,pileUpCorrected,eventSelectionCorrected,
                        value,nofMB,refInput.Data(),nofMSLw0REF,nofMSL,nofMBw0MSL));
      }
      
      error = value*AliAnalysisMuMuResult::ErrorABCD(nofMB,TMath::Sqrt(nofMB),
                                                          nofMSLw0REF,TMath::Sqrt(nofMSLw0REF),
                                                          nofMSL,TMath::Sqrt(nofMSL),
                                                          nofMBw0MSL,TMath::Sqrt(nofMBw0MSL));
    }
    
    if ( value > 0.0 )
    {
      vx.push_back(1.0*runNumber);
      vxerr.push_back(0.5);
      vy.push_back(value);
      vyerr.push_back(error);
    }
  }
  
    
  CreateAndAddGraph(name,title,vx,vxerr,vy,vyerr);
}


//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeFnormScalers(Bool_t pileUpCorrected,
                                               Int_t eventSelectionCorrected)
{
  /// Compute the MB to REF ratio using the scalers method (from OCDB)
  ///
  /// i.e. Fnorm = L0B(MB) x PS(MB) x Fpile-up / ( L0B(REF) x PS(REF) )
  ///
  /// where MB is the minbias trigger
  /// REF is the fReferenceTrigger
  /// and PS is the fraction of events selected by the physics selection
  ///
  /// The correction factor (the two PS and one Fpile-up) are
  /// taken from graphs computed in other methods
  ///
  
  TString name("FnormScalers");
  TString title("Computed using OCDB scalers");
  
  if (pileUpCorrected)
  {
    name += "PU";
    title += " with pile-up correction";
  }
  if (eventSelectionCorrected==1)
  {
    name += "PS";
    title += " with (ps) purity corrections";
  }
  if (eventSelectionCorrected==2)
  {
    name += "TS";
    title += " with (ts) purity corrections";
  }
  
  if ( GetGraph(name) )
  {
    // insure we're computing it only once
    return;
  }
  
  AliDebug(2,name);
  
  // insure we have all the graphs we need to work
  ComputeTriggerL0B(kMB);
  ComputeTriggerL0B(fReferenceTriggerType);
  
  const std::set<int>& runs = RunNumbers();
  
  std::vector<double> vx;
  std::vector<double> vxerr;
  std::vector<double> vy;
  std::vector<double> vyerr;
  
  Double_t purityREF(1.0);
  Double_t purityMB(1.0);
  Double_t purityREFerror(00);
  Double_t purityMBerror(0.0);
  
  // compute the per run values
  for ( std::set<int>::const_iterator it = runs.begin(); it != runs.end(); ++it )
  {
    Int_t runNumber = *it;
    
    TString mbTrigger = GetTriggerClassName(kMB,runNumber);
//    TString refTrigger = GetTriggerClassName(fReferenceTriggerType,runNumber);
    
    purityMB=purityREF=1.0;
    purityMBerror=purityREFerror=0.0;
    
    if (eventSelectionCorrected>0)
    {
      ComputeEventSelectionGraph(kMB,eventSelectionCorrected);
      ComputeEventSelectionGraph(fReferenceTriggerType,eventSelectionCorrected);
      
      TGraphErrors* gpsMB  = GetGraph(Form("Correction%s%s",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(kMB).Data()));
      TGraphErrors* gpsREF = GetGraph(Form("Correction%s%s",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(fReferenceTriggerType).Data()));
      
      GetValueAndErrorFromGraph(gpsMB,runNumber,purityMB,purityMBerror);
      GetValueAndErrorFromGraph(gpsREF,runNumber,purityREF,purityREFerror);
    }
    
    if (purityMB<=0.0)
    {
      AliError(Form("Got purity=%e for MB for run %9d",purityMB,runNumber));
      continue;
    }
    
    TGraphErrors* gl0bMB = GetGraph(Form("L0B%s",GetTriggerTypeName(kMB).Data()));
    TGraphErrors* gl0bREF = GetGraph(Form("L0B%s",GetTriggerTypeName(fReferenceTriggerType).Data()));
    
    Double_t L0bMB,L0bMBError;
    Double_t L0bREF,L0bREFError;
    
    GetValueAndErrorFromGraph(gl0bMB,runNumber,L0bMB,L0bMBError);
    GetValueAndErrorFromGraph(gl0bREF,runNumber,L0bREF,L0bREFError);
    
    Double_t pileUpFactor(1.0);
    Double_t pileUpFactorError(0.0);
    
    if (pileUpCorrected)
    {
      TGraphErrors* gpu = GetGraph((Form("CorrectionPU%s%s",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(kMB).Data())));
      
      GetValueAndErrorFromGraph(gpu,runNumber,pileUpFactor,pileUpFactorError);
    }
    
    Double_t value;
    Double_t error;
    
    ScalerFnorm(value,error,
                L0bREF,purityREF,purityREFerror,
                L0bMB,purityMB,purityMBerror,
                pileUpFactor,pileUpFactorError);
    
    if ( value > 0.0 )
    {
      vx.push_back(1.0*runNumber);
      vxerr.push_back(0.5);
      vy.push_back(value);
      vyerr.push_back(error);
    }
  }
  
  CreateAndAddGraph(name,title,vx,vxerr,vy,vyerr);
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeGraphRelDif(const char* a, const char* b) const
{
  // compute dispersion of b versus a
  //
  // computed differences graphs are put into the GRAPHS/ directory
  // computed differences results are put into the HISTOS/ directory
  
  TString name(Form("RelDif%svs%s",b,a));
  
  if ( GetGraph(name) )
  {
    // insure we compute it only once
    return;
  }
  
  AliDebug(2,name);
  
  TGraphErrors* ga = static_cast<TGraphErrors*>(MC()->GetObject(Form("/GRAPHS/%s",a)));
  TGraphErrors* gb = static_cast<TGraphErrors*>(MC()->GetObject(Form("/GRAPHS/%s",b)));
  
  if (!ga)
  {
    AliError(Form("Cannot get graph for %s",a));
    return;
  }
  
  if (!gb)
  {
    AliError(Form("Cannot get graph for %s",b));
    return;
  }
  
  if ( ga->GetN() != gb->GetN() )
  {
    AliError(Form("Cannot work with different number of points in the graphs : %d vs %d",
                  ga->GetN(),gb->GetN()));
    return;
  }
  
  TString title(Form("%s-%s (RelDif,%%)",b,a));
  
  std::vector<double> vx;
  std::vector<double> vxerr;
  std::vector<double> vy;
  std::vector<double> vyerr;
  
  for ( Int_t i = 0; i < ga->GetN(); ++i )
  {
    Double_t xa,xb,ya,yb;
    
    ga->GetPoint(i,xa,ya);
    gb->GetPoint(i,xb,yb);
    
    if ( xa != xb )
    {
      AliError(Form("Incompatible graphs : got xa=%e and xb=%e",xa,xb));
      return;
    }
  
    Double_t newvalue = 0.0;
    
    if ( TMath::Abs(xa) > 1E-12 )
    {
      newvalue = 100.0*( yb - ya ) / ya;
    }

    Double_t yerr = newvalue*AliAnalysisMuMuResult::ErrorAB(ya,ga->GetEY()[i],
                                                            yb,gb->GetEY()[i]);

    if ( fIsCompactGraphs )
    {
      xa = TString(ga->GetXaxis()->GetBinLabel(i+1)).Atoi()*1.0;
    }

    vx.push_back(xa);
    vxerr.push_back(0.5);
    vy.push_back(newvalue);
    vyerr.push_back(yerr);
    
  }
  
  CreateAndAddGraph(name,title,vx,vxerr,vy,vyerr);

  // FIXME : fill here an histogram from the graph to get the
  // weight of 1/e2 ?
  //  h->Fill(newvalue,1.0/(yerr*yerr));
  //  MC()->Adopt("/HISTOS/",h);
  
  //  AliAnalysisMuMuResult* r = GetRunIntegratedResult(*g,"FnormDispersion");
  //  if (r)
  //  {
  //    if (!dispersion)
  //    {
  //      dispersion = new AliAnalysisMuMuResult("FnormDispersion");
  //    }
  //    dispersion->AdoptSubResult(r);
  //    if ( !TString(g->GetName()).BeginsWith("Fnorm") )
  //    {
  //      dispersion->Exclude(r->Alias());
  //    }
  //  }
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputePileUpGraph(ETriggerType tt, Int_t eventSelectionCorrected)
{
  /// Compute the per-run graph of pile-up factor
  
  TString graphName(Form("CorrectionPU%s%s",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(tt).Data()));
  
  if ( GetGraph(graphName) )
  {
    // insure we're computing it only once
    return;
  }
  
  AliDebug(2,graphName);
  
  std::vector<double> vx;
  std::vector<double> vxerr;
  std::vector<double> vy;
  std::vector<double> vyerr;
  
  const std::set<int>& runs = RunNumbers();
  
  AliAnalysisTriggerScalers ts(runs,OCDBPath().Data());
  
  for ( std::set<int>::const_iterator it = runs.begin(); it != runs.end(); ++it )
  {
    Int_t runNumber = *it;
    
    Double_t pileUpFactor(1.0);
    Double_t pileUpFactorError(0.0);
    Double_t purity(1.0);
    Double_t purityError(0.0);
    
    TString triggerClassName = GetTriggerClassName(tt,runNumber);
    
    if ( triggerClassName.Length()==0 )
    {
      AliError(Form("Unknown trigger type %d",tt));
      return;
    }
    
    if (eventSelectionCorrected)
    {
      GetPurity(triggerClassName.Data(),runNumber,purity,purityError,eventSelectionCorrected);
    }
    ts.GetPileUpFactor(runNumber,triggerClassName.Data(),purity,pileUpFactor,pileUpFactorError);
   
    vx.push_back(runNumber);
    vxerr.push_back(0.5);
    vy.push_back(pileUpFactor);
    vyerr.push_back(pileUpFactorError);
  }
  
  TString title(Form("Pile-up correction factor for trigger %s",GetTriggerTypeName(tt).Data()));
  
  if (eventSelectionCorrected)
  {
    title += "( L0BRate corrected by event selection";
    title += GetEventSelectionName(eventSelectionCorrected);
    title += " accept fraction)";
  }
  
  CreateAndAddGraph(graphName,title,vx,vxerr,vy,vyerr);
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeEventSelectionGraph(ETriggerType tt, Int_t eventSelectionCorrected)
{
  /// Compute the per-run graph of physics selection accept fraction
  /// for the given trigger
  
  TString graphName(Form("Correction%s%s",GetEventSelectionName(eventSelectionCorrected).Data(), GetTriggerTypeName(tt).Data()));
  
  if (GetGraph(graphName))
  {
    // insure we're computing it only once
    return;
  }

  AliDebug(2,graphName);
  
  std::vector<double> vx;
  std::vector<double> vxerr;
  std::vector<double> vy;
  std::vector<double> vyerr;
  
  const std::set<int>& runs = RunNumbers();
  
  AliAnalysisTriggerScalers ts(runs,OCDBPath().Data());
  
  for ( std::set<int>::const_iterator it = runs.begin(); it != runs.end(); ++it )
  {
    Int_t runNumber = *it;
    
    Double_t purity, purityError;
    
    TString triggerClassName = GetTriggerClassName(tt,runNumber);
    
    if ( triggerClassName.Length()==0 )
    {
      AliError(Form("Unknown trigger type %d",tt));
      return;
    }

    GetPurity(triggerClassName.Data(),runNumber,purity,purityError,eventSelectionCorrected);
    
    vx.push_back(runNumber);
    vxerr.push_back(0.5);
    vy.push_back(purity);
    vyerr.push_back(purityError);
  }
  
  TString title(Form("Fraction of events accepted by the event selection %s for trigger %s",GetTriggerTypeName(tt).Data(),
                     GetEventSelectionName(eventSelectionCorrected).Data()));
  
  CreateAndAddGraph(graphName,title,vx,vxerr,vy,vyerr);
}


//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeResultsFromGraphs()
{
  // Compute one single value for each graph, by weighting by the fraction
  // of events in each run
  // do this for certain groups of graphs
  
  TObjArray groups;
  groups.SetOwner(kTRUE);
  
  groups.Add(new TObjString("Fnorm"));
  groups.Add(new TObjString("NMBeq"));
  groups.Add(new TObjString("Correction"));
  groups.Add(new TObjString("RelDif"));
  
  TList* objectList = MC()->CreateListOfObjectNames("/GRAPHS/");
  
  TIter nextGroup(&groups);
  TObjString* grp;
  
  TIter next(objectList);
  TObjString* str(0x0);

  while ( ( grp = static_cast<TObjString*>(nextGroup()) ) )
  {
    TString oname(Form("/RESULTS/%s",grp->String().Data()));
    
    if ( MC()->GetObject(oname) )
    {
      // delete if we have it already so we can replace it
      MC()->Remove(oname);
    }
    
    AliAnalysisMuMuResult* result = new AliAnalysisMuMuResult(grp->String());
    
    MC()->Adopt("/RESULTS/",result);
    
    next.Reset();
    
    while ( ( str = static_cast<TObjString*>(next()) ) )
    {
      if ( ! ( str->String().BeginsWith(grp->String() ) ) ) continue;

      TGraphErrors* g = GetGraph(str->String());

      if (!g) continue;
    
      AliAnalysisMuMuResult* sub = GetRunIntegratedResult(*g);

      if ( !sub )
      {
        AliError(Form("Could not get result for graph %s",g->GetName()));
      }
      if ( sub )
      {
        result->AdoptSubResult(sub);
      }
    }
  }
  
  delete objectList;
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeNofEvents(ETriggerType triggerType,
                                            Bool_t pileUpCorrected,
                                            Int_t eventSelectionCorrected)
{
  /// Compute trigger fractions
  
  TString graphName(Form("NofEvent%s%s%s",GetTriggerTypeName(triggerType).Data(),
                         pileUpCorrected ? "PU" : "",
                         GetEventSelectionName(eventSelectionCorrected).Data()));
  
  if ( GetGraph(graphName) )
  {
    // compute it only once
    return;
  }
  
  ComputeCorrectionFactors(eventSelectionCorrected);
  
  TString gpsname(Form("Correction%s%s",GetEventSelectionName(eventSelectionCorrected).Data(),GetTriggerTypeName(triggerType).Data()));
  TString gpuname(Form("CorrectionPU%s%s",GetEventSelectionName(eventSelectionCorrected).Data(), GetTriggerTypeName(triggerType).Data()));
  
  TGraphErrors* gPS = GetGraph(gpsname);
  
  if (!gPS)
  {
    AliError(Form("Could not find %s",gpsname.Data()));
    return;
  }
  
  TGraphErrors* gPU = GetGraph(gpuname);

  if (!gPU)
  {
    AliError(Form("Could not find %s",gpuname.Data()));
    return;
  }

  AliDebug(2,graphName);
  
  std::vector<double> vx;
  std::vector<double> vxerr;
  std::vector<double> vy;
  std::vector<double> vyerr;
  
  const std::set<int>& runs = RunNumbers();
  
  Int_t i(0);
  
  for ( std::set<int>::const_iterator it = runs.begin(); it != runs.end(); ++it )
  {
    Int_t runNumber = *it;
    
    TString triggerClassName = GetTriggerClassName(triggerType,runNumber);
    
    if ( triggerClassName.Length() )
    {
      Double_t n = GetSum(triggerClassName,runNumber,0);
      
      vx.push_back(runNumber);
      vxerr.push_back(0.5);

      assert(runNumber==TMath::Nint(gPU->GetX()[i]));
      
      Double_t y(n);
      Double_t y1(1.0);
      Double_t y2(1.0);
      Double_t e1(0);
      Double_t e2(0);
      
      if ( pileUpCorrected )
      {
        y1 = gPU->GetY()[i];
        e1 = gPU->GetEY()[i];
      }

      if ( eventSelectionCorrected > 0 )
      {
        y2 = gPS->GetY()[i];
        e2 = gPS->GetEY()[i];
      }
      
      y *= y1*y2;

      AliDebug(2,Form("RUN %09d n %e y1 %e y2 %e y% e",runNumber,n,y1,y2,y));
      
      Double_t yerr = y*AliAnalysisMuMuResult::ErrorABC( n, TMath::Sqrt(n),
                                                        y1, e1,
                                                        y2, e2);

      vy.push_back(y);
      vyerr.push_back(yerr);
      
      ++i;
    }
  }
    
  TString title(Form("Number of event of trigger %s",GetTriggerTypeName(triggerType).Data()));
  
  CreateAndAddGraph(graphName,title,vx,vxerr,vy,vyerr);
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeTriggerFractions(ETriggerType triggerType,
                                                   Bool_t physicsSelectionCorrected)
{
  /// Compute trigger fractions
  
  TString graphName(Form("Fractions%s%s",GetTriggerTypeName(triggerType).Data(),physicsSelectionCorrected ? "PS" : ""));

  if ( GetGraph(graphName) )
  {
    // compute it only once
    return;
  }

  AliDebug(2,graphName);
  
  std::vector<double> vx;
  std::vector<double> vxerr;
  std::vector<double> vy;
  std::vector<double> vyerr;
  
  const std::set<int>& runs = RunNumbers();

  Double_t n(0.0);
  
  for ( std::set<int>::const_iterator it = runs.begin(); it != runs.end(); ++it )
  {
    Int_t runNumber = *it;
    
    TString triggerClassName = GetTriggerClassName(triggerType,runNumber);
    
    if ( triggerClassName.Length() )
    {
      n += GetSum(triggerClassName,runNumber,physicsSelectionCorrected);
    }
  }

  if ( n <= 0.0 )
  {
    AliWarning(Form("Got zero trigger for %s",GetTriggerTypeName(triggerType).Data()));
    return;
  }
  
  for ( std::set<int>::const_iterator it = runs.begin(); it != runs.end(); ++it )
  {
    Int_t runNumber = *it;
    
    TString triggerClassName = GetTriggerClassName(triggerType,runNumber);
    
    vx.push_back(runNumber);
    vxerr.push_back(0.5);
    Double_t y = GetSum(triggerClassName,runNumber,physicsSelectionCorrected);
    vy.push_back(y/n);
    vyerr.push_back( (y/n) * AliAnalysisMuMuResult::ErrorAB( y,TMath::Sqrt(y),
                                                        n, TMath::Sqrt(n)));
  }
  

  TString title(Form("Fraction of event of trigger %s",GetTriggerTypeName(triggerType).Data()));
  
  CreateAndAddGraph(graphName,title,vx,vxerr,vy,vyerr);
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ComputeTriggerL0B(ETriggerType triggerType)
{
  /// Compute trigger L0B
  
  std::vector<double> vx;
  std::vector<double> vxerr;
  std::vector<double> vy;
  std::vector<double> vyerr;
  
  TString graphName(Form("L0B%s",GetTriggerTypeName(triggerType).Data()));

  if ( GetGraph(graphName) )
  {
    // insure we're computing it only once
    return;
  }
  
  AliDebug(2,graphName);
  
  const std::set<int>& runs = RunNumbers();
  
  AliAnalysisTriggerScalers ts(runs,OCDBPath().Data());

  for ( std::set<int>::const_iterator it = runs.begin(); it != runs.end(); ++it )
  {
    Int_t runNumber = *it;
    
    TString triggerClassName = GetTriggerClassName(triggerType,runNumber);
    
    AliAnalysisTriggerScalerItem* item = ts.GetTriggerScaler(runNumber,"L0B",triggerClassName);
    if (!item) continue;
    
    vx.push_back(runNumber);
    vxerr.push_back(0.5);

    Double_t y = item->Value();

    vy.push_back(y);
    
    vyerr.push_back( TMath::Sqrt(y) );
  }
  
  TString title(Form("L0B of trigger %s",GetTriggerTypeName(triggerType).Data()));
  
  CreateAndAddGraph(graphName,title,vx,vxerr,vy,vyerr);
}

////_____________________________________________________________________________
//void AliAnalysisMuMuFnorm::ComputeTSGraph(ETriggerType tt)
//{
//  /// Compute the per-run graph of physics selection accept fraction x track
//  /// accept fraction for the given trigger
//  
//  TString graphName(Form("CorrectionTS%s",GetTriggerTypeName(tt).Data()));
//  
//  if (GetGraph(graphName))
//  {
//    // insure we're computing it only once
//    return;
//  }
//  
//  AliDebug(1,graphName);
//  
//  std::vector<double> vx;
//  std::vector<double> vxerr;
//  std::vector<double> vy;
//  std::vector<double> vyerr;
//  
//  const std::set<int>& runs = RunNumbers();
//  
//  AliAnalysisTriggerScalers ts(runs,OCDBPath().Data());
//  
//  for ( std::set<int>::const_iterator it = runs.begin(); it != runs.end(); ++it )
//  {
//    Int_t runNumber = *it;
//    
//    Double_t purity, purityError;
//    
//    TString triggerClassName = GetTriggerClassName(tt,runNumber);
//    
//    if ( triggerClassName.Length()==0 )
//    {
//      AliError(Form("Unknown trigger type %d",tt));
//      return;
//    }
//    
//    GetPurity(triggerClassName.Data(),runNumber,purity,purityError,"OFFLINE1");
//    
//    vx.push_back(runNumber);
//    vxerr.push_back(0.5);
//    vy.push_back(purity);
//    vyerr.push_back(purityError);
//  }
//  
//  TString title(Form("Fraction of events accepted by the physics selection x track selection for trigger %s",GetTriggerTypeName(tt).Data()));
//  
//  CreateAndAddGraph(graphName,title,vx,vxerr,vy,vyerr);
//}
//

//_____________________________________________________________________________
TGraphErrors* AliAnalysisMuMuFnorm::CreateAndAddGraph(const TString& name,
                                                      const TString& title,
                                                      const std::vector<double>& vx,
                                                      const std::vector<double>& vxerr,
                                                      const std::vector<double>& vy,
                                                      const std::vector<double>& vyerr) const
{
  /// Creates a graph and adds it to our mergeable collection
  
  TGraphErrors* g = new TGraphErrors(vx.size(),&vx[0],&vy[0],&vxerr[0],&vyerr[0]);
  g->SetName(name.Data());
  g->SetTitle(title.Data());
  
  if  (fIsCompactGraphs)
  {
    AliAnalysisMuMuGraphUtil::Compact(*g);
  }

  g->GetXaxis()->SetNoExponent();
//  g->GetXaxis()->SetTitle("Run number");

  TPaveText* text = new TPaveText(0.70,0.70,0.89,0.89,"NDC");
  text->SetBorderSize(0);
  text->SetFillColor(0);
  text->AddText(Form("Mean %e",g->GetMean(2)));
  text->AddText(Form("RMS  %e",g->GetRMS(2)));
  g->GetListOfFunctions()->Add(text);
  
  MC()->Adopt("/GRAPHS/",g);
  return g;
}

//_____________________________________________________________________________
AliMergeableCollection* AliAnalysisMuMuFnorm::DetachMC()
{
  // let go the ownership of our mergeable collection
  fIsOwner = kFALSE;
  return fMergeableCollection;
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::DrawWith2Scales(const char* graphName1, const char* graphName2)
{
  TGraphErrors* g1 = static_cast<TGraphErrors*>(GetGraph(graphName1)->Clone());
  TGraphErrors* g2 = static_cast<TGraphErrors*>(GetGraph(graphName2)->Clone());
  
  if ( g1 && g2 )
  {
    gStyle->SetOptTitle(0);
    
    AliAnalysisMuMuGraphUtil gu;
    
    TCanvas* c = gu.DrawWith2Scales(*g1,*g2);
    c->Draw();
    
    for ( Int_t i = 0; i < 2; ++i )
    {
      c->cd(i);
      gPad->SetLeftMargin(0.15);
      gPad->SetRightMargin(0.15);
    }
    
    c->Update();
    
    //    TGraphErrors* g = new TGraphErrors(g1->GetN());
    //
    //    Double_t check(0.0);
    //
    //    for ( Int_t i = 0; i < g->GetN(); ++i )
    //    {
    //      Double_t y = g1->GetY()[i]*g2->GetY()[i];
    //
    //      check += g2->GetY()[i];
    //
    //      g->SetPoint(i,g2->GetX()[i],y);
    //      g->SetPointError(i,g2->GetEX()[i],
    //                       y*AliAnalysisMuMuResult::ErrorAB(g1->GetY()[i],g1->GetEY()[i],
    //                                                        g2->GetY()[i],g2->GetEY()[i]));
    //    }
    //
    //    new TCanvas;
    //
    //    g->Draw("ap");
    //
    //    AliInfo(Form("check: %e g mean %e rms %e",check,g->GetMean(2),g->GetRMS(2)));

    /*
     
    // g1 vs g2 
     
    TGraphErrors* g = new TGraphErrors(g1->GetN());
    
    for ( Int_t i = 0; i < g->GetN(); ++i )
    {
      g->SetPoint(i,g2->GetY()[i],g1->GetY()[i]);
      g->SetPointError(i,g2->GetEY()[i],g1->GetEY()[i]);
    }
    
    new TCanvas;
    
    g->Draw("ap");
    
    AliInfo(Form("g mean %e rms %e",g->GetMean(2),g->GetRMS(2)));
     
     */
    
  }
  
}

//_____________________________________________________________________________
TString AliAnalysisMuMuFnorm::GetEventSelectionName(Int_t eventSelectionCorrected) const
{
  if ( eventSelectionCorrected == 1 )
  {
    return "PS";
  }
  else if ( eventSelectionCorrected == 2 )
  {
    return "TS";
  }
  return "";
}

//_____________________________________________________________________________
TGraphErrors* AliAnalysisMuMuFnorm::GetGraph(const char* name) const
{
  // shortcut method to give access to one graph
  
  TObject* o = MC()->GetObject(Form("/GRAPHS/%s",name));
  
  if (!o) return 0x0;
  
  if ( o->IsA() != TGraphErrors::Class() )
  {
    AliError(Form("Object %s is not of the expected type",o->GetName()));
    return 0x0;
  }
  
  return static_cast<TGraphErrors*>(o);
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::GetPurity(const char* triggerClassName, Int_t runNumber,
                                     Double_t& value, Double_t& error, Int_t eventSelectionCorrected) const
{
  /// Get the physics selection accept fraction for a given trigger
  
  value=error=0.0;

  TString runCondition;
  
  if (runNumber>0)
  {
    runCondition.Form("/run:%d",runNumber);
  }
  
  Double_t nall = fCounterCollection.GetSum(Form("trigger:%s/event:ALL%s",triggerClassName,runCondition.Data()));
  
  TString ename;
  
  if ( eventSelectionCorrected == 1 )
  {
    ename = "PSALL";
  }
  else if ( eventSelectionCorrected == 2 )
  {
    ename = "OFFLINE1";
  }
  else
  {
    value = 1.0;
    return;
    
  }
  Double_t nps = fCounterCollection.GetSum(Form("trigger:%s/event:%s%s",
                                                triggerClassName,ename.Data(),runCondition.Data()));
  
  if ( nall <= 0.0 ) return;
  
  value = nps/nall;
  
  error = AliAnalysisMuMuResult::ErrorAB(nall,TMath::Sqrt(nall),nps,TMath::Sqrt(nps));
}

//_____________________________________________________________________________
AliAnalysisMuMuResult* AliAnalysisMuMuFnorm::GetResult(const char* name) const
{
  // shortcut method to give access to one result
  
  TObject* o = MC()->GetObject(Form("/RESULTS/%s",name));
  
  if (!o) return 0x0;
  
  if ( o->IsA() != AliAnalysisMuMuResult::Class() )
  {
    AliError(Form("Object %s is not of the expected type",o->GetName()));
    return 0x0;
  }
  
  return static_cast<AliAnalysisMuMuResult*>(o);
}

//______________________________________________________________________________
AliAnalysisMuMuResult* AliAnalysisMuMuFnorm::GetRunIntegratedResult(const TGraphErrors& g, const char* basename)
{
  /// get one value +- error for this graph (weighting the run-by-run values
  /// by the fraction of the number of triggers in that run)
  /// also the rms is computed.
  
  Bool_t physicsSelectionCorrected(kFALSE);
  
  if ( TString(g.GetName()).Contains("PS") )
  {
    physicsSelectionCorrected=kTRUE;
  }

  ComputeTriggerFractions(fReferenceTriggerType,physicsSelectionCorrected);

  TString fname(Form("Fractions%s%s",GetTriggerTypeName(fReferenceTriggerType).Data(),physicsSelectionCorrected ? "PS" : ""));
  
  TGraphErrors* gTriggerFractions = GetGraph(fname);
  
  StdoutToAliDebug(2,std::cout << g.GetName() << std::endl; g.Print(););
  
  if (!gTriggerFractions)
  {
    AliError(Form("Did not find graph for %s",fname.Data()));
    return 0x0;
  }
  
  Double_t mean = g.GetY()[0];
  Int_t n = g.GetN();
  
  Double_t errorOnMean = g.GetEY()[0];
  Double_t rms = 0.0;
  
  if ( n > 1 )
  {
    mean = errorOnMean = 0.0;
    Double_t d(0.0);
    Double_t v1(0.0);
    Double_t v2(0.0);
    
    for ( Int_t i = 0; i < n; ++i )
    {
      Double_t y = g.GetY()[i];
      
      Double_t weight = gTriggerFractions->GetY()[i]; // sum of weight should be 1.0
      
      AliDebug(2,Form("%s i %3d y %e weight %e",g.GetName(),i,y,weight));
      
      mean += y * weight;
      
      v1 += weight;
      v2 += weight*weight;
    }
    
    mean /= v1;
    
    for ( Int_t i = 0; i < n; ++i )
    {
      Double_t weight = gTriggerFractions->GetY()[i]; // sum of weight should be 1.0
      Double_t y = g.GetY()[i];
      
      d += (y-mean)*(y-mean)*weight;
    }
    
    AliDebug(2,Form("v1=%e v2=%e d=%e",v1,v2,d));
    
    if ( v1 <= 0) return 0x0;
    
    errorOnMean = TMath::Sqrt((1.0/v1)*(1.0/(n-1))*d);
    
    rms = TMath::Sqrt( (v1/(v1*v1-v2))*d );    
  }
  
  AliAnalysisMuMuResult* result = new AliAnalysisMuMuResult(g.GetName(),g.GetTitle());  

  result->Set(basename,mean,errorOnMean,rms);
  
  if ( TString(g.GetName()) == "FnormScalersPUPS" )
  {
    AliDebug(1,Form("mean %e errorOnMean %e rms %e",mean,errorOnMean,rms));
    StdoutToAliDebug(1,result->Print("full"));
  }

  return result;
}

//_____________________________________________________________________________
Double_t AliAnalysisMuMuFnorm::GetSum(const char* triggerClassName,
                                      Int_t runNumber,
                                      Int_t eventSelectionCorrected) const
{
  TString condition(Form("trigger:%s/run:%d",triggerClassName,runNumber));
  
  if (eventSelectionCorrected==1)
  {
    condition += "/event:PSALL";
  }
  else if ( eventSelectionCorrected == 2 )
  {
    condition += "/event:OFFLINE1";
  }
  else
  {
    condition += "/event:ALL";
  }
  
  Double_t n = fCounterCollection.GetSum(condition.Data());
  
  if (n<=0)
  {
    AliError(Form("Got no count for %s for run %d (physicsSelected:%d)",triggerClassName,runNumber,eventSelectionCorrected));
    return 0;
  }
  
  return n;
}

//_____________________________________________________________________________
TString AliAnalysisMuMuFnorm::GetTriggerClassName(ETriggerType tt, Int_t runNumber) const
{
  // get the triggerclass to for a given trigger type and run number
  
  if ( tt == kMB )
  {
    return MBTriggerClassName(runNumber);
  }
  else if ( tt == kMUL )
  {
    return MULTriggerClassName(runNumber);
  }
  else if ( tt == kMSL)
  {
    return MSLTriggerClassName(runNumber);
  }
  else if ( tt == kMSH)
  {
    return MSHTriggerClassName(runNumber);
  }
  return "";
}

//_____________________________________________________________________________
TString AliAnalysisMuMuFnorm::GetTriggerTypeName(ETriggerType tt) const
{
  // get the name of the trigger type
  if ( tt == kMB )
  {
    return "MB";
  }
  else if ( tt == kMUL )
  {
    return "MUL";
  }
  else if ( tt == kMSL)
  {
    return "MSL";
  }
  else if ( tt == kMSH)
  {
    return "MSH";
  }
  return "";
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::GetValueAndErrorFromGraph(TGraphErrors* graph,
                                                     Int_t runNumber,
                                                     Double_t& value,
                                                     Double_t& error) const
{
  /// get (value,error) corresponding to run=runNumber.
  /// Works both for compact and non-compact graphs
  
  value = TMath::Limits<Double_t>::Max();
  error = 0.0;
  
  if (!graph) return;
  
  TAxis* axis = graph->GetXaxis();
  
  for ( Int_t i = 0; i < graph->GetN(); ++i )
  {
    Int_t rbin = TMath::Nint(graph->GetX()[i]);
    Int_t rlabel = TString(axis->GetBinLabel(i+1)).Atoi();
    if ( rbin == runNumber || rlabel == runNumber )
    {
      value = graph->GetY()[i];
      error = graph->GetEY()[i];
    }
  }
}

//_____________________________________________________________________________
AliMergeableCollection* AliAnalysisMuMuFnorm::MC() const
{
  // get our mergeable collection
  if (!fMergeableCollection)
  {
    fMergeableCollection = new AliMergeableCollection("Fnorm",Form("MB to %s trigger normalization results",GetTriggerTypeName(fReferenceTriggerType).Data()));
  }
  return fMergeableCollection;
}

//_____________________________________________________________________________
TString AliAnalysisMuMuFnorm::MBTriggerClassName(Int_t runNumber) const
{
  /// FIXME : find a better way ?
  
  if ( TriggerClassnameTest("CINT7-B-NOPF-ALLNOTRD",runNumber) )
  {
    return "CINT7-B-NOPF-ALLNOTRD";
  }
  return "";
}

//_____________________________________________________________________________
TString AliAnalysisMuMuFnorm::MSHTriggerClassName(Int_t runNumber) const
{
  /// FIXME : find a better way ?
  
  if ( TriggerClassnameTest("CMSH7-B-NOPF-ALLNOTRD",runNumber) )
  {
    return "CMSH7-B-NOPF-ALLNOTRD";
  }
  else if ( TriggerClassnameTest("CMSH7-B-NOPF-MUON",runNumber) )
  {
    return "CMSH7-B-NOPF-MUON";
  }
  return "";
}

//_____________________________________________________________________________
TString AliAnalysisMuMuFnorm::MSLTriggerClassName(Int_t runNumber) const
{
  /// FIXME : find a better way ?
  
  if ( TriggerClassnameTest("CMSL7-B-NOPF-MUON",runNumber) )
  {
      return "CMSL7-B-NOPF-MUON";
  }
//  else
//    if ( TriggerClassnameTest("CMSL7-B-NOPF-ALLNOTRD",runNumber) )
//  {
//    return "CMSL7-B-NOPF-ALLNOTRD";
//  }
  return "";
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::MultiplyGraphs(const char* g1name, const char* g2name, const char* name)
{
  /// Make a new graph = g1*g2
  std::vector<double> vx;
  std::vector<double> vy;
  std::vector<double> vxerr;
  std::vector<double> vyerr;
  
  TGraphErrors* g1 = GetGraph(g1name);
  TGraphErrors* g2 = GetGraph(g2name);
  
  if (!g1)
  {
    AliError(Form("Could not get graph %s",g1name));
    return;
  }

  if (!g2)
  {
    AliError(Form("Could not get graph %s",g2name));
    return;
  }

  if ( g1->GetN() != g2->GetN() )
  {
    AliError(Form("Could not multiply incompatible graphs %d pts vs %d pts",g1->GetN(),g2->GetN()));
    return;
  }
  
  for ( Int_t i = 0; i < g1->GetN(); ++i )
  {
    if ( g1->GetX()[i] != g2->GetX()[i] )
    {
      AliError(Form("Incompatible bin %d : %e vs %e",i,g1->GetX()[i],g2->GetX()[i]));
      return;
    }
    
    vx.push_back(g1->GetX()[i]);
    vxerr.push_back(g1->GetEX()[i]);
    
    Double_t y = g1->GetY()[i]*g2->GetY()[i];
    Double_t yerr = y*AliAnalysisMuMuResult::ErrorAB( g1->GetY()[i], g1->GetEY()[i],
                                                     g2->GetY()[i], g2->GetEY()[i]);
    
    vy.push_back(y);
    vyerr.push_back(yerr);
  }
  
  TString gname(name);
  
  if ( gname.Length() == 0 )
  {
    gname = g1->GetName();
    gname += "x";
    gname += g2->GetName();
  }
  
  TString title(Form("Product of %s by %s",g1->GetName(),g2->GetName()));
  
  CreateAndAddGraph(gname,title,vx,vxerr,vy,vyerr);
}

//_____________________________________________________________________________
TString AliAnalysisMuMuFnorm::MULTriggerClassName(Int_t runNumber) const
{
  /// FIXME : find a better way ?
  
  if ( TriggerClassnameTest("CMUL7-B-NOPF-ALLNOTRD",runNumber) )
  {
    return "CMUL7-B-NOPF-ALLNOTRD";
  }
  else if ( TriggerClassnameTest("CMUL7-B-NOPF-MUON",runNumber) )
  {
    return "CMUL7-B-NOPF-MUON";
  }
  return "";
  
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::Print(Option_t* opt) const
{
  if ( fMergeableCollection )
  {
    fMergeableCollection->Print(opt);
  }
}

//_____________________________________________________________________________
std::set<int> AliAnalysisMuMuFnorm::RunNumbers() const
{
  // Extract the run numbers from our counter collection
  
  std::set<int> runset;
  
  TString sruns = fCounterCollection.GetKeyWords("run");
  TObjArray* runs = sruns.Tokenize(",");
  
  TIter next(runs);
  TObjString* s;
  
  while ( ( s = static_cast<TObjString*>(next())) )
  {
    runset.insert(s->String().Atoi());
  }
  delete runs;
  
  return runset;
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ScalerFnorm(Double_t& value, Double_t& error,
                                       Double_t L0bREF, Double_t purityREF, Double_t purityREFerror,
                                       Double_t L0bMB, Double_t purityMB, Double_t purityMBerror,
                                       Double_t pileUpFactor, Double_t pileUpFactorError)
{
  /// Compute the MB to REF ratio and its associated error
  
  value = error = 0.0;
  
  value = L0bREF*purityREF;
  
  if (!value) return;
  
  value = L0bMB*purityMB*pileUpFactor/value;
  
  error = value*AliAnalysisMuMuResult::ErrorABCDE(L0bREF,TMath::Sqrt(L0bREF),
                                                  purityREF,purityREFerror,
                                                  L0bMB,TMath::Sqrt(L0bMB),
                                                  purityMB,purityMBerror,
                                                  pileUpFactor,pileUpFactorError);
}

//_____________________________________________________________________________
void AliAnalysisMuMuFnorm::ShowFnorm(const TObjArray& a) const
{
  /// Print and plot Fnorm values
  TIter next(&a);
  TGraphErrors* g;
  
  while ( ( g = static_cast<TGraphErrors*>(next()) ) )
  {
    g->SetTitle(Form("Fnorm %s",g->GetTitle()));

    new TCanvas(Form("c%s",g->GetName()));

    if (fIsCompactGraphs)
    {
      AliAnalysisMuMuGraphUtil::Compact(*g);
    }
    else
    {
      g->GetXaxis()->SetNoExponent();
    }
    g->Draw("lpa");
    
    Double_t y(0.0);
    Double_t yerr(0.0);
    
    for ( Int_t i = 0; i < g->GetN(); ++i )
    {
      y += g->GetY()[i];
      Double_t e = ( y != 0.0  ? g->GetEY()[i]/y : 0.0);
      
      yerr += e*e;
    }
    
    y /= (g->GetN());
    yerr = TMath::Sqrt(yerr)*y;
    
    AliInfo(Form("%30s graph %e +- %e (%5.2f %%) RMS %e",g->GetName(),
                 y,yerr,yerr*100/y,g->GetRMS(2)));

  }
}

//_____________________________________________________________________________
Bool_t AliAnalysisMuMuFnorm::TriggerClassnameTest(const char* triggerClassName, Int_t runNumber) const
{
  /// Check if we have counts for that trigger,run combination
  
  TString runs = fCounterCollection.GetKeyWords("run");
  
  if ( !runs.Contains(Form("%d",runNumber)) ) return kFALSE;
  
  TString triggers = fCounterCollection.GetKeyWords("trigger");
  
  if (!triggers.Contains(triggerClassName)) return kFALSE;
  
  Double_t n = fCounterCollection.GetSum(Form("trigger:%s/run:%d",triggerClassName,runNumber));
  
  return ( n > 0.0 );
}

//_____________________________________________________________________________
void
AliAnalysisMuMuFnorm::WeightedMeanGraphs(const char* patternOrList, const char* graphName)
{
  /// Sum the graphs which name matches pattern
  /// Sum is made using a weighted mean (each element is weighted by the inverse
  /// of its error squared)
  
  TString spattern(patternOrList);
  TObjArray* slist(0x0);
  
  if ( spattern.CountChar(',') )
  {
    // it's not a pattern but a list...
    slist = spattern.Tokenize(",");
    spattern = "";
  }
  
  TList* objectList = MC()->CreateListOfObjectNames("/GRAPHS/");
  TIter next(objectList);
  TObjString* str(0x0);
  TObjArray selected;
  selected.SetOwner(kFALSE);
  
  while ( ( str = static_cast<TObjString*>(next()) ) )
  {
    TGraphErrors* g = GetGraph(str->String());
    
    if (!g) continue;
    
    TString name(g->GetName());
    
    if ( spattern.Length() >0 && !name.Contains(spattern.Data()) ) continue;
    
    if ( slist && !slist->FindObject(name)) continue;
    
    AliDebug(2,Form("Selected for sum : %s",name.Data()));
    
    selected.Add(g);
  }
  
  delete slist;
  delete objectList;
  
  if (selected.GetLast()<0) return;
  
  std::vector<double> vx;
  std::vector<double> vy;
  std::vector<double> vxerr;
  std::vector<double> vyerr;
  
  Int_t npts = static_cast<TGraphErrors*>(selected.First())->GetN();
  
  for ( Int_t ipoint = 0; ipoint < npts; ++ipoint )
  {
    Double_t x(0.0),xref(0.0),xerr(0.0);
    Double_t sum(0.0);
    Double_t sume2(0.0);
    
    for ( Int_t igraph = 0; igraph <= selected.GetLast(); ++igraph )
    {
      TGraphErrors* g = static_cast<TGraphErrors*>(selected.At(igraph));
      
      if ( g->GetN() != npts )
      {
        AliError(Form("Graph %s does not have the expected %d points",g->GetName(),npts));
        continue;
      }
      Double_t runNumber;
      
      if ( fIsCompactGraphs )
      {
        runNumber = TString(g->GetXaxis()->GetBinLabel(ipoint+1)).Atoi()*1.0;
      }
      else
      {
        runNumber = g->GetX()[ipoint];
      }
      
      if ( igraph == 0 )
      {
        xref = g->GetX()[ipoint];
        x = runNumber;
        xerr = g->GetEX()[ipoint];
      }
      else
      {
        if ( xref != g->GetX()[ipoint] )
        {
          AliError(Form("Cannot sum graphs with different axis : get %e and expected %e : %s vs %s",xref,x,selected.At(0)->GetName(),g->GetName()));
          return;
        }
      }
      
      Double_t e2 = g->GetEY()[ipoint]*g->GetEY()[ipoint];
      
      if ( e2 != 0.0 )
      {
        sum += g->GetY()[ipoint]/e2;
        sume2 += 1.0/e2;
      }
    }
    
    if (sume2 != 0.0)
    {
      vx.push_back(x);
      vxerr.push_back(xerr);
      vy.push_back(sum/sume2);
      vyerr.push_back(TMath::Sqrt(1/sume2));
    }
  }
  
  Int_t n = selected.GetEntries();
  
  TString name(graphName);
  TString title(Form("Weighted mean from %d individual graphs",n));
  
  if ( strlen(graphName) == 0)
  {
    name = TString::Format("WeightMeanFnorm%s",patternOrList);
    name.ReplaceAll(",","_");
    title = TString::Format("WeightMeanFnorm%s from %d individual graphs",patternOrList,n);
  }
  
  CreateAndAddGraph(name,title,vx,vxerr,vy,vyerr);
}


 AliAnalysisMuMuFnorm.cxx:1
 AliAnalysisMuMuFnorm.cxx:2
 AliAnalysisMuMuFnorm.cxx:3
 AliAnalysisMuMuFnorm.cxx:4
 AliAnalysisMuMuFnorm.cxx:5
 AliAnalysisMuMuFnorm.cxx:6
 AliAnalysisMuMuFnorm.cxx:7
 AliAnalysisMuMuFnorm.cxx:8
 AliAnalysisMuMuFnorm.cxx:9
 AliAnalysisMuMuFnorm.cxx:10
 AliAnalysisMuMuFnorm.cxx:11
 AliAnalysisMuMuFnorm.cxx:12
 AliAnalysisMuMuFnorm.cxx:13
 AliAnalysisMuMuFnorm.cxx:14
 AliAnalysisMuMuFnorm.cxx:15
 AliAnalysisMuMuFnorm.cxx:16
 AliAnalysisMuMuFnorm.cxx:17
 AliAnalysisMuMuFnorm.cxx:18
 AliAnalysisMuMuFnorm.cxx:19
 AliAnalysisMuMuFnorm.cxx:20
 AliAnalysisMuMuFnorm.cxx:21
 AliAnalysisMuMuFnorm.cxx:22
 AliAnalysisMuMuFnorm.cxx:23
 AliAnalysisMuMuFnorm.cxx:24
 AliAnalysisMuMuFnorm.cxx:25
 AliAnalysisMuMuFnorm.cxx:26
 AliAnalysisMuMuFnorm.cxx:27
 AliAnalysisMuMuFnorm.cxx:28
 AliAnalysisMuMuFnorm.cxx:29
 AliAnalysisMuMuFnorm.cxx:30
 AliAnalysisMuMuFnorm.cxx:31
 AliAnalysisMuMuFnorm.cxx:32
 AliAnalysisMuMuFnorm.cxx:33
 AliAnalysisMuMuFnorm.cxx:34
 AliAnalysisMuMuFnorm.cxx:35
 AliAnalysisMuMuFnorm.cxx:36
 AliAnalysisMuMuFnorm.cxx:37
 AliAnalysisMuMuFnorm.cxx:38
 AliAnalysisMuMuFnorm.cxx:39
 AliAnalysisMuMuFnorm.cxx:40
 AliAnalysisMuMuFnorm.cxx:41
 AliAnalysisMuMuFnorm.cxx:42
 AliAnalysisMuMuFnorm.cxx:43
 AliAnalysisMuMuFnorm.cxx:44
 AliAnalysisMuMuFnorm.cxx:45
 AliAnalysisMuMuFnorm.cxx:46
 AliAnalysisMuMuFnorm.cxx:47
 AliAnalysisMuMuFnorm.cxx:48
 AliAnalysisMuMuFnorm.cxx:49
 AliAnalysisMuMuFnorm.cxx:50
 AliAnalysisMuMuFnorm.cxx:51
 AliAnalysisMuMuFnorm.cxx:52
 AliAnalysisMuMuFnorm.cxx:53
 AliAnalysisMuMuFnorm.cxx:54
 AliAnalysisMuMuFnorm.cxx:55
 AliAnalysisMuMuFnorm.cxx:56
 AliAnalysisMuMuFnorm.cxx:57
 AliAnalysisMuMuFnorm.cxx:58
 AliAnalysisMuMuFnorm.cxx:59
 AliAnalysisMuMuFnorm.cxx:60
 AliAnalysisMuMuFnorm.cxx:61
 AliAnalysisMuMuFnorm.cxx:62
 AliAnalysisMuMuFnorm.cxx:63
 AliAnalysisMuMuFnorm.cxx:64
 AliAnalysisMuMuFnorm.cxx:65
 AliAnalysisMuMuFnorm.cxx:66
 AliAnalysisMuMuFnorm.cxx:67
 AliAnalysisMuMuFnorm.cxx:68
 AliAnalysisMuMuFnorm.cxx:69
 AliAnalysisMuMuFnorm.cxx:70
 AliAnalysisMuMuFnorm.cxx:71
 AliAnalysisMuMuFnorm.cxx:72
 AliAnalysisMuMuFnorm.cxx:73
 AliAnalysisMuMuFnorm.cxx:74
 AliAnalysisMuMuFnorm.cxx:75
 AliAnalysisMuMuFnorm.cxx:76
 AliAnalysisMuMuFnorm.cxx:77
 AliAnalysisMuMuFnorm.cxx:78
 AliAnalysisMuMuFnorm.cxx:79
 AliAnalysisMuMuFnorm.cxx:80
 AliAnalysisMuMuFnorm.cxx:81
 AliAnalysisMuMuFnorm.cxx:82
 AliAnalysisMuMuFnorm.cxx:83
 AliAnalysisMuMuFnorm.cxx:84
 AliAnalysisMuMuFnorm.cxx:85
 AliAnalysisMuMuFnorm.cxx:86
 AliAnalysisMuMuFnorm.cxx:87
 AliAnalysisMuMuFnorm.cxx:88
 AliAnalysisMuMuFnorm.cxx:89
 AliAnalysisMuMuFnorm.cxx:90
 AliAnalysisMuMuFnorm.cxx:91
 AliAnalysisMuMuFnorm.cxx:92
 AliAnalysisMuMuFnorm.cxx:93
 AliAnalysisMuMuFnorm.cxx:94
 AliAnalysisMuMuFnorm.cxx:95
 AliAnalysisMuMuFnorm.cxx:96
 AliAnalysisMuMuFnorm.cxx:97
 AliAnalysisMuMuFnorm.cxx:98
 AliAnalysisMuMuFnorm.cxx:99
 AliAnalysisMuMuFnorm.cxx:100
 AliAnalysisMuMuFnorm.cxx:101
 AliAnalysisMuMuFnorm.cxx:102
 AliAnalysisMuMuFnorm.cxx:103
 AliAnalysisMuMuFnorm.cxx:104
 AliAnalysisMuMuFnorm.cxx:105
 AliAnalysisMuMuFnorm.cxx:106
 AliAnalysisMuMuFnorm.cxx:107
 AliAnalysisMuMuFnorm.cxx:108
 AliAnalysisMuMuFnorm.cxx:109
 AliAnalysisMuMuFnorm.cxx:110
 AliAnalysisMuMuFnorm.cxx:111
 AliAnalysisMuMuFnorm.cxx:112
 AliAnalysisMuMuFnorm.cxx:113
 AliAnalysisMuMuFnorm.cxx:114
 AliAnalysisMuMuFnorm.cxx:115
 AliAnalysisMuMuFnorm.cxx:116
 AliAnalysisMuMuFnorm.cxx:117
 AliAnalysisMuMuFnorm.cxx:118
 AliAnalysisMuMuFnorm.cxx:119
 AliAnalysisMuMuFnorm.cxx:120
 AliAnalysisMuMuFnorm.cxx:121
 AliAnalysisMuMuFnorm.cxx:122
 AliAnalysisMuMuFnorm.cxx:123
 AliAnalysisMuMuFnorm.cxx:124
 AliAnalysisMuMuFnorm.cxx:125
 AliAnalysisMuMuFnorm.cxx:126
 AliAnalysisMuMuFnorm.cxx:127
 AliAnalysisMuMuFnorm.cxx:128
 AliAnalysisMuMuFnorm.cxx:129
 AliAnalysisMuMuFnorm.cxx:130
 AliAnalysisMuMuFnorm.cxx:131
 AliAnalysisMuMuFnorm.cxx:132
 AliAnalysisMuMuFnorm.cxx:133
 AliAnalysisMuMuFnorm.cxx:134
 AliAnalysisMuMuFnorm.cxx:135
 AliAnalysisMuMuFnorm.cxx:136
 AliAnalysisMuMuFnorm.cxx:137
 AliAnalysisMuMuFnorm.cxx:138
 AliAnalysisMuMuFnorm.cxx:139
 AliAnalysisMuMuFnorm.cxx:140
 AliAnalysisMuMuFnorm.cxx:141
 AliAnalysisMuMuFnorm.cxx:142
 AliAnalysisMuMuFnorm.cxx:143
 AliAnalysisMuMuFnorm.cxx:144
 AliAnalysisMuMuFnorm.cxx:145
 AliAnalysisMuMuFnorm.cxx:146
 AliAnalysisMuMuFnorm.cxx:147
 AliAnalysisMuMuFnorm.cxx:148
 AliAnalysisMuMuFnorm.cxx:149
 AliAnalysisMuMuFnorm.cxx:150
 AliAnalysisMuMuFnorm.cxx:151
 AliAnalysisMuMuFnorm.cxx:152
 AliAnalysisMuMuFnorm.cxx:153
 AliAnalysisMuMuFnorm.cxx:154
 AliAnalysisMuMuFnorm.cxx:155
 AliAnalysisMuMuFnorm.cxx:156
 AliAnalysisMuMuFnorm.cxx:157
 AliAnalysisMuMuFnorm.cxx:158
 AliAnalysisMuMuFnorm.cxx:159
 AliAnalysisMuMuFnorm.cxx:160
 AliAnalysisMuMuFnorm.cxx:161
 AliAnalysisMuMuFnorm.cxx:162
 AliAnalysisMuMuFnorm.cxx:163
 AliAnalysisMuMuFnorm.cxx:164
 AliAnalysisMuMuFnorm.cxx:165
 AliAnalysisMuMuFnorm.cxx:166
 AliAnalysisMuMuFnorm.cxx:167
 AliAnalysisMuMuFnorm.cxx:168
 AliAnalysisMuMuFnorm.cxx:169
 AliAnalysisMuMuFnorm.cxx:170
 AliAnalysisMuMuFnorm.cxx:171
 AliAnalysisMuMuFnorm.cxx:172
 AliAnalysisMuMuFnorm.cxx:173
 AliAnalysisMuMuFnorm.cxx:174
 AliAnalysisMuMuFnorm.cxx:175
 AliAnalysisMuMuFnorm.cxx:176
 AliAnalysisMuMuFnorm.cxx:177
 AliAnalysisMuMuFnorm.cxx:178
 AliAnalysisMuMuFnorm.cxx:179
 AliAnalysisMuMuFnorm.cxx:180
 AliAnalysisMuMuFnorm.cxx:181
 AliAnalysisMuMuFnorm.cxx:182
 AliAnalysisMuMuFnorm.cxx:183
 AliAnalysisMuMuFnorm.cxx:184
 AliAnalysisMuMuFnorm.cxx:185
 AliAnalysisMuMuFnorm.cxx:186
 AliAnalysisMuMuFnorm.cxx:187
 AliAnalysisMuMuFnorm.cxx:188
 AliAnalysisMuMuFnorm.cxx:189
 AliAnalysisMuMuFnorm.cxx:190
 AliAnalysisMuMuFnorm.cxx:191
 AliAnalysisMuMuFnorm.cxx:192
 AliAnalysisMuMuFnorm.cxx:193
 AliAnalysisMuMuFnorm.cxx:194
 AliAnalysisMuMuFnorm.cxx:195
 AliAnalysisMuMuFnorm.cxx:196
 AliAnalysisMuMuFnorm.cxx:197
 AliAnalysisMuMuFnorm.cxx:198
 AliAnalysisMuMuFnorm.cxx:199
 AliAnalysisMuMuFnorm.cxx:200
 AliAnalysisMuMuFnorm.cxx:201
 AliAnalysisMuMuFnorm.cxx:202
 AliAnalysisMuMuFnorm.cxx:203
 AliAnalysisMuMuFnorm.cxx:204
 AliAnalysisMuMuFnorm.cxx:205
 AliAnalysisMuMuFnorm.cxx:206
 AliAnalysisMuMuFnorm.cxx:207
 AliAnalysisMuMuFnorm.cxx:208
 AliAnalysisMuMuFnorm.cxx:209
 AliAnalysisMuMuFnorm.cxx:210
 AliAnalysisMuMuFnorm.cxx:211
 AliAnalysisMuMuFnorm.cxx:212
 AliAnalysisMuMuFnorm.cxx:213
 AliAnalysisMuMuFnorm.cxx:214
 AliAnalysisMuMuFnorm.cxx:215
 AliAnalysisMuMuFnorm.cxx:216
 AliAnalysisMuMuFnorm.cxx:217
 AliAnalysisMuMuFnorm.cxx:218
 AliAnalysisMuMuFnorm.cxx:219
 AliAnalysisMuMuFnorm.cxx:220
 AliAnalysisMuMuFnorm.cxx:221
 AliAnalysisMuMuFnorm.cxx:222
 AliAnalysisMuMuFnorm.cxx:223
 AliAnalysisMuMuFnorm.cxx:224
 AliAnalysisMuMuFnorm.cxx:225
 AliAnalysisMuMuFnorm.cxx:226
 AliAnalysisMuMuFnorm.cxx:227
 AliAnalysisMuMuFnorm.cxx:228
 AliAnalysisMuMuFnorm.cxx:229
 AliAnalysisMuMuFnorm.cxx:230
 AliAnalysisMuMuFnorm.cxx:231
 AliAnalysisMuMuFnorm.cxx:232
 AliAnalysisMuMuFnorm.cxx:233
 AliAnalysisMuMuFnorm.cxx:234
 AliAnalysisMuMuFnorm.cxx:235
 AliAnalysisMuMuFnorm.cxx:236
 AliAnalysisMuMuFnorm.cxx:237
 AliAnalysisMuMuFnorm.cxx:238
 AliAnalysisMuMuFnorm.cxx:239
 AliAnalysisMuMuFnorm.cxx:240
 AliAnalysisMuMuFnorm.cxx:241
 AliAnalysisMuMuFnorm.cxx:242
 AliAnalysisMuMuFnorm.cxx:243
 AliAnalysisMuMuFnorm.cxx:244
 AliAnalysisMuMuFnorm.cxx:245
 AliAnalysisMuMuFnorm.cxx:246
 AliAnalysisMuMuFnorm.cxx:247
 AliAnalysisMuMuFnorm.cxx:248
 AliAnalysisMuMuFnorm.cxx:249
 AliAnalysisMuMuFnorm.cxx:250
 AliAnalysisMuMuFnorm.cxx:251
 AliAnalysisMuMuFnorm.cxx:252
 AliAnalysisMuMuFnorm.cxx:253
 AliAnalysisMuMuFnorm.cxx:254
 AliAnalysisMuMuFnorm.cxx:255
 AliAnalysisMuMuFnorm.cxx:256
 AliAnalysisMuMuFnorm.cxx:257
 AliAnalysisMuMuFnorm.cxx:258
 AliAnalysisMuMuFnorm.cxx:259
 AliAnalysisMuMuFnorm.cxx:260
 AliAnalysisMuMuFnorm.cxx:261
 AliAnalysisMuMuFnorm.cxx:262
 AliAnalysisMuMuFnorm.cxx:263
 AliAnalysisMuMuFnorm.cxx:264
 AliAnalysisMuMuFnorm.cxx:265
 AliAnalysisMuMuFnorm.cxx:266
 AliAnalysisMuMuFnorm.cxx:267
 AliAnalysisMuMuFnorm.cxx:268
 AliAnalysisMuMuFnorm.cxx:269
 AliAnalysisMuMuFnorm.cxx:270
 AliAnalysisMuMuFnorm.cxx:271
 AliAnalysisMuMuFnorm.cxx:272
 AliAnalysisMuMuFnorm.cxx:273
 AliAnalysisMuMuFnorm.cxx:274
 AliAnalysisMuMuFnorm.cxx:275
 AliAnalysisMuMuFnorm.cxx:276
 AliAnalysisMuMuFnorm.cxx:277
 AliAnalysisMuMuFnorm.cxx:278
 AliAnalysisMuMuFnorm.cxx:279
 AliAnalysisMuMuFnorm.cxx:280
 AliAnalysisMuMuFnorm.cxx:281
 AliAnalysisMuMuFnorm.cxx:282
 AliAnalysisMuMuFnorm.cxx:283
 AliAnalysisMuMuFnorm.cxx:284
 AliAnalysisMuMuFnorm.cxx:285
 AliAnalysisMuMuFnorm.cxx:286
 AliAnalysisMuMuFnorm.cxx:287
 AliAnalysisMuMuFnorm.cxx:288
 AliAnalysisMuMuFnorm.cxx:289
 AliAnalysisMuMuFnorm.cxx:290
 AliAnalysisMuMuFnorm.cxx:291
 AliAnalysisMuMuFnorm.cxx:292
 AliAnalysisMuMuFnorm.cxx:293
 AliAnalysisMuMuFnorm.cxx:294
 AliAnalysisMuMuFnorm.cxx:295
 AliAnalysisMuMuFnorm.cxx:296
 AliAnalysisMuMuFnorm.cxx:297
 AliAnalysisMuMuFnorm.cxx:298
 AliAnalysisMuMuFnorm.cxx:299
 AliAnalysisMuMuFnorm.cxx:300
 AliAnalysisMuMuFnorm.cxx:301
 AliAnalysisMuMuFnorm.cxx:302
 AliAnalysisMuMuFnorm.cxx:303
 AliAnalysisMuMuFnorm.cxx:304
 AliAnalysisMuMuFnorm.cxx:305
 AliAnalysisMuMuFnorm.cxx:306
 AliAnalysisMuMuFnorm.cxx:307
 AliAnalysisMuMuFnorm.cxx:308
 AliAnalysisMuMuFnorm.cxx:309
 AliAnalysisMuMuFnorm.cxx:310
 AliAnalysisMuMuFnorm.cxx:311
 AliAnalysisMuMuFnorm.cxx:312
 AliAnalysisMuMuFnorm.cxx:313
 AliAnalysisMuMuFnorm.cxx:314
 AliAnalysisMuMuFnorm.cxx:315
 AliAnalysisMuMuFnorm.cxx:316
 AliAnalysisMuMuFnorm.cxx:317
 AliAnalysisMuMuFnorm.cxx:318
 AliAnalysisMuMuFnorm.cxx:319
 AliAnalysisMuMuFnorm.cxx:320
 AliAnalysisMuMuFnorm.cxx:321
 AliAnalysisMuMuFnorm.cxx:322
 AliAnalysisMuMuFnorm.cxx:323
 AliAnalysisMuMuFnorm.cxx:324
 AliAnalysisMuMuFnorm.cxx:325
 AliAnalysisMuMuFnorm.cxx:326
 AliAnalysisMuMuFnorm.cxx:327
 AliAnalysisMuMuFnorm.cxx:328
 AliAnalysisMuMuFnorm.cxx:329
 AliAnalysisMuMuFnorm.cxx:330
 AliAnalysisMuMuFnorm.cxx:331
 AliAnalysisMuMuFnorm.cxx:332
 AliAnalysisMuMuFnorm.cxx:333
 AliAnalysisMuMuFnorm.cxx:334
 AliAnalysisMuMuFnorm.cxx:335
 AliAnalysisMuMuFnorm.cxx:336
 AliAnalysisMuMuFnorm.cxx:337
 AliAnalysisMuMuFnorm.cxx:338
 AliAnalysisMuMuFnorm.cxx:339
 AliAnalysisMuMuFnorm.cxx:340
 AliAnalysisMuMuFnorm.cxx:341
 AliAnalysisMuMuFnorm.cxx:342
 AliAnalysisMuMuFnorm.cxx:343
 AliAnalysisMuMuFnorm.cxx:344
 AliAnalysisMuMuFnorm.cxx:345
 AliAnalysisMuMuFnorm.cxx:346
 AliAnalysisMuMuFnorm.cxx:347
 AliAnalysisMuMuFnorm.cxx:348
 AliAnalysisMuMuFnorm.cxx:349
 AliAnalysisMuMuFnorm.cxx:350
 AliAnalysisMuMuFnorm.cxx:351
 AliAnalysisMuMuFnorm.cxx:352
 AliAnalysisMuMuFnorm.cxx:353
 AliAnalysisMuMuFnorm.cxx:354
 AliAnalysisMuMuFnorm.cxx:355
 AliAnalysisMuMuFnorm.cxx:356
 AliAnalysisMuMuFnorm.cxx:357
 AliAnalysisMuMuFnorm.cxx:358
 AliAnalysisMuMuFnorm.cxx:359
 AliAnalysisMuMuFnorm.cxx:360
 AliAnalysisMuMuFnorm.cxx:361
 AliAnalysisMuMuFnorm.cxx:362
 AliAnalysisMuMuFnorm.cxx:363
 AliAnalysisMuMuFnorm.cxx:364
 AliAnalysisMuMuFnorm.cxx:365
 AliAnalysisMuMuFnorm.cxx:366
 AliAnalysisMuMuFnorm.cxx:367
 AliAnalysisMuMuFnorm.cxx:368
 AliAnalysisMuMuFnorm.cxx:369
 AliAnalysisMuMuFnorm.cxx:370
 AliAnalysisMuMuFnorm.cxx:371
 AliAnalysisMuMuFnorm.cxx:372
 AliAnalysisMuMuFnorm.cxx:373
 AliAnalysisMuMuFnorm.cxx:374
 AliAnalysisMuMuFnorm.cxx:375
 AliAnalysisMuMuFnorm.cxx:376
 AliAnalysisMuMuFnorm.cxx:377
 AliAnalysisMuMuFnorm.cxx:378
 AliAnalysisMuMuFnorm.cxx:379
 AliAnalysisMuMuFnorm.cxx:380
 AliAnalysisMuMuFnorm.cxx:381
 AliAnalysisMuMuFnorm.cxx:382
 AliAnalysisMuMuFnorm.cxx:383
 AliAnalysisMuMuFnorm.cxx:384
 AliAnalysisMuMuFnorm.cxx:385
 AliAnalysisMuMuFnorm.cxx:386
 AliAnalysisMuMuFnorm.cxx:387
 AliAnalysisMuMuFnorm.cxx:388
 AliAnalysisMuMuFnorm.cxx:389
 AliAnalysisMuMuFnorm.cxx:390
 AliAnalysisMuMuFnorm.cxx:391
 AliAnalysisMuMuFnorm.cxx:392
 AliAnalysisMuMuFnorm.cxx:393
 AliAnalysisMuMuFnorm.cxx:394
 AliAnalysisMuMuFnorm.cxx:395
 AliAnalysisMuMuFnorm.cxx:396
 AliAnalysisMuMuFnorm.cxx:397
 AliAnalysisMuMuFnorm.cxx:398
 AliAnalysisMuMuFnorm.cxx:399
 AliAnalysisMuMuFnorm.cxx:400
 AliAnalysisMuMuFnorm.cxx:401
 AliAnalysisMuMuFnorm.cxx:402
 AliAnalysisMuMuFnorm.cxx:403
 AliAnalysisMuMuFnorm.cxx:404
 AliAnalysisMuMuFnorm.cxx:405
 AliAnalysisMuMuFnorm.cxx:406
 AliAnalysisMuMuFnorm.cxx:407
 AliAnalysisMuMuFnorm.cxx:408
 AliAnalysisMuMuFnorm.cxx:409
 AliAnalysisMuMuFnorm.cxx:410
 AliAnalysisMuMuFnorm.cxx:411
 AliAnalysisMuMuFnorm.cxx:412
 AliAnalysisMuMuFnorm.cxx:413
 AliAnalysisMuMuFnorm.cxx:414
 AliAnalysisMuMuFnorm.cxx:415
 AliAnalysisMuMuFnorm.cxx:416
 AliAnalysisMuMuFnorm.cxx:417
 AliAnalysisMuMuFnorm.cxx:418
 AliAnalysisMuMuFnorm.cxx:419
 AliAnalysisMuMuFnorm.cxx:420
 AliAnalysisMuMuFnorm.cxx:421
 AliAnalysisMuMuFnorm.cxx:422
 AliAnalysisMuMuFnorm.cxx:423
 AliAnalysisMuMuFnorm.cxx:424
 AliAnalysisMuMuFnorm.cxx:425
 AliAnalysisMuMuFnorm.cxx:426
 AliAnalysisMuMuFnorm.cxx:427
 AliAnalysisMuMuFnorm.cxx:428
 AliAnalysisMuMuFnorm.cxx:429
 AliAnalysisMuMuFnorm.cxx:430
 AliAnalysisMuMuFnorm.cxx:431
 AliAnalysisMuMuFnorm.cxx:432
 AliAnalysisMuMuFnorm.cxx:433
 AliAnalysisMuMuFnorm.cxx:434
 AliAnalysisMuMuFnorm.cxx:435
 AliAnalysisMuMuFnorm.cxx:436
 AliAnalysisMuMuFnorm.cxx:437
 AliAnalysisMuMuFnorm.cxx:438
 AliAnalysisMuMuFnorm.cxx:439
 AliAnalysisMuMuFnorm.cxx:440
 AliAnalysisMuMuFnorm.cxx:441
 AliAnalysisMuMuFnorm.cxx:442
 AliAnalysisMuMuFnorm.cxx:443
 AliAnalysisMuMuFnorm.cxx:444
 AliAnalysisMuMuFnorm.cxx:445
 AliAnalysisMuMuFnorm.cxx:446
 AliAnalysisMuMuFnorm.cxx:447
 AliAnalysisMuMuFnorm.cxx:448
 AliAnalysisMuMuFnorm.cxx:449
 AliAnalysisMuMuFnorm.cxx:450
 AliAnalysisMuMuFnorm.cxx:451
 AliAnalysisMuMuFnorm.cxx:452
 AliAnalysisMuMuFnorm.cxx:453
 AliAnalysisMuMuFnorm.cxx:454
 AliAnalysisMuMuFnorm.cxx:455
 AliAnalysisMuMuFnorm.cxx:456
 AliAnalysisMuMuFnorm.cxx:457
 AliAnalysisMuMuFnorm.cxx:458
 AliAnalysisMuMuFnorm.cxx:459
 AliAnalysisMuMuFnorm.cxx:460
 AliAnalysisMuMuFnorm.cxx:461
 AliAnalysisMuMuFnorm.cxx:462
 AliAnalysisMuMuFnorm.cxx:463
 AliAnalysisMuMuFnorm.cxx:464
 AliAnalysisMuMuFnorm.cxx:465
 AliAnalysisMuMuFnorm.cxx:466
 AliAnalysisMuMuFnorm.cxx:467
 AliAnalysisMuMuFnorm.cxx:468
 AliAnalysisMuMuFnorm.cxx:469
 AliAnalysisMuMuFnorm.cxx:470
 AliAnalysisMuMuFnorm.cxx:471
 AliAnalysisMuMuFnorm.cxx:472
 AliAnalysisMuMuFnorm.cxx:473
 AliAnalysisMuMuFnorm.cxx:474
 AliAnalysisMuMuFnorm.cxx:475
 AliAnalysisMuMuFnorm.cxx:476
 AliAnalysisMuMuFnorm.cxx:477
 AliAnalysisMuMuFnorm.cxx:478
 AliAnalysisMuMuFnorm.cxx:479
 AliAnalysisMuMuFnorm.cxx:480
 AliAnalysisMuMuFnorm.cxx:481
 AliAnalysisMuMuFnorm.cxx:482
 AliAnalysisMuMuFnorm.cxx:483
 AliAnalysisMuMuFnorm.cxx:484
 AliAnalysisMuMuFnorm.cxx:485
 AliAnalysisMuMuFnorm.cxx:486
 AliAnalysisMuMuFnorm.cxx:487
 AliAnalysisMuMuFnorm.cxx:488
 AliAnalysisMuMuFnorm.cxx:489
 AliAnalysisMuMuFnorm.cxx:490
 AliAnalysisMuMuFnorm.cxx:491
 AliAnalysisMuMuFnorm.cxx:492
 AliAnalysisMuMuFnorm.cxx:493
 AliAnalysisMuMuFnorm.cxx:494
 AliAnalysisMuMuFnorm.cxx:495
 AliAnalysisMuMuFnorm.cxx:496
 AliAnalysisMuMuFnorm.cxx:497
 AliAnalysisMuMuFnorm.cxx:498
 AliAnalysisMuMuFnorm.cxx:499
 AliAnalysisMuMuFnorm.cxx:500
 AliAnalysisMuMuFnorm.cxx:501
 AliAnalysisMuMuFnorm.cxx:502
 AliAnalysisMuMuFnorm.cxx:503
 AliAnalysisMuMuFnorm.cxx:504
 AliAnalysisMuMuFnorm.cxx:505
 AliAnalysisMuMuFnorm.cxx:506
 AliAnalysisMuMuFnorm.cxx:507
 AliAnalysisMuMuFnorm.cxx:508
 AliAnalysisMuMuFnorm.cxx:509
 AliAnalysisMuMuFnorm.cxx:510
 AliAnalysisMuMuFnorm.cxx:511
 AliAnalysisMuMuFnorm.cxx:512
 AliAnalysisMuMuFnorm.cxx:513
 AliAnalysisMuMuFnorm.cxx:514
 AliAnalysisMuMuFnorm.cxx:515
 AliAnalysisMuMuFnorm.cxx:516
 AliAnalysisMuMuFnorm.cxx:517
 AliAnalysisMuMuFnorm.cxx:518
 AliAnalysisMuMuFnorm.cxx:519
 AliAnalysisMuMuFnorm.cxx:520
 AliAnalysisMuMuFnorm.cxx:521
 AliAnalysisMuMuFnorm.cxx:522
 AliAnalysisMuMuFnorm.cxx:523
 AliAnalysisMuMuFnorm.cxx:524
 AliAnalysisMuMuFnorm.cxx:525
 AliAnalysisMuMuFnorm.cxx:526
 AliAnalysisMuMuFnorm.cxx:527
 AliAnalysisMuMuFnorm.cxx:528
 AliAnalysisMuMuFnorm.cxx:529
 AliAnalysisMuMuFnorm.cxx:530
 AliAnalysisMuMuFnorm.cxx:531
 AliAnalysisMuMuFnorm.cxx:532
 AliAnalysisMuMuFnorm.cxx:533
 AliAnalysisMuMuFnorm.cxx:534
 AliAnalysisMuMuFnorm.cxx:535
 AliAnalysisMuMuFnorm.cxx:536
 AliAnalysisMuMuFnorm.cxx:537
 AliAnalysisMuMuFnorm.cxx:538
 AliAnalysisMuMuFnorm.cxx:539
 AliAnalysisMuMuFnorm.cxx:540
 AliAnalysisMuMuFnorm.cxx:541
 AliAnalysisMuMuFnorm.cxx:542
 AliAnalysisMuMuFnorm.cxx:543
 AliAnalysisMuMuFnorm.cxx:544
 AliAnalysisMuMuFnorm.cxx:545
 AliAnalysisMuMuFnorm.cxx:546
 AliAnalysisMuMuFnorm.cxx:547
 AliAnalysisMuMuFnorm.cxx:548
 AliAnalysisMuMuFnorm.cxx:549
 AliAnalysisMuMuFnorm.cxx:550
 AliAnalysisMuMuFnorm.cxx:551
 AliAnalysisMuMuFnorm.cxx:552
 AliAnalysisMuMuFnorm.cxx:553
 AliAnalysisMuMuFnorm.cxx:554
 AliAnalysisMuMuFnorm.cxx:555
 AliAnalysisMuMuFnorm.cxx:556
 AliAnalysisMuMuFnorm.cxx:557
 AliAnalysisMuMuFnorm.cxx:558
 AliAnalysisMuMuFnorm.cxx:559
 AliAnalysisMuMuFnorm.cxx:560
 AliAnalysisMuMuFnorm.cxx:561
 AliAnalysisMuMuFnorm.cxx:562
 AliAnalysisMuMuFnorm.cxx:563
 AliAnalysisMuMuFnorm.cxx:564
 AliAnalysisMuMuFnorm.cxx:565
 AliAnalysisMuMuFnorm.cxx:566
 AliAnalysisMuMuFnorm.cxx:567
 AliAnalysisMuMuFnorm.cxx:568
 AliAnalysisMuMuFnorm.cxx:569
 AliAnalysisMuMuFnorm.cxx:570
 AliAnalysisMuMuFnorm.cxx:571
 AliAnalysisMuMuFnorm.cxx:572
 AliAnalysisMuMuFnorm.cxx:573
 AliAnalysisMuMuFnorm.cxx:574
 AliAnalysisMuMuFnorm.cxx:575
 AliAnalysisMuMuFnorm.cxx:576
 AliAnalysisMuMuFnorm.cxx:577
 AliAnalysisMuMuFnorm.cxx:578
 AliAnalysisMuMuFnorm.cxx:579
 AliAnalysisMuMuFnorm.cxx:580
 AliAnalysisMuMuFnorm.cxx:581
 AliAnalysisMuMuFnorm.cxx:582
 AliAnalysisMuMuFnorm.cxx:583
 AliAnalysisMuMuFnorm.cxx:584
 AliAnalysisMuMuFnorm.cxx:585
 AliAnalysisMuMuFnorm.cxx:586
 AliAnalysisMuMuFnorm.cxx:587
 AliAnalysisMuMuFnorm.cxx:588
 AliAnalysisMuMuFnorm.cxx:589
 AliAnalysisMuMuFnorm.cxx:590
 AliAnalysisMuMuFnorm.cxx:591
 AliAnalysisMuMuFnorm.cxx:592
 AliAnalysisMuMuFnorm.cxx:593
 AliAnalysisMuMuFnorm.cxx:594
 AliAnalysisMuMuFnorm.cxx:595
 AliAnalysisMuMuFnorm.cxx:596
 AliAnalysisMuMuFnorm.cxx:597
 AliAnalysisMuMuFnorm.cxx:598
 AliAnalysisMuMuFnorm.cxx:599
 AliAnalysisMuMuFnorm.cxx:600
 AliAnalysisMuMuFnorm.cxx:601
 AliAnalysisMuMuFnorm.cxx:602
 AliAnalysisMuMuFnorm.cxx:603
 AliAnalysisMuMuFnorm.cxx:604
 AliAnalysisMuMuFnorm.cxx:605
 AliAnalysisMuMuFnorm.cxx:606
 AliAnalysisMuMuFnorm.cxx:607
 AliAnalysisMuMuFnorm.cxx:608
 AliAnalysisMuMuFnorm.cxx:609
 AliAnalysisMuMuFnorm.cxx:610
 AliAnalysisMuMuFnorm.cxx:611
 AliAnalysisMuMuFnorm.cxx:612
 AliAnalysisMuMuFnorm.cxx:613
 AliAnalysisMuMuFnorm.cxx:614
 AliAnalysisMuMuFnorm.cxx:615
 AliAnalysisMuMuFnorm.cxx:616
 AliAnalysisMuMuFnorm.cxx:617
 AliAnalysisMuMuFnorm.cxx:618
 AliAnalysisMuMuFnorm.cxx:619
 AliAnalysisMuMuFnorm.cxx:620
 AliAnalysisMuMuFnorm.cxx:621
 AliAnalysisMuMuFnorm.cxx:622
 AliAnalysisMuMuFnorm.cxx:623
 AliAnalysisMuMuFnorm.cxx:624
 AliAnalysisMuMuFnorm.cxx:625
 AliAnalysisMuMuFnorm.cxx:626
 AliAnalysisMuMuFnorm.cxx:627
 AliAnalysisMuMuFnorm.cxx:628
 AliAnalysisMuMuFnorm.cxx:629
 AliAnalysisMuMuFnorm.cxx:630
 AliAnalysisMuMuFnorm.cxx:631
 AliAnalysisMuMuFnorm.cxx:632
 AliAnalysisMuMuFnorm.cxx:633
 AliAnalysisMuMuFnorm.cxx:634
 AliAnalysisMuMuFnorm.cxx:635
 AliAnalysisMuMuFnorm.cxx:636
 AliAnalysisMuMuFnorm.cxx:637
 AliAnalysisMuMuFnorm.cxx:638
 AliAnalysisMuMuFnorm.cxx:639
 AliAnalysisMuMuFnorm.cxx:640
 AliAnalysisMuMuFnorm.cxx:641
 AliAnalysisMuMuFnorm.cxx:642
 AliAnalysisMuMuFnorm.cxx:643
 AliAnalysisMuMuFnorm.cxx:644
 AliAnalysisMuMuFnorm.cxx:645
 AliAnalysisMuMuFnorm.cxx:646
 AliAnalysisMuMuFnorm.cxx:647
 AliAnalysisMuMuFnorm.cxx:648
 AliAnalysisMuMuFnorm.cxx:649
 AliAnalysisMuMuFnorm.cxx:650
 AliAnalysisMuMuFnorm.cxx:651
 AliAnalysisMuMuFnorm.cxx:652
 AliAnalysisMuMuFnorm.cxx:653
 AliAnalysisMuMuFnorm.cxx:654
 AliAnalysisMuMuFnorm.cxx:655
 AliAnalysisMuMuFnorm.cxx:656
 AliAnalysisMuMuFnorm.cxx:657
 AliAnalysisMuMuFnorm.cxx:658
 AliAnalysisMuMuFnorm.cxx:659
 AliAnalysisMuMuFnorm.cxx:660
 AliAnalysisMuMuFnorm.cxx:661
 AliAnalysisMuMuFnorm.cxx:662
 AliAnalysisMuMuFnorm.cxx:663
 AliAnalysisMuMuFnorm.cxx:664
 AliAnalysisMuMuFnorm.cxx:665
 AliAnalysisMuMuFnorm.cxx:666
 AliAnalysisMuMuFnorm.cxx:667
 AliAnalysisMuMuFnorm.cxx:668
 AliAnalysisMuMuFnorm.cxx:669
 AliAnalysisMuMuFnorm.cxx:670
 AliAnalysisMuMuFnorm.cxx:671
 AliAnalysisMuMuFnorm.cxx:672
 AliAnalysisMuMuFnorm.cxx:673
 AliAnalysisMuMuFnorm.cxx:674
 AliAnalysisMuMuFnorm.cxx:675
 AliAnalysisMuMuFnorm.cxx:676
 AliAnalysisMuMuFnorm.cxx:677
 AliAnalysisMuMuFnorm.cxx:678
 AliAnalysisMuMuFnorm.cxx:679
 AliAnalysisMuMuFnorm.cxx:680
 AliAnalysisMuMuFnorm.cxx:681
 AliAnalysisMuMuFnorm.cxx:682
 AliAnalysisMuMuFnorm.cxx:683
 AliAnalysisMuMuFnorm.cxx:684
 AliAnalysisMuMuFnorm.cxx:685
 AliAnalysisMuMuFnorm.cxx:686
 AliAnalysisMuMuFnorm.cxx:687
 AliAnalysisMuMuFnorm.cxx:688
 AliAnalysisMuMuFnorm.cxx:689
 AliAnalysisMuMuFnorm.cxx:690
 AliAnalysisMuMuFnorm.cxx:691
 AliAnalysisMuMuFnorm.cxx:692
 AliAnalysisMuMuFnorm.cxx:693
 AliAnalysisMuMuFnorm.cxx:694
 AliAnalysisMuMuFnorm.cxx:695
 AliAnalysisMuMuFnorm.cxx:696
 AliAnalysisMuMuFnorm.cxx:697
 AliAnalysisMuMuFnorm.cxx:698
 AliAnalysisMuMuFnorm.cxx:699
 AliAnalysisMuMuFnorm.cxx:700
 AliAnalysisMuMuFnorm.cxx:701
 AliAnalysisMuMuFnorm.cxx:702
 AliAnalysisMuMuFnorm.cxx:703
 AliAnalysisMuMuFnorm.cxx:704
 AliAnalysisMuMuFnorm.cxx:705
 AliAnalysisMuMuFnorm.cxx:706
 AliAnalysisMuMuFnorm.cxx:707
 AliAnalysisMuMuFnorm.cxx:708
 AliAnalysisMuMuFnorm.cxx:709
 AliAnalysisMuMuFnorm.cxx:710
 AliAnalysisMuMuFnorm.cxx:711
 AliAnalysisMuMuFnorm.cxx:712
 AliAnalysisMuMuFnorm.cxx:713
 AliAnalysisMuMuFnorm.cxx:714
 AliAnalysisMuMuFnorm.cxx:715
 AliAnalysisMuMuFnorm.cxx:716
 AliAnalysisMuMuFnorm.cxx:717
 AliAnalysisMuMuFnorm.cxx:718
 AliAnalysisMuMuFnorm.cxx:719
 AliAnalysisMuMuFnorm.cxx:720
 AliAnalysisMuMuFnorm.cxx:721
 AliAnalysisMuMuFnorm.cxx:722
 AliAnalysisMuMuFnorm.cxx:723
 AliAnalysisMuMuFnorm.cxx:724
 AliAnalysisMuMuFnorm.cxx:725
 AliAnalysisMuMuFnorm.cxx:726
 AliAnalysisMuMuFnorm.cxx:727
 AliAnalysisMuMuFnorm.cxx:728
 AliAnalysisMuMuFnorm.cxx:729
 AliAnalysisMuMuFnorm.cxx:730
 AliAnalysisMuMuFnorm.cxx:731
 AliAnalysisMuMuFnorm.cxx:732
 AliAnalysisMuMuFnorm.cxx:733
 AliAnalysisMuMuFnorm.cxx:734
 AliAnalysisMuMuFnorm.cxx:735
 AliAnalysisMuMuFnorm.cxx:736
 AliAnalysisMuMuFnorm.cxx:737
 AliAnalysisMuMuFnorm.cxx:738
 AliAnalysisMuMuFnorm.cxx:739
 AliAnalysisMuMuFnorm.cxx:740
 AliAnalysisMuMuFnorm.cxx:741
 AliAnalysisMuMuFnorm.cxx:742
 AliAnalysisMuMuFnorm.cxx:743
 AliAnalysisMuMuFnorm.cxx:744
 AliAnalysisMuMuFnorm.cxx:745
 AliAnalysisMuMuFnorm.cxx:746
 AliAnalysisMuMuFnorm.cxx:747
 AliAnalysisMuMuFnorm.cxx:748
 AliAnalysisMuMuFnorm.cxx:749
 AliAnalysisMuMuFnorm.cxx:750
 AliAnalysisMuMuFnorm.cxx:751
 AliAnalysisMuMuFnorm.cxx:752
 AliAnalysisMuMuFnorm.cxx:753
 AliAnalysisMuMuFnorm.cxx:754
 AliAnalysisMuMuFnorm.cxx:755
 AliAnalysisMuMuFnorm.cxx:756
 AliAnalysisMuMuFnorm.cxx:757
 AliAnalysisMuMuFnorm.cxx:758
 AliAnalysisMuMuFnorm.cxx:759
 AliAnalysisMuMuFnorm.cxx:760
 AliAnalysisMuMuFnorm.cxx:761
 AliAnalysisMuMuFnorm.cxx:762
 AliAnalysisMuMuFnorm.cxx:763
 AliAnalysisMuMuFnorm.cxx:764
 AliAnalysisMuMuFnorm.cxx:765
 AliAnalysisMuMuFnorm.cxx:766
 AliAnalysisMuMuFnorm.cxx:767
 AliAnalysisMuMuFnorm.cxx:768
 AliAnalysisMuMuFnorm.cxx:769
 AliAnalysisMuMuFnorm.cxx:770
 AliAnalysisMuMuFnorm.cxx:771
 AliAnalysisMuMuFnorm.cxx:772
 AliAnalysisMuMuFnorm.cxx:773
 AliAnalysisMuMuFnorm.cxx:774
 AliAnalysisMuMuFnorm.cxx:775
 AliAnalysisMuMuFnorm.cxx:776
 AliAnalysisMuMuFnorm.cxx:777
 AliAnalysisMuMuFnorm.cxx:778
 AliAnalysisMuMuFnorm.cxx:779
 AliAnalysisMuMuFnorm.cxx:780
 AliAnalysisMuMuFnorm.cxx:781
 AliAnalysisMuMuFnorm.cxx:782
 AliAnalysisMuMuFnorm.cxx:783
 AliAnalysisMuMuFnorm.cxx:784
 AliAnalysisMuMuFnorm.cxx:785
 AliAnalysisMuMuFnorm.cxx:786
 AliAnalysisMuMuFnorm.cxx:787
 AliAnalysisMuMuFnorm.cxx:788
 AliAnalysisMuMuFnorm.cxx:789
 AliAnalysisMuMuFnorm.cxx:790
 AliAnalysisMuMuFnorm.cxx:791
 AliAnalysisMuMuFnorm.cxx:792
 AliAnalysisMuMuFnorm.cxx:793
 AliAnalysisMuMuFnorm.cxx:794
 AliAnalysisMuMuFnorm.cxx:795
 AliAnalysisMuMuFnorm.cxx:796
 AliAnalysisMuMuFnorm.cxx:797
 AliAnalysisMuMuFnorm.cxx:798
 AliAnalysisMuMuFnorm.cxx:799
 AliAnalysisMuMuFnorm.cxx:800
 AliAnalysisMuMuFnorm.cxx:801
 AliAnalysisMuMuFnorm.cxx:802
 AliAnalysisMuMuFnorm.cxx:803
 AliAnalysisMuMuFnorm.cxx:804
 AliAnalysisMuMuFnorm.cxx:805
 AliAnalysisMuMuFnorm.cxx:806
 AliAnalysisMuMuFnorm.cxx:807
 AliAnalysisMuMuFnorm.cxx:808
 AliAnalysisMuMuFnorm.cxx:809
 AliAnalysisMuMuFnorm.cxx:810
 AliAnalysisMuMuFnorm.cxx:811
 AliAnalysisMuMuFnorm.cxx:812
 AliAnalysisMuMuFnorm.cxx:813
 AliAnalysisMuMuFnorm.cxx:814
 AliAnalysisMuMuFnorm.cxx:815
 AliAnalysisMuMuFnorm.cxx:816
 AliAnalysisMuMuFnorm.cxx:817
 AliAnalysisMuMuFnorm.cxx:818
 AliAnalysisMuMuFnorm.cxx:819
 AliAnalysisMuMuFnorm.cxx:820
 AliAnalysisMuMuFnorm.cxx:821
 AliAnalysisMuMuFnorm.cxx:822
 AliAnalysisMuMuFnorm.cxx:823
 AliAnalysisMuMuFnorm.cxx:824
 AliAnalysisMuMuFnorm.cxx:825
 AliAnalysisMuMuFnorm.cxx:826
 AliAnalysisMuMuFnorm.cxx:827
 AliAnalysisMuMuFnorm.cxx:828
 AliAnalysisMuMuFnorm.cxx:829
 AliAnalysisMuMuFnorm.cxx:830
 AliAnalysisMuMuFnorm.cxx:831
 AliAnalysisMuMuFnorm.cxx:832
 AliAnalysisMuMuFnorm.cxx:833
 AliAnalysisMuMuFnorm.cxx:834
 AliAnalysisMuMuFnorm.cxx:835
 AliAnalysisMuMuFnorm.cxx:836
 AliAnalysisMuMuFnorm.cxx:837
 AliAnalysisMuMuFnorm.cxx:838
 AliAnalysisMuMuFnorm.cxx:839
 AliAnalysisMuMuFnorm.cxx:840
 AliAnalysisMuMuFnorm.cxx:841
 AliAnalysisMuMuFnorm.cxx:842
 AliAnalysisMuMuFnorm.cxx:843
 AliAnalysisMuMuFnorm.cxx:844
 AliAnalysisMuMuFnorm.cxx:845
 AliAnalysisMuMuFnorm.cxx:846
 AliAnalysisMuMuFnorm.cxx:847
 AliAnalysisMuMuFnorm.cxx:848
 AliAnalysisMuMuFnorm.cxx:849
 AliAnalysisMuMuFnorm.cxx:850
 AliAnalysisMuMuFnorm.cxx:851
 AliAnalysisMuMuFnorm.cxx:852
 AliAnalysisMuMuFnorm.cxx:853
 AliAnalysisMuMuFnorm.cxx:854
 AliAnalysisMuMuFnorm.cxx:855
 AliAnalysisMuMuFnorm.cxx:856
 AliAnalysisMuMuFnorm.cxx:857
 AliAnalysisMuMuFnorm.cxx:858
 AliAnalysisMuMuFnorm.cxx:859
 AliAnalysisMuMuFnorm.cxx:860
 AliAnalysisMuMuFnorm.cxx:861
 AliAnalysisMuMuFnorm.cxx:862
 AliAnalysisMuMuFnorm.cxx:863
 AliAnalysisMuMuFnorm.cxx:864
 AliAnalysisMuMuFnorm.cxx:865
 AliAnalysisMuMuFnorm.cxx:866
 AliAnalysisMuMuFnorm.cxx:867
 AliAnalysisMuMuFnorm.cxx:868
 AliAnalysisMuMuFnorm.cxx:869
 AliAnalysisMuMuFnorm.cxx:870
 AliAnalysisMuMuFnorm.cxx:871
 AliAnalysisMuMuFnorm.cxx:872
 AliAnalysisMuMuFnorm.cxx:873
 AliAnalysisMuMuFnorm.cxx:874
 AliAnalysisMuMuFnorm.cxx:875
 AliAnalysisMuMuFnorm.cxx:876
 AliAnalysisMuMuFnorm.cxx:877
 AliAnalysisMuMuFnorm.cxx:878
 AliAnalysisMuMuFnorm.cxx:879
 AliAnalysisMuMuFnorm.cxx:880
 AliAnalysisMuMuFnorm.cxx:881
 AliAnalysisMuMuFnorm.cxx:882
 AliAnalysisMuMuFnorm.cxx:883
 AliAnalysisMuMuFnorm.cxx:884
 AliAnalysisMuMuFnorm.cxx:885
 AliAnalysisMuMuFnorm.cxx:886
 AliAnalysisMuMuFnorm.cxx:887
 AliAnalysisMuMuFnorm.cxx:888
 AliAnalysisMuMuFnorm.cxx:889
 AliAnalysisMuMuFnorm.cxx:890
 AliAnalysisMuMuFnorm.cxx:891
 AliAnalysisMuMuFnorm.cxx:892
 AliAnalysisMuMuFnorm.cxx:893
 AliAnalysisMuMuFnorm.cxx:894
 AliAnalysisMuMuFnorm.cxx:895
 AliAnalysisMuMuFnorm.cxx:896
 AliAnalysisMuMuFnorm.cxx:897
 AliAnalysisMuMuFnorm.cxx:898
 AliAnalysisMuMuFnorm.cxx:899
 AliAnalysisMuMuFnorm.cxx:900
 AliAnalysisMuMuFnorm.cxx:901
 AliAnalysisMuMuFnorm.cxx:902
 AliAnalysisMuMuFnorm.cxx:903
 AliAnalysisMuMuFnorm.cxx:904
 AliAnalysisMuMuFnorm.cxx:905
 AliAnalysisMuMuFnorm.cxx:906
 AliAnalysisMuMuFnorm.cxx:907
 AliAnalysisMuMuFnorm.cxx:908
 AliAnalysisMuMuFnorm.cxx:909
 AliAnalysisMuMuFnorm.cxx:910
 AliAnalysisMuMuFnorm.cxx:911
 AliAnalysisMuMuFnorm.cxx:912
 AliAnalysisMuMuFnorm.cxx:913
 AliAnalysisMuMuFnorm.cxx:914
 AliAnalysisMuMuFnorm.cxx:915
 AliAnalysisMuMuFnorm.cxx:916
 AliAnalysisMuMuFnorm.cxx:917
 AliAnalysisMuMuFnorm.cxx:918
 AliAnalysisMuMuFnorm.cxx:919
 AliAnalysisMuMuFnorm.cxx:920
 AliAnalysisMuMuFnorm.cxx:921
 AliAnalysisMuMuFnorm.cxx:922
 AliAnalysisMuMuFnorm.cxx:923
 AliAnalysisMuMuFnorm.cxx:924
 AliAnalysisMuMuFnorm.cxx:925
 AliAnalysisMuMuFnorm.cxx:926
 AliAnalysisMuMuFnorm.cxx:927
 AliAnalysisMuMuFnorm.cxx:928
 AliAnalysisMuMuFnorm.cxx:929
 AliAnalysisMuMuFnorm.cxx:930
 AliAnalysisMuMuFnorm.cxx:931
 AliAnalysisMuMuFnorm.cxx:932
 AliAnalysisMuMuFnorm.cxx:933
 AliAnalysisMuMuFnorm.cxx:934
 AliAnalysisMuMuFnorm.cxx:935
 AliAnalysisMuMuFnorm.cxx:936
 AliAnalysisMuMuFnorm.cxx:937
 AliAnalysisMuMuFnorm.cxx:938
 AliAnalysisMuMuFnorm.cxx:939
 AliAnalysisMuMuFnorm.cxx:940
 AliAnalysisMuMuFnorm.cxx:941
 AliAnalysisMuMuFnorm.cxx:942
 AliAnalysisMuMuFnorm.cxx:943
 AliAnalysisMuMuFnorm.cxx:944
 AliAnalysisMuMuFnorm.cxx:945
 AliAnalysisMuMuFnorm.cxx:946
 AliAnalysisMuMuFnorm.cxx:947
 AliAnalysisMuMuFnorm.cxx:948
 AliAnalysisMuMuFnorm.cxx:949
 AliAnalysisMuMuFnorm.cxx:950
 AliAnalysisMuMuFnorm.cxx:951
 AliAnalysisMuMuFnorm.cxx:952
 AliAnalysisMuMuFnorm.cxx:953
 AliAnalysisMuMuFnorm.cxx:954
 AliAnalysisMuMuFnorm.cxx:955
 AliAnalysisMuMuFnorm.cxx:956
 AliAnalysisMuMuFnorm.cxx:957
 AliAnalysisMuMuFnorm.cxx:958
 AliAnalysisMuMuFnorm.cxx:959
 AliAnalysisMuMuFnorm.cxx:960
 AliAnalysisMuMuFnorm.cxx:961
 AliAnalysisMuMuFnorm.cxx:962
 AliAnalysisMuMuFnorm.cxx:963
 AliAnalysisMuMuFnorm.cxx:964
 AliAnalysisMuMuFnorm.cxx:965
 AliAnalysisMuMuFnorm.cxx:966
 AliAnalysisMuMuFnorm.cxx:967
 AliAnalysisMuMuFnorm.cxx:968
 AliAnalysisMuMuFnorm.cxx:969
 AliAnalysisMuMuFnorm.cxx:970
 AliAnalysisMuMuFnorm.cxx:971
 AliAnalysisMuMuFnorm.cxx:972
 AliAnalysisMuMuFnorm.cxx:973
 AliAnalysisMuMuFnorm.cxx:974
 AliAnalysisMuMuFnorm.cxx:975
 AliAnalysisMuMuFnorm.cxx:976
 AliAnalysisMuMuFnorm.cxx:977
 AliAnalysisMuMuFnorm.cxx:978
 AliAnalysisMuMuFnorm.cxx:979
 AliAnalysisMuMuFnorm.cxx:980
 AliAnalysisMuMuFnorm.cxx:981
 AliAnalysisMuMuFnorm.cxx:982
 AliAnalysisMuMuFnorm.cxx:983
 AliAnalysisMuMuFnorm.cxx:984
 AliAnalysisMuMuFnorm.cxx:985
 AliAnalysisMuMuFnorm.cxx:986
 AliAnalysisMuMuFnorm.cxx:987
 AliAnalysisMuMuFnorm.cxx:988
 AliAnalysisMuMuFnorm.cxx:989
 AliAnalysisMuMuFnorm.cxx:990
 AliAnalysisMuMuFnorm.cxx:991
 AliAnalysisMuMuFnorm.cxx:992
 AliAnalysisMuMuFnorm.cxx:993
 AliAnalysisMuMuFnorm.cxx:994
 AliAnalysisMuMuFnorm.cxx:995
 AliAnalysisMuMuFnorm.cxx:996
 AliAnalysisMuMuFnorm.cxx:997
 AliAnalysisMuMuFnorm.cxx:998
 AliAnalysisMuMuFnorm.cxx:999
 AliAnalysisMuMuFnorm.cxx:1000
 AliAnalysisMuMuFnorm.cxx:1001
 AliAnalysisMuMuFnorm.cxx:1002
 AliAnalysisMuMuFnorm.cxx:1003
 AliAnalysisMuMuFnorm.cxx:1004
 AliAnalysisMuMuFnorm.cxx:1005
 AliAnalysisMuMuFnorm.cxx:1006
 AliAnalysisMuMuFnorm.cxx:1007
 AliAnalysisMuMuFnorm.cxx:1008
 AliAnalysisMuMuFnorm.cxx:1009
 AliAnalysisMuMuFnorm.cxx:1010
 AliAnalysisMuMuFnorm.cxx:1011
 AliAnalysisMuMuFnorm.cxx:1012
 AliAnalysisMuMuFnorm.cxx:1013
 AliAnalysisMuMuFnorm.cxx:1014
 AliAnalysisMuMuFnorm.cxx:1015
 AliAnalysisMuMuFnorm.cxx:1016
 AliAnalysisMuMuFnorm.cxx:1017
 AliAnalysisMuMuFnorm.cxx:1018
 AliAnalysisMuMuFnorm.cxx:1019
 AliAnalysisMuMuFnorm.cxx:1020
 AliAnalysisMuMuFnorm.cxx:1021
 AliAnalysisMuMuFnorm.cxx:1022
 AliAnalysisMuMuFnorm.cxx:1023
 AliAnalysisMuMuFnorm.cxx:1024
 AliAnalysisMuMuFnorm.cxx:1025
 AliAnalysisMuMuFnorm.cxx:1026
 AliAnalysisMuMuFnorm.cxx:1027
 AliAnalysisMuMuFnorm.cxx:1028
 AliAnalysisMuMuFnorm.cxx:1029
 AliAnalysisMuMuFnorm.cxx:1030
 AliAnalysisMuMuFnorm.cxx:1031
 AliAnalysisMuMuFnorm.cxx:1032
 AliAnalysisMuMuFnorm.cxx:1033
 AliAnalysisMuMuFnorm.cxx:1034
 AliAnalysisMuMuFnorm.cxx:1035
 AliAnalysisMuMuFnorm.cxx:1036
 AliAnalysisMuMuFnorm.cxx:1037
 AliAnalysisMuMuFnorm.cxx:1038
 AliAnalysisMuMuFnorm.cxx:1039
 AliAnalysisMuMuFnorm.cxx:1040
 AliAnalysisMuMuFnorm.cxx:1041
 AliAnalysisMuMuFnorm.cxx:1042
 AliAnalysisMuMuFnorm.cxx:1043
 AliAnalysisMuMuFnorm.cxx:1044
 AliAnalysisMuMuFnorm.cxx:1045
 AliAnalysisMuMuFnorm.cxx:1046
 AliAnalysisMuMuFnorm.cxx:1047
 AliAnalysisMuMuFnorm.cxx:1048
 AliAnalysisMuMuFnorm.cxx:1049
 AliAnalysisMuMuFnorm.cxx:1050
 AliAnalysisMuMuFnorm.cxx:1051
 AliAnalysisMuMuFnorm.cxx:1052
 AliAnalysisMuMuFnorm.cxx:1053
 AliAnalysisMuMuFnorm.cxx:1054
 AliAnalysisMuMuFnorm.cxx:1055
 AliAnalysisMuMuFnorm.cxx:1056
 AliAnalysisMuMuFnorm.cxx:1057
 AliAnalysisMuMuFnorm.cxx:1058
 AliAnalysisMuMuFnorm.cxx:1059
 AliAnalysisMuMuFnorm.cxx:1060
 AliAnalysisMuMuFnorm.cxx:1061
 AliAnalysisMuMuFnorm.cxx:1062
 AliAnalysisMuMuFnorm.cxx:1063
 AliAnalysisMuMuFnorm.cxx:1064
 AliAnalysisMuMuFnorm.cxx:1065
 AliAnalysisMuMuFnorm.cxx:1066
 AliAnalysisMuMuFnorm.cxx:1067
 AliAnalysisMuMuFnorm.cxx:1068
 AliAnalysisMuMuFnorm.cxx:1069
 AliAnalysisMuMuFnorm.cxx:1070
 AliAnalysisMuMuFnorm.cxx:1071
 AliAnalysisMuMuFnorm.cxx:1072
 AliAnalysisMuMuFnorm.cxx:1073
 AliAnalysisMuMuFnorm.cxx:1074
 AliAnalysisMuMuFnorm.cxx:1075
 AliAnalysisMuMuFnorm.cxx:1076
 AliAnalysisMuMuFnorm.cxx:1077
 AliAnalysisMuMuFnorm.cxx:1078
 AliAnalysisMuMuFnorm.cxx:1079
 AliAnalysisMuMuFnorm.cxx:1080
 AliAnalysisMuMuFnorm.cxx:1081
 AliAnalysisMuMuFnorm.cxx:1082
 AliAnalysisMuMuFnorm.cxx:1083
 AliAnalysisMuMuFnorm.cxx:1084
 AliAnalysisMuMuFnorm.cxx:1085
 AliAnalysisMuMuFnorm.cxx:1086
 AliAnalysisMuMuFnorm.cxx:1087
 AliAnalysisMuMuFnorm.cxx:1088
 AliAnalysisMuMuFnorm.cxx:1089
 AliAnalysisMuMuFnorm.cxx:1090
 AliAnalysisMuMuFnorm.cxx:1091
 AliAnalysisMuMuFnorm.cxx:1092
 AliAnalysisMuMuFnorm.cxx:1093
 AliAnalysisMuMuFnorm.cxx:1094
 AliAnalysisMuMuFnorm.cxx:1095
 AliAnalysisMuMuFnorm.cxx:1096
 AliAnalysisMuMuFnorm.cxx:1097
 AliAnalysisMuMuFnorm.cxx:1098
 AliAnalysisMuMuFnorm.cxx:1099
 AliAnalysisMuMuFnorm.cxx:1100
 AliAnalysisMuMuFnorm.cxx:1101
 AliAnalysisMuMuFnorm.cxx:1102
 AliAnalysisMuMuFnorm.cxx:1103
 AliAnalysisMuMuFnorm.cxx:1104
 AliAnalysisMuMuFnorm.cxx:1105
 AliAnalysisMuMuFnorm.cxx:1106
 AliAnalysisMuMuFnorm.cxx:1107
 AliAnalysisMuMuFnorm.cxx:1108
 AliAnalysisMuMuFnorm.cxx:1109
 AliAnalysisMuMuFnorm.cxx:1110
 AliAnalysisMuMuFnorm.cxx:1111
 AliAnalysisMuMuFnorm.cxx:1112
 AliAnalysisMuMuFnorm.cxx:1113
 AliAnalysisMuMuFnorm.cxx:1114
 AliAnalysisMuMuFnorm.cxx:1115
 AliAnalysisMuMuFnorm.cxx:1116
 AliAnalysisMuMuFnorm.cxx:1117
 AliAnalysisMuMuFnorm.cxx:1118
 AliAnalysisMuMuFnorm.cxx:1119
 AliAnalysisMuMuFnorm.cxx:1120
 AliAnalysisMuMuFnorm.cxx:1121
 AliAnalysisMuMuFnorm.cxx:1122
 AliAnalysisMuMuFnorm.cxx:1123
 AliAnalysisMuMuFnorm.cxx:1124
 AliAnalysisMuMuFnorm.cxx:1125
 AliAnalysisMuMuFnorm.cxx:1126
 AliAnalysisMuMuFnorm.cxx:1127
 AliAnalysisMuMuFnorm.cxx:1128
 AliAnalysisMuMuFnorm.cxx:1129
 AliAnalysisMuMuFnorm.cxx:1130
 AliAnalysisMuMuFnorm.cxx:1131
 AliAnalysisMuMuFnorm.cxx:1132
 AliAnalysisMuMuFnorm.cxx:1133
 AliAnalysisMuMuFnorm.cxx:1134
 AliAnalysisMuMuFnorm.cxx:1135
 AliAnalysisMuMuFnorm.cxx:1136
 AliAnalysisMuMuFnorm.cxx:1137
 AliAnalysisMuMuFnorm.cxx:1138
 AliAnalysisMuMuFnorm.cxx:1139
 AliAnalysisMuMuFnorm.cxx:1140
 AliAnalysisMuMuFnorm.cxx:1141
 AliAnalysisMuMuFnorm.cxx:1142
 AliAnalysisMuMuFnorm.cxx:1143
 AliAnalysisMuMuFnorm.cxx:1144
 AliAnalysisMuMuFnorm.cxx:1145
 AliAnalysisMuMuFnorm.cxx:1146
 AliAnalysisMuMuFnorm.cxx:1147
 AliAnalysisMuMuFnorm.cxx:1148
 AliAnalysisMuMuFnorm.cxx:1149
 AliAnalysisMuMuFnorm.cxx:1150
 AliAnalysisMuMuFnorm.cxx:1151
 AliAnalysisMuMuFnorm.cxx:1152
 AliAnalysisMuMuFnorm.cxx:1153
 AliAnalysisMuMuFnorm.cxx:1154
 AliAnalysisMuMuFnorm.cxx:1155
 AliAnalysisMuMuFnorm.cxx:1156
 AliAnalysisMuMuFnorm.cxx:1157
 AliAnalysisMuMuFnorm.cxx:1158
 AliAnalysisMuMuFnorm.cxx:1159
 AliAnalysisMuMuFnorm.cxx:1160
 AliAnalysisMuMuFnorm.cxx:1161
 AliAnalysisMuMuFnorm.cxx:1162
 AliAnalysisMuMuFnorm.cxx:1163
 AliAnalysisMuMuFnorm.cxx:1164
 AliAnalysisMuMuFnorm.cxx:1165
 AliAnalysisMuMuFnorm.cxx:1166
 AliAnalysisMuMuFnorm.cxx:1167
 AliAnalysisMuMuFnorm.cxx:1168
 AliAnalysisMuMuFnorm.cxx:1169
 AliAnalysisMuMuFnorm.cxx:1170
 AliAnalysisMuMuFnorm.cxx:1171
 AliAnalysisMuMuFnorm.cxx:1172
 AliAnalysisMuMuFnorm.cxx:1173
 AliAnalysisMuMuFnorm.cxx:1174
 AliAnalysisMuMuFnorm.cxx:1175
 AliAnalysisMuMuFnorm.cxx:1176
 AliAnalysisMuMuFnorm.cxx:1177
 AliAnalysisMuMuFnorm.cxx:1178
 AliAnalysisMuMuFnorm.cxx:1179
 AliAnalysisMuMuFnorm.cxx:1180
 AliAnalysisMuMuFnorm.cxx:1181
 AliAnalysisMuMuFnorm.cxx:1182
 AliAnalysisMuMuFnorm.cxx:1183
 AliAnalysisMuMuFnorm.cxx:1184
 AliAnalysisMuMuFnorm.cxx:1185
 AliAnalysisMuMuFnorm.cxx:1186
 AliAnalysisMuMuFnorm.cxx:1187
 AliAnalysisMuMuFnorm.cxx:1188
 AliAnalysisMuMuFnorm.cxx:1189
 AliAnalysisMuMuFnorm.cxx:1190
 AliAnalysisMuMuFnorm.cxx:1191
 AliAnalysisMuMuFnorm.cxx:1192
 AliAnalysisMuMuFnorm.cxx:1193
 AliAnalysisMuMuFnorm.cxx:1194
 AliAnalysisMuMuFnorm.cxx:1195
 AliAnalysisMuMuFnorm.cxx:1196
 AliAnalysisMuMuFnorm.cxx:1197
 AliAnalysisMuMuFnorm.cxx:1198
 AliAnalysisMuMuFnorm.cxx:1199
 AliAnalysisMuMuFnorm.cxx:1200
 AliAnalysisMuMuFnorm.cxx:1201
 AliAnalysisMuMuFnorm.cxx:1202
 AliAnalysisMuMuFnorm.cxx:1203
 AliAnalysisMuMuFnorm.cxx:1204
 AliAnalysisMuMuFnorm.cxx:1205
 AliAnalysisMuMuFnorm.cxx:1206
 AliAnalysisMuMuFnorm.cxx:1207
 AliAnalysisMuMuFnorm.cxx:1208
 AliAnalysisMuMuFnorm.cxx:1209
 AliAnalysisMuMuFnorm.cxx:1210
 AliAnalysisMuMuFnorm.cxx:1211
 AliAnalysisMuMuFnorm.cxx:1212
 AliAnalysisMuMuFnorm.cxx:1213
 AliAnalysisMuMuFnorm.cxx:1214
 AliAnalysisMuMuFnorm.cxx:1215
 AliAnalysisMuMuFnorm.cxx:1216
 AliAnalysisMuMuFnorm.cxx:1217
 AliAnalysisMuMuFnorm.cxx:1218
 AliAnalysisMuMuFnorm.cxx:1219
 AliAnalysisMuMuFnorm.cxx:1220
 AliAnalysisMuMuFnorm.cxx:1221
 AliAnalysisMuMuFnorm.cxx:1222
 AliAnalysisMuMuFnorm.cxx:1223
 AliAnalysisMuMuFnorm.cxx:1224
 AliAnalysisMuMuFnorm.cxx:1225
 AliAnalysisMuMuFnorm.cxx:1226
 AliAnalysisMuMuFnorm.cxx:1227
 AliAnalysisMuMuFnorm.cxx:1228
 AliAnalysisMuMuFnorm.cxx:1229
 AliAnalysisMuMuFnorm.cxx:1230
 AliAnalysisMuMuFnorm.cxx:1231
 AliAnalysisMuMuFnorm.cxx:1232
 AliAnalysisMuMuFnorm.cxx:1233
 AliAnalysisMuMuFnorm.cxx:1234
 AliAnalysisMuMuFnorm.cxx:1235
 AliAnalysisMuMuFnorm.cxx:1236
 AliAnalysisMuMuFnorm.cxx:1237
 AliAnalysisMuMuFnorm.cxx:1238
 AliAnalysisMuMuFnorm.cxx:1239
 AliAnalysisMuMuFnorm.cxx:1240
 AliAnalysisMuMuFnorm.cxx:1241
 AliAnalysisMuMuFnorm.cxx:1242
 AliAnalysisMuMuFnorm.cxx:1243
 AliAnalysisMuMuFnorm.cxx:1244
 AliAnalysisMuMuFnorm.cxx:1245
 AliAnalysisMuMuFnorm.cxx:1246
 AliAnalysisMuMuFnorm.cxx:1247
 AliAnalysisMuMuFnorm.cxx:1248
 AliAnalysisMuMuFnorm.cxx:1249
 AliAnalysisMuMuFnorm.cxx:1250
 AliAnalysisMuMuFnorm.cxx:1251
 AliAnalysisMuMuFnorm.cxx:1252
 AliAnalysisMuMuFnorm.cxx:1253
 AliAnalysisMuMuFnorm.cxx:1254
 AliAnalysisMuMuFnorm.cxx:1255
 AliAnalysisMuMuFnorm.cxx:1256
 AliAnalysisMuMuFnorm.cxx:1257
 AliAnalysisMuMuFnorm.cxx:1258
 AliAnalysisMuMuFnorm.cxx:1259
 AliAnalysisMuMuFnorm.cxx:1260
 AliAnalysisMuMuFnorm.cxx:1261
 AliAnalysisMuMuFnorm.cxx:1262
 AliAnalysisMuMuFnorm.cxx:1263
 AliAnalysisMuMuFnorm.cxx:1264
 AliAnalysisMuMuFnorm.cxx:1265
 AliAnalysisMuMuFnorm.cxx:1266
 AliAnalysisMuMuFnorm.cxx:1267
 AliAnalysisMuMuFnorm.cxx:1268
 AliAnalysisMuMuFnorm.cxx:1269
 AliAnalysisMuMuFnorm.cxx:1270
 AliAnalysisMuMuFnorm.cxx:1271
 AliAnalysisMuMuFnorm.cxx:1272
 AliAnalysisMuMuFnorm.cxx:1273
 AliAnalysisMuMuFnorm.cxx:1274
 AliAnalysisMuMuFnorm.cxx:1275
 AliAnalysisMuMuFnorm.cxx:1276
 AliAnalysisMuMuFnorm.cxx:1277
 AliAnalysisMuMuFnorm.cxx:1278
 AliAnalysisMuMuFnorm.cxx:1279
 AliAnalysisMuMuFnorm.cxx:1280
 AliAnalysisMuMuFnorm.cxx:1281
 AliAnalysisMuMuFnorm.cxx:1282
 AliAnalysisMuMuFnorm.cxx:1283
 AliAnalysisMuMuFnorm.cxx:1284
 AliAnalysisMuMuFnorm.cxx:1285
 AliAnalysisMuMuFnorm.cxx:1286
 AliAnalysisMuMuFnorm.cxx:1287
 AliAnalysisMuMuFnorm.cxx:1288
 AliAnalysisMuMuFnorm.cxx:1289
 AliAnalysisMuMuFnorm.cxx:1290
 AliAnalysisMuMuFnorm.cxx:1291
 AliAnalysisMuMuFnorm.cxx:1292
 AliAnalysisMuMuFnorm.cxx:1293
 AliAnalysisMuMuFnorm.cxx:1294
 AliAnalysisMuMuFnorm.cxx:1295
 AliAnalysisMuMuFnorm.cxx:1296
 AliAnalysisMuMuFnorm.cxx:1297
 AliAnalysisMuMuFnorm.cxx:1298
 AliAnalysisMuMuFnorm.cxx:1299
 AliAnalysisMuMuFnorm.cxx:1300
 AliAnalysisMuMuFnorm.cxx:1301
 AliAnalysisMuMuFnorm.cxx:1302
 AliAnalysisMuMuFnorm.cxx:1303
 AliAnalysisMuMuFnorm.cxx:1304
 AliAnalysisMuMuFnorm.cxx:1305
 AliAnalysisMuMuFnorm.cxx:1306
 AliAnalysisMuMuFnorm.cxx:1307
 AliAnalysisMuMuFnorm.cxx:1308
 AliAnalysisMuMuFnorm.cxx:1309
 AliAnalysisMuMuFnorm.cxx:1310
 AliAnalysisMuMuFnorm.cxx:1311
 AliAnalysisMuMuFnorm.cxx:1312
 AliAnalysisMuMuFnorm.cxx:1313
 AliAnalysisMuMuFnorm.cxx:1314
 AliAnalysisMuMuFnorm.cxx:1315
 AliAnalysisMuMuFnorm.cxx:1316
 AliAnalysisMuMuFnorm.cxx:1317
 AliAnalysisMuMuFnorm.cxx:1318
 AliAnalysisMuMuFnorm.cxx:1319
 AliAnalysisMuMuFnorm.cxx:1320
 AliAnalysisMuMuFnorm.cxx:1321
 AliAnalysisMuMuFnorm.cxx:1322
 AliAnalysisMuMuFnorm.cxx:1323
 AliAnalysisMuMuFnorm.cxx:1324
 AliAnalysisMuMuFnorm.cxx:1325
 AliAnalysisMuMuFnorm.cxx:1326
 AliAnalysisMuMuFnorm.cxx:1327
 AliAnalysisMuMuFnorm.cxx:1328
 AliAnalysisMuMuFnorm.cxx:1329
 AliAnalysisMuMuFnorm.cxx:1330
 AliAnalysisMuMuFnorm.cxx:1331
 AliAnalysisMuMuFnorm.cxx:1332
 AliAnalysisMuMuFnorm.cxx:1333
 AliAnalysisMuMuFnorm.cxx:1334
 AliAnalysisMuMuFnorm.cxx:1335
 AliAnalysisMuMuFnorm.cxx:1336
 AliAnalysisMuMuFnorm.cxx:1337
 AliAnalysisMuMuFnorm.cxx:1338
 AliAnalysisMuMuFnorm.cxx:1339
 AliAnalysisMuMuFnorm.cxx:1340
 AliAnalysisMuMuFnorm.cxx:1341
 AliAnalysisMuMuFnorm.cxx:1342
 AliAnalysisMuMuFnorm.cxx:1343
 AliAnalysisMuMuFnorm.cxx:1344
 AliAnalysisMuMuFnorm.cxx:1345
 AliAnalysisMuMuFnorm.cxx:1346
 AliAnalysisMuMuFnorm.cxx:1347
 AliAnalysisMuMuFnorm.cxx:1348
 AliAnalysisMuMuFnorm.cxx:1349
 AliAnalysisMuMuFnorm.cxx:1350
 AliAnalysisMuMuFnorm.cxx:1351
 AliAnalysisMuMuFnorm.cxx:1352
 AliAnalysisMuMuFnorm.cxx:1353
 AliAnalysisMuMuFnorm.cxx:1354
 AliAnalysisMuMuFnorm.cxx:1355
 AliAnalysisMuMuFnorm.cxx:1356
 AliAnalysisMuMuFnorm.cxx:1357
 AliAnalysisMuMuFnorm.cxx:1358
 AliAnalysisMuMuFnorm.cxx:1359
 AliAnalysisMuMuFnorm.cxx:1360
 AliAnalysisMuMuFnorm.cxx:1361
 AliAnalysisMuMuFnorm.cxx:1362
 AliAnalysisMuMuFnorm.cxx:1363
 AliAnalysisMuMuFnorm.cxx:1364
 AliAnalysisMuMuFnorm.cxx:1365
 AliAnalysisMuMuFnorm.cxx:1366
 AliAnalysisMuMuFnorm.cxx:1367
 AliAnalysisMuMuFnorm.cxx:1368
 AliAnalysisMuMuFnorm.cxx:1369
 AliAnalysisMuMuFnorm.cxx:1370
 AliAnalysisMuMuFnorm.cxx:1371
 AliAnalysisMuMuFnorm.cxx:1372
 AliAnalysisMuMuFnorm.cxx:1373
 AliAnalysisMuMuFnorm.cxx:1374
 AliAnalysisMuMuFnorm.cxx:1375
 AliAnalysisMuMuFnorm.cxx:1376
 AliAnalysisMuMuFnorm.cxx:1377
 AliAnalysisMuMuFnorm.cxx:1378
 AliAnalysisMuMuFnorm.cxx:1379
 AliAnalysisMuMuFnorm.cxx:1380
 AliAnalysisMuMuFnorm.cxx:1381
 AliAnalysisMuMuFnorm.cxx:1382
 AliAnalysisMuMuFnorm.cxx:1383
 AliAnalysisMuMuFnorm.cxx:1384
 AliAnalysisMuMuFnorm.cxx:1385
 AliAnalysisMuMuFnorm.cxx:1386
 AliAnalysisMuMuFnorm.cxx:1387
 AliAnalysisMuMuFnorm.cxx:1388
 AliAnalysisMuMuFnorm.cxx:1389
 AliAnalysisMuMuFnorm.cxx:1390
 AliAnalysisMuMuFnorm.cxx:1391
 AliAnalysisMuMuFnorm.cxx:1392
 AliAnalysisMuMuFnorm.cxx:1393
 AliAnalysisMuMuFnorm.cxx:1394
 AliAnalysisMuMuFnorm.cxx:1395
 AliAnalysisMuMuFnorm.cxx:1396
 AliAnalysisMuMuFnorm.cxx:1397
 AliAnalysisMuMuFnorm.cxx:1398
 AliAnalysisMuMuFnorm.cxx:1399
 AliAnalysisMuMuFnorm.cxx:1400
 AliAnalysisMuMuFnorm.cxx:1401
 AliAnalysisMuMuFnorm.cxx:1402
 AliAnalysisMuMuFnorm.cxx:1403
 AliAnalysisMuMuFnorm.cxx:1404
 AliAnalysisMuMuFnorm.cxx:1405
 AliAnalysisMuMuFnorm.cxx:1406
 AliAnalysisMuMuFnorm.cxx:1407
 AliAnalysisMuMuFnorm.cxx:1408
 AliAnalysisMuMuFnorm.cxx:1409
 AliAnalysisMuMuFnorm.cxx:1410
 AliAnalysisMuMuFnorm.cxx:1411
 AliAnalysisMuMuFnorm.cxx:1412
 AliAnalysisMuMuFnorm.cxx:1413
 AliAnalysisMuMuFnorm.cxx:1414
 AliAnalysisMuMuFnorm.cxx:1415
 AliAnalysisMuMuFnorm.cxx:1416
 AliAnalysisMuMuFnorm.cxx:1417
 AliAnalysisMuMuFnorm.cxx:1418
 AliAnalysisMuMuFnorm.cxx:1419
 AliAnalysisMuMuFnorm.cxx:1420
 AliAnalysisMuMuFnorm.cxx:1421
 AliAnalysisMuMuFnorm.cxx:1422
 AliAnalysisMuMuFnorm.cxx:1423
 AliAnalysisMuMuFnorm.cxx:1424
 AliAnalysisMuMuFnorm.cxx:1425
 AliAnalysisMuMuFnorm.cxx:1426
 AliAnalysisMuMuFnorm.cxx:1427
 AliAnalysisMuMuFnorm.cxx:1428
 AliAnalysisMuMuFnorm.cxx:1429
 AliAnalysisMuMuFnorm.cxx:1430
 AliAnalysisMuMuFnorm.cxx:1431
 AliAnalysisMuMuFnorm.cxx:1432
 AliAnalysisMuMuFnorm.cxx:1433
 AliAnalysisMuMuFnorm.cxx:1434
 AliAnalysisMuMuFnorm.cxx:1435
 AliAnalysisMuMuFnorm.cxx:1436
 AliAnalysisMuMuFnorm.cxx:1437
 AliAnalysisMuMuFnorm.cxx:1438
 AliAnalysisMuMuFnorm.cxx:1439
 AliAnalysisMuMuFnorm.cxx:1440
 AliAnalysisMuMuFnorm.cxx:1441
 AliAnalysisMuMuFnorm.cxx:1442
 AliAnalysisMuMuFnorm.cxx:1443
 AliAnalysisMuMuFnorm.cxx:1444
 AliAnalysisMuMuFnorm.cxx:1445
 AliAnalysisMuMuFnorm.cxx:1446
 AliAnalysisMuMuFnorm.cxx:1447
 AliAnalysisMuMuFnorm.cxx:1448
 AliAnalysisMuMuFnorm.cxx:1449
 AliAnalysisMuMuFnorm.cxx:1450
 AliAnalysisMuMuFnorm.cxx:1451
 AliAnalysisMuMuFnorm.cxx:1452
 AliAnalysisMuMuFnorm.cxx:1453
 AliAnalysisMuMuFnorm.cxx:1454
 AliAnalysisMuMuFnorm.cxx:1455
 AliAnalysisMuMuFnorm.cxx:1456
 AliAnalysisMuMuFnorm.cxx:1457
 AliAnalysisMuMuFnorm.cxx:1458
 AliAnalysisMuMuFnorm.cxx:1459
 AliAnalysisMuMuFnorm.cxx:1460
 AliAnalysisMuMuFnorm.cxx:1461
 AliAnalysisMuMuFnorm.cxx:1462
 AliAnalysisMuMuFnorm.cxx:1463
 AliAnalysisMuMuFnorm.cxx:1464
 AliAnalysisMuMuFnorm.cxx:1465
 AliAnalysisMuMuFnorm.cxx:1466
 AliAnalysisMuMuFnorm.cxx:1467
 AliAnalysisMuMuFnorm.cxx:1468
 AliAnalysisMuMuFnorm.cxx:1469
 AliAnalysisMuMuFnorm.cxx:1470
 AliAnalysisMuMuFnorm.cxx:1471
 AliAnalysisMuMuFnorm.cxx:1472
 AliAnalysisMuMuFnorm.cxx:1473
 AliAnalysisMuMuFnorm.cxx:1474
 AliAnalysisMuMuFnorm.cxx:1475
 AliAnalysisMuMuFnorm.cxx:1476
 AliAnalysisMuMuFnorm.cxx:1477
 AliAnalysisMuMuFnorm.cxx:1478
 AliAnalysisMuMuFnorm.cxx:1479
 AliAnalysisMuMuFnorm.cxx:1480
 AliAnalysisMuMuFnorm.cxx:1481
 AliAnalysisMuMuFnorm.cxx:1482
 AliAnalysisMuMuFnorm.cxx:1483
 AliAnalysisMuMuFnorm.cxx:1484
 AliAnalysisMuMuFnorm.cxx:1485
 AliAnalysisMuMuFnorm.cxx:1486
 AliAnalysisMuMuFnorm.cxx:1487
 AliAnalysisMuMuFnorm.cxx:1488
 AliAnalysisMuMuFnorm.cxx:1489
 AliAnalysisMuMuFnorm.cxx:1490
 AliAnalysisMuMuFnorm.cxx:1491
 AliAnalysisMuMuFnorm.cxx:1492
 AliAnalysisMuMuFnorm.cxx:1493
 AliAnalysisMuMuFnorm.cxx:1494
 AliAnalysisMuMuFnorm.cxx:1495
 AliAnalysisMuMuFnorm.cxx:1496
 AliAnalysisMuMuFnorm.cxx:1497
 AliAnalysisMuMuFnorm.cxx:1498
 AliAnalysisMuMuFnorm.cxx:1499
 AliAnalysisMuMuFnorm.cxx:1500
 AliAnalysisMuMuFnorm.cxx:1501
 AliAnalysisMuMuFnorm.cxx:1502
 AliAnalysisMuMuFnorm.cxx:1503
 AliAnalysisMuMuFnorm.cxx:1504
 AliAnalysisMuMuFnorm.cxx:1505
 AliAnalysisMuMuFnorm.cxx:1506
 AliAnalysisMuMuFnorm.cxx:1507
 AliAnalysisMuMuFnorm.cxx:1508
 AliAnalysisMuMuFnorm.cxx:1509
 AliAnalysisMuMuFnorm.cxx:1510
 AliAnalysisMuMuFnorm.cxx:1511
 AliAnalysisMuMuFnorm.cxx:1512
 AliAnalysisMuMuFnorm.cxx:1513
 AliAnalysisMuMuFnorm.cxx:1514
 AliAnalysisMuMuFnorm.cxx:1515
 AliAnalysisMuMuFnorm.cxx:1516
 AliAnalysisMuMuFnorm.cxx:1517
 AliAnalysisMuMuFnorm.cxx:1518
 AliAnalysisMuMuFnorm.cxx:1519
 AliAnalysisMuMuFnorm.cxx:1520
 AliAnalysisMuMuFnorm.cxx:1521
 AliAnalysisMuMuFnorm.cxx:1522
 AliAnalysisMuMuFnorm.cxx:1523
 AliAnalysisMuMuFnorm.cxx:1524
 AliAnalysisMuMuFnorm.cxx:1525
 AliAnalysisMuMuFnorm.cxx:1526
 AliAnalysisMuMuFnorm.cxx:1527
 AliAnalysisMuMuFnorm.cxx:1528
 AliAnalysisMuMuFnorm.cxx:1529
 AliAnalysisMuMuFnorm.cxx:1530
 AliAnalysisMuMuFnorm.cxx:1531
 AliAnalysisMuMuFnorm.cxx:1532
 AliAnalysisMuMuFnorm.cxx:1533
 AliAnalysisMuMuFnorm.cxx:1534
 AliAnalysisMuMuFnorm.cxx:1535
 AliAnalysisMuMuFnorm.cxx:1536
 AliAnalysisMuMuFnorm.cxx:1537
 AliAnalysisMuMuFnorm.cxx:1538
 AliAnalysisMuMuFnorm.cxx:1539
 AliAnalysisMuMuFnorm.cxx:1540
 AliAnalysisMuMuFnorm.cxx:1541
 AliAnalysisMuMuFnorm.cxx:1542
 AliAnalysisMuMuFnorm.cxx:1543
 AliAnalysisMuMuFnorm.cxx:1544
 AliAnalysisMuMuFnorm.cxx:1545
 AliAnalysisMuMuFnorm.cxx:1546
 AliAnalysisMuMuFnorm.cxx:1547
 AliAnalysisMuMuFnorm.cxx:1548
 AliAnalysisMuMuFnorm.cxx:1549
 AliAnalysisMuMuFnorm.cxx:1550
 AliAnalysisMuMuFnorm.cxx:1551
 AliAnalysisMuMuFnorm.cxx:1552
 AliAnalysisMuMuFnorm.cxx:1553
 AliAnalysisMuMuFnorm.cxx:1554
 AliAnalysisMuMuFnorm.cxx:1555
 AliAnalysisMuMuFnorm.cxx:1556
 AliAnalysisMuMuFnorm.cxx:1557
 AliAnalysisMuMuFnorm.cxx:1558
 AliAnalysisMuMuFnorm.cxx:1559
 AliAnalysisMuMuFnorm.cxx:1560
 AliAnalysisMuMuFnorm.cxx:1561
 AliAnalysisMuMuFnorm.cxx:1562
 AliAnalysisMuMuFnorm.cxx:1563
 AliAnalysisMuMuFnorm.cxx:1564
 AliAnalysisMuMuFnorm.cxx:1565
 AliAnalysisMuMuFnorm.cxx:1566
 AliAnalysisMuMuFnorm.cxx:1567
 AliAnalysisMuMuFnorm.cxx:1568
 AliAnalysisMuMuFnorm.cxx:1569
 AliAnalysisMuMuFnorm.cxx:1570
 AliAnalysisMuMuFnorm.cxx:1571
 AliAnalysisMuMuFnorm.cxx:1572
 AliAnalysisMuMuFnorm.cxx:1573
 AliAnalysisMuMuFnorm.cxx:1574
 AliAnalysisMuMuFnorm.cxx:1575
 AliAnalysisMuMuFnorm.cxx:1576
 AliAnalysisMuMuFnorm.cxx:1577
 AliAnalysisMuMuFnorm.cxx:1578
 AliAnalysisMuMuFnorm.cxx:1579
 AliAnalysisMuMuFnorm.cxx:1580
 AliAnalysisMuMuFnorm.cxx:1581
 AliAnalysisMuMuFnorm.cxx:1582
 AliAnalysisMuMuFnorm.cxx:1583
 AliAnalysisMuMuFnorm.cxx:1584
 AliAnalysisMuMuFnorm.cxx:1585
 AliAnalysisMuMuFnorm.cxx:1586
 AliAnalysisMuMuFnorm.cxx:1587
 AliAnalysisMuMuFnorm.cxx:1588
 AliAnalysisMuMuFnorm.cxx:1589
 AliAnalysisMuMuFnorm.cxx:1590
 AliAnalysisMuMuFnorm.cxx:1591
 AliAnalysisMuMuFnorm.cxx:1592
 AliAnalysisMuMuFnorm.cxx:1593
 AliAnalysisMuMuFnorm.cxx:1594
 AliAnalysisMuMuFnorm.cxx:1595
 AliAnalysisMuMuFnorm.cxx:1596
 AliAnalysisMuMuFnorm.cxx:1597
 AliAnalysisMuMuFnorm.cxx:1598
 AliAnalysisMuMuFnorm.cxx:1599
 AliAnalysisMuMuFnorm.cxx:1600
 AliAnalysisMuMuFnorm.cxx:1601
 AliAnalysisMuMuFnorm.cxx:1602
 AliAnalysisMuMuFnorm.cxx:1603
 AliAnalysisMuMuFnorm.cxx:1604
 AliAnalysisMuMuFnorm.cxx:1605
 AliAnalysisMuMuFnorm.cxx:1606
 AliAnalysisMuMuFnorm.cxx:1607
 AliAnalysisMuMuFnorm.cxx:1608
 AliAnalysisMuMuFnorm.cxx:1609
 AliAnalysisMuMuFnorm.cxx:1610
 AliAnalysisMuMuFnorm.cxx:1611
 AliAnalysisMuMuFnorm.cxx:1612
 AliAnalysisMuMuFnorm.cxx:1613
 AliAnalysisMuMuFnorm.cxx:1614
 AliAnalysisMuMuFnorm.cxx:1615
 AliAnalysisMuMuFnorm.cxx:1616
 AliAnalysisMuMuFnorm.cxx:1617
 AliAnalysisMuMuFnorm.cxx:1618
 AliAnalysisMuMuFnorm.cxx:1619
 AliAnalysisMuMuFnorm.cxx:1620
 AliAnalysisMuMuFnorm.cxx:1621
 AliAnalysisMuMuFnorm.cxx:1622
 AliAnalysisMuMuFnorm.cxx:1623
 AliAnalysisMuMuFnorm.cxx:1624
 AliAnalysisMuMuFnorm.cxx:1625
 AliAnalysisMuMuFnorm.cxx:1626
 AliAnalysisMuMuFnorm.cxx:1627
 AliAnalysisMuMuFnorm.cxx:1628
 AliAnalysisMuMuFnorm.cxx:1629
 AliAnalysisMuMuFnorm.cxx:1630
 AliAnalysisMuMuFnorm.cxx:1631
 AliAnalysisMuMuFnorm.cxx:1632
 AliAnalysisMuMuFnorm.cxx:1633
 AliAnalysisMuMuFnorm.cxx:1634
 AliAnalysisMuMuFnorm.cxx:1635
 AliAnalysisMuMuFnorm.cxx:1636
 AliAnalysisMuMuFnorm.cxx:1637
 AliAnalysisMuMuFnorm.cxx:1638
 AliAnalysisMuMuFnorm.cxx:1639
 AliAnalysisMuMuFnorm.cxx:1640
 AliAnalysisMuMuFnorm.cxx:1641
 AliAnalysisMuMuFnorm.cxx:1642
 AliAnalysisMuMuFnorm.cxx:1643
 AliAnalysisMuMuFnorm.cxx:1644
 AliAnalysisMuMuFnorm.cxx:1645
 AliAnalysisMuMuFnorm.cxx:1646
 AliAnalysisMuMuFnorm.cxx:1647
 AliAnalysisMuMuFnorm.cxx:1648
 AliAnalysisMuMuFnorm.cxx:1649
 AliAnalysisMuMuFnorm.cxx:1650
 AliAnalysisMuMuFnorm.cxx:1651
 AliAnalysisMuMuFnorm.cxx:1652
 AliAnalysisMuMuFnorm.cxx:1653
 AliAnalysisMuMuFnorm.cxx:1654
 AliAnalysisMuMuFnorm.cxx:1655
 AliAnalysisMuMuFnorm.cxx:1656
 AliAnalysisMuMuFnorm.cxx:1657
 AliAnalysisMuMuFnorm.cxx:1658
 AliAnalysisMuMuFnorm.cxx:1659
 AliAnalysisMuMuFnorm.cxx:1660
 AliAnalysisMuMuFnorm.cxx:1661
 AliAnalysisMuMuFnorm.cxx:1662
 AliAnalysisMuMuFnorm.cxx:1663
 AliAnalysisMuMuFnorm.cxx:1664
 AliAnalysisMuMuFnorm.cxx:1665
 AliAnalysisMuMuFnorm.cxx:1666
 AliAnalysisMuMuFnorm.cxx:1667
 AliAnalysisMuMuFnorm.cxx:1668
 AliAnalysisMuMuFnorm.cxx:1669
 AliAnalysisMuMuFnorm.cxx:1670
 AliAnalysisMuMuFnorm.cxx:1671
 AliAnalysisMuMuFnorm.cxx:1672
 AliAnalysisMuMuFnorm.cxx:1673
 AliAnalysisMuMuFnorm.cxx:1674
 AliAnalysisMuMuFnorm.cxx:1675
 AliAnalysisMuMuFnorm.cxx:1676
 AliAnalysisMuMuFnorm.cxx:1677
 AliAnalysisMuMuFnorm.cxx:1678
 AliAnalysisMuMuFnorm.cxx:1679
 AliAnalysisMuMuFnorm.cxx:1680
 AliAnalysisMuMuFnorm.cxx:1681
 AliAnalysisMuMuFnorm.cxx:1682
 AliAnalysisMuMuFnorm.cxx:1683
 AliAnalysisMuMuFnorm.cxx:1684
 AliAnalysisMuMuFnorm.cxx:1685
 AliAnalysisMuMuFnorm.cxx:1686
 AliAnalysisMuMuFnorm.cxx:1687
 AliAnalysisMuMuFnorm.cxx:1688
 AliAnalysisMuMuFnorm.cxx:1689
 AliAnalysisMuMuFnorm.cxx:1690
 AliAnalysisMuMuFnorm.cxx:1691
 AliAnalysisMuMuFnorm.cxx:1692
 AliAnalysisMuMuFnorm.cxx:1693
 AliAnalysisMuMuFnorm.cxx:1694
 AliAnalysisMuMuFnorm.cxx:1695
 AliAnalysisMuMuFnorm.cxx:1696
 AliAnalysisMuMuFnorm.cxx:1697
 AliAnalysisMuMuFnorm.cxx:1698
 AliAnalysisMuMuFnorm.cxx:1699
 AliAnalysisMuMuFnorm.cxx:1700
 AliAnalysisMuMuFnorm.cxx:1701
 AliAnalysisMuMuFnorm.cxx:1702
 AliAnalysisMuMuFnorm.cxx:1703
 AliAnalysisMuMuFnorm.cxx:1704
 AliAnalysisMuMuFnorm.cxx:1705
 AliAnalysisMuMuFnorm.cxx:1706
 AliAnalysisMuMuFnorm.cxx:1707
 AliAnalysisMuMuFnorm.cxx:1708
 AliAnalysisMuMuFnorm.cxx:1709
 AliAnalysisMuMuFnorm.cxx:1710
 AliAnalysisMuMuFnorm.cxx:1711
 AliAnalysisMuMuFnorm.cxx:1712
 AliAnalysisMuMuFnorm.cxx:1713
 AliAnalysisMuMuFnorm.cxx:1714
 AliAnalysisMuMuFnorm.cxx:1715
 AliAnalysisMuMuFnorm.cxx:1716
 AliAnalysisMuMuFnorm.cxx:1717
 AliAnalysisMuMuFnorm.cxx:1718
 AliAnalysisMuMuFnorm.cxx:1719
 AliAnalysisMuMuFnorm.cxx:1720
 AliAnalysisMuMuFnorm.cxx:1721
 AliAnalysisMuMuFnorm.cxx:1722
 AliAnalysisMuMuFnorm.cxx:1723
 AliAnalysisMuMuFnorm.cxx:1724
 AliAnalysisMuMuFnorm.cxx:1725
 AliAnalysisMuMuFnorm.cxx:1726
 AliAnalysisMuMuFnorm.cxx:1727
 AliAnalysisMuMuFnorm.cxx:1728
 AliAnalysisMuMuFnorm.cxx:1729
 AliAnalysisMuMuFnorm.cxx:1730
 AliAnalysisMuMuFnorm.cxx:1731
 AliAnalysisMuMuFnorm.cxx:1732
 AliAnalysisMuMuFnorm.cxx:1733
 AliAnalysisMuMuFnorm.cxx:1734
 AliAnalysisMuMuFnorm.cxx:1735
 AliAnalysisMuMuFnorm.cxx:1736
 AliAnalysisMuMuFnorm.cxx:1737
 AliAnalysisMuMuFnorm.cxx:1738
 AliAnalysisMuMuFnorm.cxx:1739
 AliAnalysisMuMuFnorm.cxx:1740
 AliAnalysisMuMuFnorm.cxx:1741
 AliAnalysisMuMuFnorm.cxx:1742
 AliAnalysisMuMuFnorm.cxx:1743
 AliAnalysisMuMuFnorm.cxx:1744
 AliAnalysisMuMuFnorm.cxx:1745
 AliAnalysisMuMuFnorm.cxx:1746
 AliAnalysisMuMuFnorm.cxx:1747
 AliAnalysisMuMuFnorm.cxx:1748
 AliAnalysisMuMuFnorm.cxx:1749
 AliAnalysisMuMuFnorm.cxx:1750
 AliAnalysisMuMuFnorm.cxx:1751
 AliAnalysisMuMuFnorm.cxx:1752
 AliAnalysisMuMuFnorm.cxx:1753
 AliAnalysisMuMuFnorm.cxx:1754
 AliAnalysisMuMuFnorm.cxx:1755
 AliAnalysisMuMuFnorm.cxx:1756
 AliAnalysisMuMuFnorm.cxx:1757
 AliAnalysisMuMuFnorm.cxx:1758
 AliAnalysisMuMuFnorm.cxx:1759
 AliAnalysisMuMuFnorm.cxx:1760
 AliAnalysisMuMuFnorm.cxx:1761
 AliAnalysisMuMuFnorm.cxx:1762
 AliAnalysisMuMuFnorm.cxx:1763
 AliAnalysisMuMuFnorm.cxx:1764
 AliAnalysisMuMuFnorm.cxx:1765
 AliAnalysisMuMuFnorm.cxx:1766
 AliAnalysisMuMuFnorm.cxx:1767
 AliAnalysisMuMuFnorm.cxx:1768
 AliAnalysisMuMuFnorm.cxx:1769
 AliAnalysisMuMuFnorm.cxx:1770
 AliAnalysisMuMuFnorm.cxx:1771
 AliAnalysisMuMuFnorm.cxx:1772
 AliAnalysisMuMuFnorm.cxx:1773
 AliAnalysisMuMuFnorm.cxx:1774
 AliAnalysisMuMuFnorm.cxx:1775
 AliAnalysisMuMuFnorm.cxx:1776
 AliAnalysisMuMuFnorm.cxx:1777
 AliAnalysisMuMuFnorm.cxx:1778
 AliAnalysisMuMuFnorm.cxx:1779
 AliAnalysisMuMuFnorm.cxx:1780
 AliAnalysisMuMuFnorm.cxx:1781
 AliAnalysisMuMuFnorm.cxx:1782
 AliAnalysisMuMuFnorm.cxx:1783
 AliAnalysisMuMuFnorm.cxx:1784
 AliAnalysisMuMuFnorm.cxx:1785
 AliAnalysisMuMuFnorm.cxx:1786
 AliAnalysisMuMuFnorm.cxx:1787
 AliAnalysisMuMuFnorm.cxx:1788
 AliAnalysisMuMuFnorm.cxx:1789
 AliAnalysisMuMuFnorm.cxx:1790
 AliAnalysisMuMuFnorm.cxx:1791
 AliAnalysisMuMuFnorm.cxx:1792
 AliAnalysisMuMuFnorm.cxx:1793
 AliAnalysisMuMuFnorm.cxx:1794
 AliAnalysisMuMuFnorm.cxx:1795
 AliAnalysisMuMuFnorm.cxx:1796
 AliAnalysisMuMuFnorm.cxx:1797
 AliAnalysisMuMuFnorm.cxx:1798
 AliAnalysisMuMuFnorm.cxx:1799
 AliAnalysisMuMuFnorm.cxx:1800
 AliAnalysisMuMuFnorm.cxx:1801
 AliAnalysisMuMuFnorm.cxx:1802
 AliAnalysisMuMuFnorm.cxx:1803
 AliAnalysisMuMuFnorm.cxx:1804
 AliAnalysisMuMuFnorm.cxx:1805
 AliAnalysisMuMuFnorm.cxx:1806
 AliAnalysisMuMuFnorm.cxx:1807
 AliAnalysisMuMuFnorm.cxx:1808
 AliAnalysisMuMuFnorm.cxx:1809
 AliAnalysisMuMuFnorm.cxx:1810
 AliAnalysisMuMuFnorm.cxx:1811
 AliAnalysisMuMuFnorm.cxx:1812
 AliAnalysisMuMuFnorm.cxx:1813
 AliAnalysisMuMuFnorm.cxx:1814
 AliAnalysisMuMuFnorm.cxx:1815
 AliAnalysisMuMuFnorm.cxx:1816
 AliAnalysisMuMuFnorm.cxx:1817
 AliAnalysisMuMuFnorm.cxx:1818
 AliAnalysisMuMuFnorm.cxx:1819
 AliAnalysisMuMuFnorm.cxx:1820
 AliAnalysisMuMuFnorm.cxx:1821
 AliAnalysisMuMuFnorm.cxx:1822
 AliAnalysisMuMuFnorm.cxx:1823
 AliAnalysisMuMuFnorm.cxx:1824
 AliAnalysisMuMuFnorm.cxx:1825
 AliAnalysisMuMuFnorm.cxx:1826
 AliAnalysisMuMuFnorm.cxx:1827
 AliAnalysisMuMuFnorm.cxx:1828
 AliAnalysisMuMuFnorm.cxx:1829
 AliAnalysisMuMuFnorm.cxx:1830
 AliAnalysisMuMuFnorm.cxx:1831
 AliAnalysisMuMuFnorm.cxx:1832
 AliAnalysisMuMuFnorm.cxx:1833
 AliAnalysisMuMuFnorm.cxx:1834
 AliAnalysisMuMuFnorm.cxx:1835
 AliAnalysisMuMuFnorm.cxx:1836
 AliAnalysisMuMuFnorm.cxx:1837
 AliAnalysisMuMuFnorm.cxx:1838
 AliAnalysisMuMuFnorm.cxx:1839
 AliAnalysisMuMuFnorm.cxx:1840
 AliAnalysisMuMuFnorm.cxx:1841
 AliAnalysisMuMuFnorm.cxx:1842
 AliAnalysisMuMuFnorm.cxx:1843
 AliAnalysisMuMuFnorm.cxx:1844
 AliAnalysisMuMuFnorm.cxx:1845
 AliAnalysisMuMuFnorm.cxx:1846
 AliAnalysisMuMuFnorm.cxx:1847
 AliAnalysisMuMuFnorm.cxx:1848
 AliAnalysisMuMuFnorm.cxx:1849
 AliAnalysisMuMuFnorm.cxx:1850
 AliAnalysisMuMuFnorm.cxx:1851
 AliAnalysisMuMuFnorm.cxx:1852
 AliAnalysisMuMuFnorm.cxx:1853