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.                  *
 **************************************************************************/

///
/// Base class to hold a set of results for the same quantity,
/// computed using various methods, each with their errors
///
/// author: Laurent Aphecetche (Subatech)
///

#include "AliAnalysisMuMuResult.h"

ClassImp(AliAnalysisMuMuResult)

#include "THashList.h"
#include "TLine.h"
#include "TList.h"
#include "TMap.h"
#include "TMath.h"
#include "TObjArray.h"
#include "TParameter.h"
#include "AliLog.h"
#include "TPRegexp.h"
#include <map>

//_____________________________________________________________________________
AliAnalysisMuMuResult::AliAnalysisMuMuResult(const char* name, const char* title, AliAnalysisMuMuResult::EResultMergingMethod mergingMethod) :
TNamed(name,title),
fSubResults(0x0),
fMap(0x0),
fMother(0x0),
fKeys(0x0),
fWeight(0.0),
fAlias(),
fSubResultsToBeIncluded(0x0),
fResultMergingMethod(mergingMethod),
fIsValid(kTRUE),
fVisibleKeys(0x0)
{
  /// default ctor
}

//_____________________________________________________________________________
AliAnalysisMuMuResult::AliAnalysisMuMuResult(const AliAnalysisMuMuResult& rhs)
:
TNamed(rhs),
fSubResults(0x0),
fMap(0x0),
fMother(0x0),
fKeys(0x0),
fWeight(rhs.fWeight),
fAlias(),
fSubResultsToBeIncluded(0x0),
fIsValid(kTRUE),
fVisibleKeys(0x0)
{
  /// copy ctor
  /// Note that the mother is lost
  /// fKeys remains 0x0 so it will be recomputed if need be

  if (rhs.fSubResults)
  {
    fSubResults = static_cast<TObjArray*>(rhs.fSubResults->Clone());
  }
  
  if ( rhs.fMap )
  {
    fMap = static_cast<TMap*>(rhs.fMap->Clone());
  }
  
  if ( rhs.fAlias.Length() > 0 )
  {
    fAlias = rhs.fAlias;
  }
  
  if ( rhs.fSubResultsToBeIncluded )
  {
    fSubResultsToBeIncluded = static_cast<TList*>(rhs.fSubResultsToBeIncluded->Clone());
  }

  if ( rhs.fVisibleKeys )
  {
    fVisibleKeys = static_cast<THashList*>(rhs.Clone());
  }
}

//_____________________________________________________________________________
AliAnalysisMuMuResult& AliAnalysisMuMuResult::operator=(const AliAnalysisMuMuResult& rhs)
{
  /// Assignment operator
  
  if (this!=&rhs)
  {
    delete fMap;
    delete fSubResults;
    delete fSubResultsToBeIncluded;
    
    fMap = 0x0;
    fSubResults = 0x0;
    fKeys = 0x0;
    fSubResultsToBeIncluded = 0x0;
    
    if (rhs.fSubResults)
    {
      fSubResults = static_cast<TObjArray*>(rhs.fSubResults->Clone());
    }
    
    if ( rhs.fMap )
    {
      fMap = static_cast<TMap*>(rhs.fMap->Clone());
    }

    if ( rhs.fSubResultsToBeIncluded )
    {
      fSubResultsToBeIncluded = static_cast<TList*>(rhs.fSubResultsToBeIncluded->Clone());
    }

    static_cast<TNamed&>(*this)=rhs;

    fWeight = rhs.fWeight;
    fAlias="";
    
    if ( rhs.fAlias.Length() > 0 )
    {
      fAlias = rhs.fAlias;
    }
    
    fIsValid = rhs.fIsValid;
    
    if ( rhs.fVisibleKeys )
    {
      fVisibleKeys = static_cast<THashList*>(rhs.Clone());
    }

  }
  
  return *this;
}

//_____________________________________________________________________________
AliAnalysisMuMuResult::~AliAnalysisMuMuResult()
{
  // dtor
  delete fMap;
  delete fSubResults;
  delete fKeys;
  delete fSubResultsToBeIncluded;
  delete fVisibleKeys;
}

//_____________________________________________________________________________
Bool_t AliAnalysisMuMuResult::AdoptSubResult(AliAnalysisMuMuResult* r)
{
  /// Adopt (i.e. becomes owner) of a subresult
  if (!fSubResults)
  {
    fSubResults = new TObjArray;
    fSubResults->SetOwner(kTRUE);
  }

  Int_t subresultsBeforeAdd = fSubResults->GetEntriesFast();
  
  fSubResults->Add(r);
  
  Int_t subresultsAfterAdd = fSubResults->GetEntriesFast();
  
  SubResultsToBeIncluded()->Add(new TObjString(r->Alias()));
  
  if ( subresultsBeforeAdd < subresultsAfterAdd ) return kTRUE;
  else return kFALSE;
}

//_____________________________________________________________________________
TObject* AliAnalysisMuMuResult::Clone(const char* /*newname*/) const
{
  /// Clone this result
  return new AliAnalysisMuMuResult(*this);
}


//_____________________________________________________________________________
Double_t AliAnalysisMuMuResult::ErrorAB(Double_t a, Double_t aerr, Double_t b, Double_t berr)
{
  /// Compute the quadratic sum of 2 errors

  Double_t e(0.0);
  
  if ( TMath::Abs(a) > 1E-12 )
  {
    e += (aerr*aerr)/(a*a);
  }
  
  if ( TMath::Abs(b) > 1E-12 )
  {
    e += (berr*berr)/(b*b);
  }
  
  return TMath::Sqrt(e);
}

//_____________________________________________________________________________
Double_t AliAnalysisMuMuResult::ErrorABC(Double_t a, Double_t aerr, Double_t b, Double_t berr, Double_t c, Double_t cerror)
{
  /// Compute the quadratic sum of 3 errors
  
  Double_t e(0.0);
  
  if ( TMath::Abs(a) > 1E-12 )
  {
    e += (aerr*aerr)/(a*a);
  }
  
  if ( TMath::Abs(b) > 1E-12 )
  {
    e += (berr*berr)/(b*b);
  }
  
  if ( TMath::Abs(c) > 1E-12 )
  {
    e += (cerror*cerror)/(c*c);
  }
  
  return TMath::Sqrt(e);
}

//_____________________________________________________________________________
Double_t AliAnalysisMuMuResult::ErrorABCD(Double_t a, Double_t aerr, Double_t b, Double_t berr, Double_t c, Double_t cerror, Double_t d, Double_t derror)
{
  /// Compute the quadratic sum of 4 errors
  
  Double_t e(0.0);
  
  if ( TMath::Abs(a) > 1E-12 )
  {
    e += (aerr*aerr)/(a*a);
  }
  
  if ( TMath::Abs(b) > 1E-12 )
  {
    e += (berr*berr)/(b*b);
  }
  
  if ( TMath::Abs(c) > 1E-12 )
  {
    e += (cerror*cerror)/(c*c);
  }

  if ( TMath::Abs(d) > 1E-12 )
  {
    e += (derror*derror)/(d*d);
  }

  return TMath::Sqrt(e);
}

//_____________________________________________________________________________
Double_t AliAnalysisMuMuResult::ErrorABCDE(Double_t a, Double_t aerr, Double_t b, Double_t berr, Double_t c, Double_t cerror, Double_t d, Double_t derror, Double_t ee, Double_t eeerror)
{
  /// Compute the quadratic sum of 4 errors
  
  Double_t e(0.0);
  
  if ( TMath::Abs(a) > 1E-12 )
  {
    e += (aerr*aerr)/(a*a);
  }
  
  if ( TMath::Abs(b) > 1E-12 )
  {
    e += (berr*berr)/(b*b);
  }
  
  if ( TMath::Abs(c) > 1E-12 )
  {
    e += (cerror*cerror)/(c*c);
  }
  
  if ( TMath::Abs(d) > 1E-12 )
  {
    e += (derror*derror)/(d*d);
  }

  if ( TMath::Abs(e) > 1E-12 )
  {
    e += (eeerror*eeerror)/(ee*ee);
  }

  return TMath::Sqrt(e);
}


//_____________________________________________________________________________
void AliAnalysisMuMuResult::Exclude(const char* subResultList)
{
  // exclude some subresult names from the list of subresult
  // to be used when computing the mean 
  
  TString slist(subResultList);
  
  TString tobeincluded = GetSubResultNameList();
  
  if ( slist == "*" )
  {
    Exclude(tobeincluded);
    return;
  }
  
  if ( fSubResultsToBeIncluded )
  {
    TObjArray* a = slist.Tokenize(",");
    TIter nextA(a);
    TObjString* s;

    while ( ( s = static_cast<TObjString*>(nextA())) )
    {
      TObject* o = fSubResultsToBeIncluded->FindObject(s->String());
      fSubResultsToBeIncluded->Remove(o);
    }
    
    delete a;
  }
}

//_____________________________________________________________________________
Double_t AliAnalysisMuMuResult::GetErrorStat(const char* name, const char* subResultName) const
{
  // compute the mean value from all subresults that are included
  
  if ( strlen(subResultName) > 0 )
  {
    if ( !fSubResults)
    {
      AliError(Form("No subresult from which I could get the %s one...",subResultName));
      return TMath::Limits<Double_t>::Max();
    }
    AliAnalysisMuMuResult* sub = static_cast<AliAnalysisMuMuResult*>(fSubResults->FindObject(subResultName));
    if (!sub)
    {
      AliError(Form("Could not get subresult named %s",subResultName));
      return TMath::Limits<Double_t>::Max();
    }
    return sub->GetErrorStat(name);
  }
  
  if ( fMap )
  {
    TObjArray* p = static_cast<TObjArray*>(fMap->GetValue(name));
    if (p)
    {
      TParameter<double>* val = static_cast<TParameter<double>*>(p->At(kErrorStat));
      return val->GetVal();
    }
  }
  
  TIter next(fSubResults);
  AliAnalysisMuMuResult* r;
  
  if ( fResultMergingMethod == kMean )
  {
    
    Int_t n(0);
//    Double_t v1(0);
//    Double_t v2(0);
//    Double_t d(0);
    
//    Double_t mean = GetValue(name);
    Double_t wval = 0, wval2 = 0, w2err2 = 0, sumw = 0;
    while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
    {
      if ( IsIncluded(r->Alias()) && r->HasValue(name) )
      {
        Double_t val = r->GetValue(name);
        Double_t err = r->GetErrorStat(name);
        // weight
        Double_t wstat = 1./val;
        Double_t w = 1./err/err/wstat;
        sumw += w;
        
        // mean
        wval += w*val;
        
        // stat
        w2err2 += w*w*err*err;
        
        // rms
        wval2 += w*val*val;
        
//        Double_t error = r->GetErrorStat(name);
//
//        Double_t e2 = error*error;
//        
//        if ( !(e2>0.0 ) ) e2 = TMath::Sqrt(r->GetValue(name));
//
//
//        v1 += 1.0/e2;
//        v2 += 1.0/(e2*e2);
//          
//        d += ( (r->GetValue(name) - mean)*(r->GetValue(name)-mean) / e2);
        ++n;
      }
    }
    
    if ( n<1 ) return 0.0;
    
    if ( n == 1 )
    {
      next.Reset();
      while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
      {
        if ( IsIncluded(r->Alias()) && r->HasValue(name) )
        {
          return r->GetErrorStat(name);
        }
      }
    }
    // results
//    mean = wval/sumw;
    return TMath::Sqrt(w2err2*n)/sumw;
//    sys = TMath::Sqrt(wval2/sumw - mean*mean);
    
//    Double_t variance= (1.0/v1)*(1.0/(n-1))*d;
//    // variance corrected by over/under-estimation of errors
//    // i.e. scaled by chisquare per ndf
    
//    return TMath::Sqrt(variance);
  }
  else
  {
    Double_t sume2(0.0);
    Double_t sum(0.0);
    Int_t n(0);
    
    while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
    {
      if ( IsIncluded(r->Alias()) && r->HasValue(name) )
      {
        Double_t e = r->GetErrorStat(name)/r->GetValue(name);
        sume2 += e*e;
        sum += r->GetValue(name);
        ++n;
      }
    }
    if (n)
    {
      return sum*TMath::Sqrt(sume2);
    }
    else
    {
      return TMath::Limits<Double_t>::Max();
    }
  }
  return TMath::Limits<Double_t>::Max();
}

//_____________________________________________________________________________
Double_t AliAnalysisMuMuResult::GetRMS(const char* name, const char* subResultName) const
{
  // compute the rms of the subresults
  // returns zero if no subresults

  if ( strlen(subResultName) > 0 )
  {
    if ( !fSubResults)
    {
      AliError(Form("No subresult from which I could get the %s one...",subResultName));
      return TMath::Limits<Double_t>::Max();
    }
    AliAnalysisMuMuResult* sub = static_cast<AliAnalysisMuMuResult*>(fSubResults->FindObject(subResultName));
    if (!sub)
    {
      AliError(Form("Could not get subresult named %s",subResultName));
      return TMath::Limits<Double_t>::Max();
    }
    return sub->GetRMS(name);
  }
  
  if ( fMap )
  {
    TObjArray* p = static_cast<TObjArray*>(fMap->GetValue(name));
    if (p)
    {
      TParameter<double>* val = static_cast<TParameter<double>*>(p->At(kRMS));
      return val ? val->GetVal() : 0.0; // val can be null for old results which did not have the rms set
    }
  }
  
  TIter next(fSubResults);
  AliAnalysisMuMuResult* r;
  Double_t v1(0);
  Double_t v2(0);
  Double_t sum(0);
  Int_t n(0);
  
  Double_t xmean = GetValue(name);
  
  while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
  {
    if ( IsIncluded(r->Alias()) && r->HasValue(name) )
    {
      Double_t e2 = r->GetErrorStat(name);
      
      e2 *= e2;
      
      if ( !(e2>0.0) ) e2 = TMath::Sqrt(r->GetValue(name));
      
      Double_t wi = 1.0/e2;
      v1 += wi;
      v2 += wi*wi;
      Double_t diff = r->GetValue(name) - xmean;
      sum += wi*diff*diff;
      ++n;
    }
  }
  
  if ( n < 1 ) return 0.0;
  
  if ( n == 1 )
  {
    next.Reset();
    while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
    {
      if ( IsIncluded(r->Alias()) && r->HasValue(name) )
      {
        return r->GetRMS(name);
      }
    }
  }
  
  Double_t unbiased = TMath::Sqrt( (v1/(v1*v1-v2)) * sum);
  
  Double_t biased = TMath::Sqrt( sum/v1 );
  
  AliDebug(1,Form("v1 %e v1*v1 %e v2 %e -> biased %e unbiased %e (ratio %e)",v1,v1*v1,v2,biased,unbiased,unbiased/biased));
  
  return unbiased;
}

//_____________________________________________________________________________
TString AliAnalysisMuMuResult::GetSubResultNameList() const
{
  // get a comma separated list of our subresult aliases
  TString tobeincluded;
  TIter next(fSubResults);
  AliAnalysisMuMuResult* r;
  
  while ( ( r = static_cast<AliAnalysisMuMuResult*>(next())) )
  {
    if (tobeincluded.Length()>0) tobeincluded+=",";
    tobeincluded += r->Alias();
  }
  return tobeincluded;
}

//_____________________________________________________________________________
Double_t AliAnalysisMuMuResult::GetValue(const char* name, const char* subResultName) const
{
  // get a value (either directly or by computing the mean of the subresults)
  
  if ( strlen(subResultName) > 0 )
  {
    if ( !fSubResults)
    {
      AliError(Form("No subresult from which I could get the %s one...",subResultName));
      return TMath::Limits<Double_t>::Max();
    }
    AliAnalysisMuMuResult* sub = static_cast<AliAnalysisMuMuResult*>(fSubResults->FindObject(subResultName));
    if (!sub)
    {
      AliError(Form("Could not get subresult named %s",subResultName));
      return TMath::Limits<Double_t>::Max();
    }
    return sub->GetValue(name);
  }
  
  if (fMap)
  {
    TObjArray* p = static_cast<TObjArray*>(fMap->GetValue(name));
    if (p)
    {
      TParameter<double>* val = static_cast<TParameter<double>*>(p->At(kValue));
      return val->GetVal();
    }
  }
  
  // merge the value from all subresults
  TIter next(fSubResults);
  AliAnalysisMuMuResult* r;
  
  if ( fResultMergingMethod == kMean )
  {
    Double_t mean(0);
    Double_t errorSum(0.0);

    while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
    {
      if ( IsIncluded(r->Alias()) && r->HasValue(name) )
      {
        Double_t e = r->GetErrorStat(name)/TMath::Sqrt(r->GetValue(name)); //The Sqrt(r->GetValue(name)) was not here before
        Double_t e2 = e*e;
        if ( !(e2>0.0 ) ) e2 = TMath::Sqrt(r->GetValue(name));

        mean += r->GetValue(name)/e2;
        errorSum += 1.0/e2;
      }
    }
    if ( errorSum != 0.0 )
    {
      return mean/errorSum;
    }
    else
    {
      return TMath::Limits<Double_t>::Max();
    }
  }
  else
  {
    Double_t sum(0.0);
    
    while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
    {
      if ( IsIncluded(r->Alias()) && r->HasValue(name) )
      {
        sum += r->GetValue(name);
      }
    }
    
    return sum;
  }
}

//_____________________________________________________________________________
Int_t AliAnalysisMuMuResult::HasValue(const char* name, const char* subResultName) const
{
  /// Whether this result (or subresult if subResultName is provided) has a property
  /// named "name"
  ///
  /// When having subresults, return the number of subresults that have this value
  ///
  
  if ( strlen(subResultName) > 0 )
  {
    if ( !fSubResults)
    {
      AliError(Form("No subresult from which I could get the %s one...",subResultName));
      return 0;
    }
    AliAnalysisMuMuResult* sub = static_cast<AliAnalysisMuMuResult*>(fSubResults->FindObject(subResultName));
    if (!sub)
    {
      AliError(Form("Could not get subresult named %s",subResultName));
      return 0;
    }
    return sub->HasValue(name);
  }

  if ( fMap && ( fMap->GetValue(name) != 0x0 ) )
  {
    return 1;
  }
  
  TIter next(fSubResults);
  AliAnalysisMuMuResult* r;
  Int_t n(0);
  
  while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
  {
    if ( r->HasValue(name) ) ++n;
  }
  
  return n;
}

//_____________________________________________________________________________
void AliAnalysisMuMuResult::Hide(const char* keyPattern)
{
  /// Specify which keys will be hidden in the Print method...
  
  if (!fVisibleKeys)
  {
    fVisibleKeys = new THashList;
    fVisibleKeys->SetOwner(kTRUE);
  }
  fVisibleKeys->Clear();
  
  TIter next(fSubResults);
  AliAnalysisMuMuResult* r;
  while ( ( r = static_cast<AliAnalysisMuMuResult*>(next())) )
  {
    r->Hide(keyPattern);
  }
  
  TIter nextKey(Keys());
  TObjString* str;
  
  TPRegexp re(keyPattern);
  
  while ( ( str = static_cast<TObjString*>(nextKey()) ) )
  {
    if ( !re.MatchB(str->String()) )
    {
      fVisibleKeys->Add(new TObjString(*str));
    }
  }
  
}
//_____________________________________________________________________________
void AliAnalysisMuMuResult::Include(const char* subResultList)
{
  // (re)include some subresult names
  
  TString slist(subResultList);

  if ( slist.Length()==0 )
  {
    Exclude("*");
    return;
  }
  
  if ( slist == "*" )
  {
    slist = GetSubResultNameList();
  }

  TObjArray* a = slist.Tokenize(",");
  a->SetOwner(kFALSE);
  TIter next(a);
  TObjString* s;
  
  while ( ( s = static_cast<TObjString*>(next()) ) )
  {
    if (!fSubResultsToBeIncluded )
    {
      fSubResultsToBeIncluded = new TList;
      fSubResultsToBeIncluded->SetOwner(kTRUE);
    }
    if (!IsIncluded(s->String()))
    {
      fSubResultsToBeIncluded->Add(s);      
    }
  }
  
  delete a;
}

//_____________________________________________________________________________
Bool_t AliAnalysisMuMuResult::IsIncluded(const TString& alias) const
{
  // whether that subresult alias should be included when computing means, etc...
  
  if (!fSubResultsToBeIncluded) return kTRUE;
  
  return ( fSubResultsToBeIncluded->FindObject(alias) != 0x0 );
}

//_____________________________________________________________________________
Bool_t AliAnalysisMuMuResult::IsValidValue(Double_t val) const
{
  /// Whether val is a valid one
  return ( val < TMath::Limits<Double_t>::Max() );
}

//_____________________________________________________________________________
THashList* AliAnalysisMuMuResult::Keys() const
{
  /// Return the complete list of keys we're using
  if (!fKeys)
  {
    fKeys = new THashList;
    fKeys->SetOwner(kTRUE);
    TIter next(fMap);
    TObjString* key;
    
    while ( ( key = static_cast<TObjString*>(next()) ) )
    {
      if ( !fKeys->FindObject(key->String()) )
      {
        fKeys->Add(new TObjString(key->String()));
      }
    }
    
    AliAnalysisMuMuResult* r;
    TIter nextResult(fSubResults);
    
    while ( ( r = static_cast<AliAnalysisMuMuResult*>(nextResult())) )
    {
      TIter nextHL(r->Keys());
      TObjString* s;
      
      while ( ( s = static_cast<TObjString*>(nextHL())) )
      {
        if ( !fKeys->FindObject(s->String()) )
        {
          fKeys->Add(new TObjString(s->String()));
        }
      }
    }

    fKeys->Sort();
  }
  return fKeys;
}

//_____________________________________________________________________________
Long64_t AliAnalysisMuMuResult::Merge(TCollection* list)
{
  /// Merge method
  ///
  /// Merge a list of AliAnalysisMuMuResult objects with this
  /// Returns the number of merged objects (including this).
  ///
  /// Note that the merging is to be understood here as a weighed mean operation
  
  if (!list) return 0;
  
  if (list->IsEmpty()) return 1;
  
  TIter next(list);
  TObject* currObj;

  Double_t sumw(Weight()); // sum of weights
  
  while ( ( currObj = next() ) )
  {
    AliAnalysisMuMuResult* result = dynamic_cast<AliAnalysisMuMuResult*>(currObj);
    if (!result)
    {
      AliFatal(Form("object named \"%s\" is a %s instead of an AliAnalysisMuMuResult!", currObj->GetName(), currObj->ClassName()));
      continue;
    }
    
    sumw += result->Weight();
  }
  
  TIter nextKey(Keys());
  TObjString* key;
  
  while ( ( key = static_cast<TObjString*>(nextKey())) )
  {
    Double_t value = GetValue(key->String())*Weight()/sumw;
    Double_t e = GetErrorStat(key->String());
    Double_t e2 = e*e*Weight()*Weight()/sumw/sumw;

    next.Reset();
    
    while ( ( currObj = next() ) )
    {
      AliAnalysisMuMuResult* result = dynamic_cast<AliAnalysisMuMuResult*>(currObj);
    
      if (!result)
      { 
        continue;
      }
      
      if (!result->HasValue(key->String()))
      {
        AliError(Form("Did not find key %s in of the result to merge",key->String().Data()));
        continue;
      }
      
      // can only merge under the condition we have the same bin
    
      Double_t w = result->Weight()/sumw;
      
      Double_t w2 = w*w;
      
      value += result->GetValue(key->String())*w;
      e2 += result->GetErrorStat(key->String())*result->GetErrorStat(key->String())*w2;
      
    }
    
    Set(key->String(),
        value,
        TMath::Sqrt(e2));
  }
  
  TIter nextSubresult(fSubResults);
  AliAnalysisMuMuResult* r;
  
  while ( ( r = static_cast<AliAnalysisMuMuResult*>(nextSubresult())) )
  {
    TList sublist;

    next.Reset();
    
    while ( ( currObj = next() ) )
    {
      sublist.Add(currObj);
    }

    r->Merge(&sublist);
  }
  
  fWeight = sumw;
  
  return list->GetEntries()+1;
}

//_____________________________________________________________________________
Int_t AliAnalysisMuMuResult::NofIncludedSubResults(const char* name) const
{
  // Return the number of subresults which have key name and are included
  
  TIter next(fSubResults);
  AliAnalysisMuMuResult* r;
  Int_t n(0);
  while ( ( r = static_cast<AliAnalysisMuMuResult*>(next()) ) )
  {
    if ( IsIncluded(r->Alias()) && r->HasValue(name) )
    {
      ++n;
    }
  }
  return n;
}

//_____________________________________________________________________________
void AliAnalysisMuMuResult::Print(Option_t* opt) const
{
  /// printout
  
  TString sopt(opt);
  sopt.ToUpper();
  
  for ( Int_t i = 0; i < 9; ++i )
  {
    sopt.ReplaceAll(Form("%d",i),"");
  }
  
  TString pot(sopt);
  pot.ReplaceAll("ALL","");
  pot.ReplaceAll("FULL","");

  std::cout << pot.Data() << " ";
  
    if ( fAlias.Length() > 0 )
    {
      std::cout << Form("%s - ",fAlias.Data());
    }
  
    std::cout << Form("%s %s %s",
                      GetName(),GetTitle(),fWeight > 0.0 ? Form(" WEIGHT %e",fWeight) : "");
  
  if ( fSubResults && fSubResults->GetEntries()>1 )
  {
    std::cout << " (" << fSubResults->GetEntries() << " subresults)";
  }

  std::cout << std::endl;
  
  TIter next(Keys());
  TObjString* key;
  
  Int_t nsub = fSubResults ? fSubResults->GetEntries() : 0;
  
  while ( ( key = static_cast<TObjString*>(next())) )
  {
    if ( fVisibleKeys  && ! fVisibleKeys->FindObject(key->String()) ) continue;
        
    if ( nsub==0 || nsub == HasValue(key->String().Data()) )
    {
      PrintValue(key->String().Data(),pot.Data(),
                 GetValue(key->String()),
                 GetErrorStat(key->String()),
                 GetRMS(key->String()));
    }
  }

  if ( fSubResults /* && fSubResults->GetEntries() > 1 */ && ( sopt.Contains("ALL") || sopt.Contains("FULL") ) )
  {
    std::cout << pot.Data() << "\t===== sub results ===== " << std::endl;
    
    sopt += "\t\t";
    
    TIter nextSubresult(fSubResults);
    AliAnalysisMuMuResult* r;
    
    while ( ( r = static_cast<AliAnalysisMuMuResult*>(nextSubresult()) ) )
    {
      if ( !IsIncluded(r->Alias()) )
      {
        std::cout << " [EXCLUDED]";
      }
      r->Print(sopt.Data());
    }
  }
}

//_____________________________________________________________________________
void AliAnalysisMuMuResult::PrintValue(const char* key, const char* opt,
                                       Double_t value, Double_t errorStat, Double_t rms) const
{
  // print one value and its associated error
  
  if ( TString(key).Contains("AccEff") )
  {
    std::cout << opt << Form("\t\t%20s %9.2f +- %5.2f %% (%5.2f %%)",key,value*100,errorStat*100,
                             value != 0.0 ? errorStat*100.0/value : 0.0 );
    
    if ( rms )
    {
      std::cout << Form(" RMS %9.2f (%5.2f %%)",rms,100.0*rms/value);
    }

    std::cout << std::endl;
  }
  else if ( TString(key).BeginsWith("Sigma") ||  TString(key).BeginsWith("Mean") )
  {
    std::cout << opt << Form("\t\t%20s %9.2f +- %5.2f (%5.2f %%) MeV/c^2",key,value*1E3,1E3*errorStat,
                             value != 0.0 ? errorStat*100.0/value : 0.0);
    
    if ( rms )
    {
      std::cout << Form(" RMS %9.2f (%5.2f %%)",rms,100.0*rms/value);
    }

    std::cout << std::endl;
  }
  else if ( TString(key).Contains("Nof") || ( TString(key).Contains("Fnorm") && !TString(key).Contains("persion") ) )
  {
    std::cout << opt << Form("\t\t%20s %9.3f +- %5.3f (%5.2f %%)",key,value,errorStat,
                             value != 0.0 ? errorStat*100.0/value : 0.0);
    
    if ( rms )
    {
      std::cout << Form(" RMS %9.2f (%5.2f %%)",rms,100.0*rms/value);
    }
    std::cout << std::endl;
  }
  else if ( value > 1E-3 && value < 1E3 )
  {
    if (errorStat > 0.0)
    {
      std::cout << opt << Form("\t\t%20s %9.3f +- %5.3f (%5.3f %%)",key,value,errorStat,
                             value != 0.0 ? errorStat*100.0/value : 0.0);
      if ( rms )
      {
        std::cout << Form(" RMS %9.2f (%5.2f %%)",rms,100.0*rms/value);
      }
    }
    else
    {
      std::cout << opt << Form("\t\t%20s %9.3f",key,value);
    }
    std::cout << std::endl;
  }
  else
  {
    if ( errorStat > 0.0 )
    {
      
      std::cout << opt << Form("\t\t%20s %9.2e +- %9.2e (%5.2f %%)",key,value,errorStat,
                               value != 0.0 ? errorStat*100.0/value : 0.0);
      if ( rms )
      {
        std::cout << Form(" RMS %9.2e (%5.2f %%)",rms,100.0*rms/value);
      }
    }
    else
    {
      std::cout << opt << Form("\t\t%20s %9.2e ",key,value);
    }
    std::cout << std::endl;
  }
}

//_____________________________________________________________________________
void AliAnalysisMuMuResult::Scale(Double_t w)
{
  /// Scale all our internal values by value
  
  TIter next(Keys());
  TObjString* key;
  
  while ( ( key = static_cast<TObjString*>(next())) )
  {
    Double_t value = GetValue(key->String());
    Double_t error = GetErrorStat(key->String());
    Double_t rms = GetRMS(key->String());
    
    Set(key->String(),value*w,error*w,rms*w);
  }

}

//_____________________________________________________________________________
void AliAnalysisMuMuResult::Set(const char* name, Double_t value, Double_t errorStat, Double_t rms)
{
  /// Set a (value,error) pair with a given name
  
  if ( !fMap )
  {
    fMap = new TMap;
    fMap->SetOwnerKeyValue(kTRUE,kTRUE);
  }
  
  TObjArray* p = static_cast<TObjArray*>(fMap->GetValue(name));
  if (!p)
  {
    p = new TObjArray(4);
    
    p->SetOwner(kTRUE);
    
    p->AddAt(new TParameter<Double_t>(name,value),kValue);
    p->AddAt(new TParameter<Double_t>(name,errorStat),kErrorStat);
    p->AddAt(new TParameter<Double_t>(name,rms),kRMS);
    
    fMap->Add(new TObjString(name),p);
    
    delete fKeys; // invalidate previously computed keys arrays, if any
    fKeys=0x0;
//    Show("*"); // invalidate as well any printout filter that may have been set
  }
  else
  {
    static_cast<TParameter<double>*>(p->At(kValue))->SetVal(value);
    static_cast<TParameter<double>*>(p->At(kErrorStat))->SetVal(errorStat);
    static_cast<TParameter<double>*>(p->At(kRMS))->SetVal(rms);
  }
}

//_____________________________________________________________________________
void AliAnalysisMuMuResult::Show(const char* keyPattern)
{
  /// Specify which keys will be shown in the Print method...

  if (!fVisibleKeys)
  {
    fVisibleKeys = new THashList;
    fVisibleKeys->SetOwner(kTRUE);
  }
  fVisibleKeys->Clear();

  TIter next(fSubResults);
  AliAnalysisMuMuResult* r;
  while ( ( r = static_cast<AliAnalysisMuMuResult*>(next())) )
  {
    r->Show(keyPattern);
  }

  TIter nextKey(Keys());
  TObjString* str;
  
  TPRegexp re(keyPattern);
  
  while ( ( str = static_cast<TObjString*>(nextKey()) ) )
  {
    if ( re.MatchB(str->String()) )
    {
      fVisibleKeys->Add(new TObjString(*str));
    }
  }
  
}

//_____________________________________________________________________________
AliAnalysisMuMuResult*
AliAnalysisMuMuResult::SubResult(const char* subResultName) const
{
  /// get a given subresult
  if (!fSubResults)
  {
    return 0x0;
  }
  TIter next(fSubResults);
  AliAnalysisMuMuResult* r;
  while ( ( r = static_cast<AliAnalysisMuMuResult*>(next())) )
  {
    if ( r->Alias() == subResultName )
    {
      return r;
    }
  }
  return 0x0;
}

//_____________________________________________________________________________
TList* AliAnalysisMuMuResult::SubResultsToBeIncluded() const
{
  if (!fSubResultsToBeIncluded)
  {
    fSubResultsToBeIncluded = new TList;
    fSubResultsToBeIncluded->SetOwner(kTRUE);
  }
  return fSubResultsToBeIncluded;
}

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