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

/* $Id$ */

// ROOT includes
#include <TFile.h>
#include <TTree.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TMultiGraph.h>
#include <TGraphErrors.h>
#include <TCanvas.h>
#include <TLegend.h>
#include <Riostream.h>
#include <TString.h>
#include <TGeoManager.h>
#include <TList.h>
#include <TObjString.h>
#include <TRegexp.h>

// STEER includes
#include "AliESDEvent.h"
#include "AliESDMuonTrack.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliGeomManager.h"
#include "AliVVertex.h"

// ANALYSIS includes
#include "AliAnalysisDataSlot.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliAnalysisTaskMuonResolution.h"
#include "AliCentrality.h"

// MUON includes
#include "AliMUONCDB.h"
#include "AliMUONConstants.h"
#include "AliMUONRecoParam.h"
#include "AliMUONESDInterface.h"
#include "AliMUONVTrackReconstructor.h"
#include "AliMUONTrack.h"
#include "AliMUONTrackParam.h"
#include "AliMUONTrackExtrap.h"
#include "AliMUONVCluster.h"
#include "AliMUONVDigit.h"
#include "AliMUONGeometryTransformer.h"
#include "AliMUONGeometryModuleTransformer.h"
#include "AliMUONGeometryDetElement.h"
#include "AliMpDEIterator.h"
#include "AliMpSegmentation.h"
#include "AliMpVSegmentation.h"
#include "AliMpConstants.h"
#include "AliMpDDLStore.h"
#include "AliMpPad.h"
#include "AliMpDetElement.h"
#include "AliMpCathodType.h"

#ifndef SafeDelete
#define SafeDelete(x) if (x != NULL) { delete x; x = NULL; }
#endif

using std::cout;
using std::endl;
using std::flush;

ClassImp(AliAnalysisTaskMuonResolution)

const Int_t AliAnalysisTaskMuonResolution::fgkMinEntries = 10;

//________________________________________________________________________
AliAnalysisTaskMuonResolution::AliAnalysisTaskMuonResolution() :
  AliAnalysisTaskSE(), 
  fResiduals(NULL),
  fResidualsVsP(NULL),
  fResidualsVsCent(NULL),
  fResidualsVsAngle(NULL),
  fLocalChi2(NULL),
  fChamberRes(NULL),
  fTrackRes(NULL),
  fCanvases(NULL),
  fTmpHists(NULL),
  fDefaultStorage(""),
  fNEvents(0),
  fShowProgressBar(kFALSE),
  fPrintClResPerCh(kFALSE),
  fPrintClResPerDE(kFALSE),
  fGaus(NULL),
  fMinMomentum(0.),
  fSelectPhysics(kFALSE),
  fMatchTrig(kFALSE),
  fApplyAccCut(kFALSE),
  fSelectTrigger(kFALSE),
  fTriggerMask(0),
  fExtrapMode(1),
  fCorrectForSystematics(kTRUE),
  fRemoveMonoCathCl(kFALSE),
  fCheckAllPads(kFALSE),
  fImproveTracks(kFALSE),
  fShiftHalfCh(kFALSE),
  fPrintHalfChShift(kFALSE),
  fShiftDE(kFALSE),
  fPrintDEShift(kFALSE),
  fOCDBLoaded(kFALSE),
  fNDE(0),
  fReAlign(kFALSE),
  fOldAlignStorage(""),
  fNewAlignStorage(""),
  fOldGeoTransformer(NULL),
  fNewGeoTransformer(NULL),
  fSelectTriggerClass(NULL),
  fMuonTrackCuts(0x0)
{
  /// Default constructor
  
  for (Int_t i = 0; i < 10; i++) SetStartingResolution(i, -1., -1.);
  for (Int_t i = 0; i < 1100; i++) fDEIndices[i] = 0;
  for (Int_t i = 0; i < 200; i++) fDEIds[i] = 0;
  for (Int_t i = 0; i < 20; i++) SetHalfChShift(i, 0., 0.);
  for (Int_t i = 0; i < 200; i++) SetDEShift(i, 0., 0.);
  
}

//________________________________________________________________________
AliAnalysisTaskMuonResolution::AliAnalysisTaskMuonResolution(const char *name) :
  AliAnalysisTaskSE(name), 
  fResiduals(NULL),
  fResidualsVsP(NULL),
  fResidualsVsCent(NULL),
  fResidualsVsAngle(NULL),
  fLocalChi2(NULL),
  fChamberRes(NULL),
  fTrackRes(NULL),
  fCanvases(NULL),
  fTmpHists(NULL),
  fDefaultStorage("raw://"),
  fNEvents(0),
  fShowProgressBar(kFALSE),
  fPrintClResPerCh(kFALSE),
  fPrintClResPerDE(kFALSE),
  fGaus(NULL),
  fMinMomentum(0.),
  fSelectPhysics(kFALSE),
  fMatchTrig(kFALSE),
  fApplyAccCut(kFALSE),
  fSelectTrigger(kFALSE),
  fTriggerMask(0),
  fExtrapMode(1),
  fCorrectForSystematics(kTRUE),
  fRemoveMonoCathCl(kFALSE),
  fCheckAllPads(kFALSE),
  fImproveTracks(kFALSE),
  fShiftHalfCh(kFALSE),
  fPrintHalfChShift(kFALSE),
  fShiftDE(kFALSE),
  fPrintDEShift(kFALSE),
  fOCDBLoaded(kFALSE),
  fNDE(0),
  fReAlign(kFALSE),
  fOldAlignStorage(""),
  fNewAlignStorage(""),
  fOldGeoTransformer(NULL),
  fNewGeoTransformer(NULL),
  fSelectTriggerClass(NULL),
  fMuonTrackCuts(0x0)
{
  /// Constructor
  
  for (Int_t i = 0; i < 10; i++) SetStartingResolution(i, -1., -1.);
  for (Int_t i = 0; i < 1100; i++) fDEIndices[i] = 0;
  for (Int_t i = 0; i < 200; i++) fDEIds[i] = 0;
  for (Int_t i = 0; i < 20; i++) SetHalfChShift(i, 0., 0.);
  for (Int_t i = 0; i < 200; i++) SetDEShift(i, 0., 0.);
  
  FitResiduals();
  
  // Output slot #1 writes into a TObjArray container
  DefineOutput(1,TObjArray::Class());
  // Output slot #2 writes into a TObjArray container
  DefineOutput(2,TObjArray::Class());
  // Output slot #3 writes into a TObjArray container
  DefineOutput(3,TObjArray::Class());
  // Output slot #4 writes into a TObjArray container
  DefineOutput(4,TObjArray::Class());
  // Output slot #5 writes into a TObjArray container
  DefineOutput(5,TObjArray::Class());
  // Output slot #6 writes into a TObjArray container
  DefineOutput(6,TObjArray::Class());
  // Output slot #7 writes into a TObjArray container
  DefineOutput(7,TObjArray::Class());
}

//________________________________________________________________________
AliAnalysisTaskMuonResolution::~AliAnalysisTaskMuonResolution()
{
  /// Destructor
  if (!AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
    SafeDelete(fResiduals);
    SafeDelete(fResidualsVsP);
    SafeDelete(fResidualsVsCent);
    SafeDelete(fResidualsVsAngle);
    SafeDelete(fTrackRes);
  }
  SafeDelete(fLocalChi2);
  SafeDelete(fChamberRes);
  SafeDelete(fCanvases);
  SafeDelete(fTmpHists);
  SafeDelete(fGaus);
  SafeDelete(fOldGeoTransformer);
  SafeDelete(fNewGeoTransformer);
  SafeDelete(fSelectTriggerClass);
  SafeDelete(fMuonTrackCuts);
}

//___________________________________________________________________________
void AliAnalysisTaskMuonResolution::UserCreateOutputObjects()
{
  /// Create histograms
  
  // do it once the OCDB has been loaded (i.e. from NotifyRun())
  if (!fOCDBLoaded) return;
  
  // set the list of trigger classes that can be selected to fill histograms (in case the physics selection is not used)
  fSelectTriggerClass = new TList();
  fSelectTriggerClass->SetOwner();
  fSelectTriggerClass->AddLast(new TObjString(" CINT1B-ABCE-NOPF-ALL ")); fSelectTriggerClass->Last()->SetUniqueID(AliVEvent::kMB);
  fSelectTriggerClass->AddLast(new TObjString(" CMUS1B-ABCE-NOPF-MUON ")); fSelectTriggerClass->Last()->SetUniqueID(AliVEvent::kMUON);
  fSelectTriggerClass->AddLast(new TObjString(" CINT1-B-")); fSelectTriggerClass->Last()->SetUniqueID(AliVEvent::kMB);
  fSelectTriggerClass->AddLast(new TObjString(" CMUS1-B-")); fSelectTriggerClass->Last()->SetUniqueID(AliVEvent::kMUON);
  fSelectTriggerClass->AddLast(new TObjString(" CSH1-B-")); fSelectTriggerClass->Last()->SetUniqueID(AliVEvent::kHighMult);
  
  fResiduals = new TObjArray(1000);
  fResiduals->SetOwner();
  fResidualsVsP = new TObjArray(1000);
  fResidualsVsP->SetOwner();
  fResidualsVsCent = new TObjArray(1000);
  fResidualsVsCent->SetOwner();
  fResidualsVsAngle = new TObjArray(1000);
  fResidualsVsAngle->SetOwner();
  fTrackRes = new TObjArray(1000);
  fTrackRes->SetOwner();
  TH2F* h2;
  
  // find the highest chamber resolution and set histogram bins
  const AliMUONRecoParam* recoParam = AliMUONESDInterface::GetTracker()->GetRecoParam();
  Double_t maxSigma[2] = {-1., -1.};
  for (Int_t i = 0; i < 10; i++) {
    if (recoParam->GetDefaultNonBendingReso(i) > maxSigma[0]) maxSigma[0] = recoParam->GetDefaultNonBendingReso(i);
    if (recoParam->GetDefaultBendingReso(i) > maxSigma[1]) maxSigma[1] = recoParam->GetDefaultBendingReso(i);
  }
  const char* axes[2] = {"X", "Y"};
  const char* side[2] = {"I", "O"};
  const Int_t nBins = 5000;
  const Int_t nSigma = 10;
  const Int_t pNBins = 20;
  const Double_t pEdges[2] = {0., 50.};
  Int_t nCentBins = 12;
  Double_t centRange[2] = {-10., 110.};
  Int_t nAngleBins = 20;
  Double_t angleRange[2][2] = {{-15., 15.}, {-40., 40.}};
  TString name, title;
  
  for (Int_t ia = 0; ia < 2; ia++) {
    
    Double_t maxRes = nSigma*maxSigma[ia];
    
    // List of residual histos
    name = Form("hResidual%sPerCh_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s distribution per chamber (cluster attached to the track);chamber ID;#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 10, 0.5, 10.5, nBins, -maxRes, maxRes);
    fResiduals->AddAtAndExpand(h2, kResidualPerChClusterIn+ia);
    name = Form("hResidual%sPerCh_ClusterOut",axes[ia]); title = Form("cluster-track residual-%s distribution per chamber (cluster not attached to the track);chamber ID;#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 10, 0.5, 10.5, nBins, -2.*maxRes, 2.*maxRes);
    fResiduals->AddAtAndExpand(h2, kResidualPerChClusterOut+ia);
    
    name = Form("hResidual%sPerHalfCh_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s distribution per half chamber (cluster attached to the track);half chamber ID;#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 20, 0.5, 20.5, nBins, -maxRes, maxRes);
    for (Int_t i = 0; i < 10; i++) { h2->GetXaxis()->SetBinLabel(2*i+1, Form("%d-I",i+1)); h2->GetXaxis()->SetBinLabel(2*i+2, Form("%d-O",i+1)); }
    fResiduals->AddAtAndExpand(h2, kResidualPerHalfChClusterIn+ia);
    name = Form("hResidual%sPerHalfCh_ClusterOut",axes[ia]); title = Form("cluster-track residual-%s distribution per half chamber (cluster not attached to the track);half chamber ID;#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 20, 0.5, 20.5, nBins, -2.*maxRes, 2.*maxRes);
    for (Int_t i = 0; i < 10; i++) { h2->GetXaxis()->SetBinLabel(2*i+1, Form("%d-I",i+1)); h2->GetXaxis()->SetBinLabel(2*i+2, Form("%d-O",i+1)); }
    fResiduals->AddAtAndExpand(h2, kResidualPerHalfChClusterOut+ia);
    
    name = Form("hResidual%sPerDE_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s distribution per DE (cluster attached to the track);DE ID;#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), fNDE, 0.5, fNDE+0.5, nBins, -maxRes, maxRes);
    for (Int_t i = 1; i <= fNDE; i++) h2->GetXaxis()->SetBinLabel(i, Form("%d",fDEIds[i]));
    fResiduals->AddAtAndExpand(h2, kResidualPerDEClusterIn+ia);
    name = Form("hResidual%sPerDE_ClusterOut",axes[ia]); title = Form("cluster-track residual-%s distribution per DE (cluster not attached to the track);DE ID;#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), fNDE, 0.5, fNDE+0.5, nBins, -2.*maxRes, 2.*maxRes);
    for (Int_t i = 1; i <= fNDE; i++) h2->GetXaxis()->SetBinLabel(i, Form("%d",fDEIds[i]));
    fResiduals->AddAtAndExpand(h2, kResidualPerDEClusterOut+ia);
    
    name = Form("hTrackRes%sPerCh",axes[ia]); title = Form("track #sigma_{%s} per Ch;chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 10, 0.5, 10.5, nBins, 0., maxRes);
    fResiduals->AddAtAndExpand(h2, kTrackResPerCh+ia);
    name = Form("hTrackRes%sPerHalfCh",axes[ia]); title = Form("track #sigma_{%s} per half Ch;half chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 20, 0.5, 20.5, nBins, 0., maxRes);
    for (Int_t i = 0; i < 10; i++) { h2->GetXaxis()->SetBinLabel(2*i+1, Form("%d-I",i+1)); h2->GetXaxis()->SetBinLabel(2*i+2, Form("%d-O",i+1)); }
    fResiduals->AddAtAndExpand(h2, kTrackResPerHalfCh+ia);
    name = Form("hTrackRes%sPerDE",axes[ia]); title = Form("track #sigma_{%s} per DE;DE ID;#sigma_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), fNDE, 0.5, fNDE+0.5, nBins, 0., maxRes);
    for (Int_t i = 1; i <= fNDE; i++) h2->GetXaxis()->SetBinLabel(i, Form("%d",fDEIds[i]));
    fResiduals->AddAtAndExpand(h2, kTrackResPerDE+ia);
    
    name = Form("hMCS%sPerCh",axes[ia]); title = Form("MCS %s-dispersion of extrapolated track per Ch;chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 10, 0.5, 10.5, nBins, 0., 0.2);
    fResiduals->AddAtAndExpand(h2, kMCSPerCh+ia);
    name = Form("hMCS%sPerHalfCh",axes[ia]); title = Form("MCS %s-dispersion of extrapolated track per half Ch;half chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 20, 0.5, 20.5, nBins, 0., 0.2);
    for (Int_t i = 0; i < 10; i++) { h2->GetXaxis()->SetBinLabel(2*i+1, Form("%d-I",i+1)); h2->GetXaxis()->SetBinLabel(2*i+2, Form("%d-O",i+1)); }
    fResiduals->AddAtAndExpand(h2, kMCSPerHalfCh+ia);
    name = Form("hMCS%sPerDE",axes[ia]); title = Form("MCS %s-dispersion of extrapolated track per DE;DE ID;#sigma_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), fNDE, 0.5, fNDE+0.5, nBins, 0., 0.2);
    for (Int_t i = 1; i <= fNDE; i++) h2->GetXaxis()->SetBinLabel(i, Form("%d",fDEIds[i]));
    fResiduals->AddAtAndExpand(h2, kMCSPerDE+ia);
    
    name = Form("hClusterRes2%sPerCh",axes[ia]); title = Form("cluster #sigma_{%s}^{2} per Ch;chamber ID;#sigma_{%s}^{2} (cm^{2})",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 10, 0.5, 10.5, nSigma*nBins, -0.1*maxRes*maxRes, maxRes*maxRes);
    fResiduals->AddAtAndExpand(h2, kClusterRes2PerCh+ia);
    
    // List of residual histos vs. p or vs. centrality or vs. angle
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
      name = Form("hResidual%sInCh%dVsP_ClusterIn",axes[ia],i+1); title = Form("cluster-track residual-%s distribution in chamber %d versus momentum (cluster attached to the track);p (GeV/c^{2});#Delta_{%s} (cm)",axes[ia],i+1,axes[ia]);
      h2 = new TH2F(name.Data(), title.Data(), pNBins, pEdges[0], pEdges[1], nBins, -maxRes, maxRes);
      fResidualsVsP->AddAtAndExpand(h2, kResidualInChVsPClusterIn+10*ia+i);
      name = Form("hResidual%sInCh%dVsP_ClusterOut",axes[ia],i+1); title = Form("cluster-track residual-%s distribution in chamber %d versus momentum (cluster not attached to the track);p (GeV/c^{2});#Delta_{%s} (cm)",axes[ia],i+1,axes[ia]);
      h2 = new TH2F(name.Data(), title.Data(), pNBins, pEdges[0], pEdges[1], nBins, -2.*maxRes, 2.*maxRes);
      fResidualsVsP->AddAtAndExpand(h2, kResidualInChVsPClusterOut+10*ia+i);
      
      name = Form("hResidual%sInCh%dVsCent_ClusterIn",axes[ia],i+1); title = Form("cluster-track residual-%s distribution in chamber %d versus centrality (cluster attached to the track);centrality (%%);#Delta_{%s} (cm)",axes[ia],i+1,axes[ia]);
      h2 = new TH2F(name.Data(), title.Data(), nCentBins, centRange[0], centRange[1], nBins, -maxRes, maxRes);
      fResidualsVsCent->AddAtAndExpand(h2, kResidualInChVsCentClusterIn+10*ia+i);
      name = Form("hResidual%sInCh%dVsCent_ClusterOut",axes[ia],i+1); title = Form("cluster-track residual-%s distribution in chamber %d versus centrality (cluster not attached to the track);centrality (%%);#Delta_{%s} (cm)",axes[ia],i+1,axes[ia]);
      h2 = new TH2F(name.Data(), title.Data(), nCentBins, centRange[0], centRange[1], nBins, -2.*maxRes, 2.*maxRes);
      fResidualsVsCent->AddAtAndExpand(h2, kResidualInChVsCentClusterOut+10*ia+i);
      
      name = Form("hResidual%sInCh%dVsAngle_ClusterIn",axes[ia],i+1); title = Form("cluster-track residual-%s distribution in chamber %d versus track angle (cluster attached to the track);%s-angle (deg);#Delta_{%s} (cm)",axes[ia],i+1,axes[ia],axes[ia]);
      h2 = new TH2F(name.Data(), title.Data(), nAngleBins, angleRange[ia][0], angleRange[ia][1], nBins, -maxRes, maxRes);
      fResidualsVsAngle->AddAtAndExpand(h2, kResidualInChVsAngleClusterIn+10*ia+i);
      name = Form("hResidual%sInCh%dVsAngle_ClusterOut",axes[ia],i+1); title = Form("cluster-track residual-%s distribution in chamber %d versus track angle (cluster not attached to the track);%s-angle (deg);#Delta_{%s} (cm)",axes[ia],i+1,axes[ia],axes[ia]);
      h2 = new TH2F(name.Data(), title.Data(), nAngleBins, angleRange[ia][0], angleRange[ia][1], nBins, -2.*maxRes, 2.*maxRes);
      fResidualsVsAngle->AddAtAndExpand(h2, kResidualInChVsAngleClusterOut+10*ia+i);
      
      for (Int_t j = 0; j < 2; j++) {
	name = Form("hResidual%sInHalfCh%d%sVsAngle_ClusterIn",axes[ia],i+1,side[j]); title = Form("cluster-track residual-%s distribution in half-chamber %d-%s versus track angle (cluster attached to the track);%s-angle (deg);#Delta_{%s} (cm)",axes[ia],i+1,side[j],axes[ia],axes[ia]);
	h2 = new TH2F(name.Data(), title.Data(), nAngleBins, angleRange[ia][0], angleRange[ia][1], nBins, -maxRes, maxRes);
	fResidualsVsAngle->AddAtAndExpand(h2, kResidualInHalfChVsAngleClusterIn+20*ia+2*i+j);
      }
    }
    
    name = Form("hResidual%sVsP_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s distribution integrated over chambers versus momentum (cluster attached to the track);p (GeV/c^{2});#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), pNBins, pEdges[0], pEdges[1], nBins, -maxRes, maxRes);
    fResidualsVsP->AddAtAndExpand(h2, kResidualVsPClusterIn+ia);
    name = Form("hResidual%sVsP_ClusterOut",axes[ia]); title = Form("cluster-track residual-%s distribution integrated over chambers versus momentum (cluster not attached to the track);p (GeV/c^{2});#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), pNBins, pEdges[0], pEdges[1], nBins, -2.*maxRes, 2.*maxRes);
    fResidualsVsP->AddAtAndExpand(h2, kResidualVsPClusterOut+ia);
    
    name = Form("hResidual%sVsCent_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s distribution integrated over chambers versus centrality (cluster attached to the track);centrality (%%);#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), nCentBins, centRange[0], centRange[1], nBins, -maxRes, maxRes);
    fResidualsVsCent->AddAtAndExpand(h2, kResidualVsCentClusterIn+ia);
    name = Form("hResidual%sVsCent_ClusterOut",axes[ia]); title = Form("cluster-track residual-%s distribution integrated over chambers versus centrality (cluster not attached to the track);centrality (%%);#Delta_{%s} (cm)",axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), nCentBins, centRange[0], centRange[1], nBins, -2.*maxRes, 2.*maxRes);
    fResidualsVsCent->AddAtAndExpand(h2, kResidualVsCentClusterOut+ia);
    
    name = Form("hResidual%sVsAngle_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s distribution integrated over chambers versus track angle (cluster attached to the track);%s-angle (deg);#Delta_{%s} (cm)",axes[ia],axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), nAngleBins, angleRange[ia][0], angleRange[ia][1], nBins, -maxRes, maxRes);
    fResidualsVsAngle->AddAtAndExpand(h2, kResidualVsAngleClusterIn+ia);
    name = Form("hResidual%sVsAngle_ClusterOut",axes[ia]); title = Form("cluster-track residual-%s distribution integrated over chambers versus track angle (cluster not attached to the track);%s-angle (deg);#Delta_{%s} (cm)",axes[ia],axes[ia],axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), nAngleBins, angleRange[ia][0], angleRange[ia][1], nBins, -2.*maxRes, 2.*maxRes);
    fResidualsVsAngle->AddAtAndExpand(h2, kResidualVsAngleClusterOut+ia);
    
    // local chi2
    name = Form("hLocalChi2%sPerCh",axes[ia]); title = Form("local chi2-%s distribution per chamber;chamber ID;local #chi^{2}_{%s}", axes[ia], axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 10, 0.5, 10.5, 1000, 0., 25.);
    fResiduals->AddAtAndExpand(h2, kLocalChi2PerCh+ia);
    name = Form("hLocalChi2%sPerDE",axes[ia]); title = Form("local chi2-%s distribution per DE;DE ID;local #chi^{2}_{%s}", axes[ia], axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), fNDE, 0.5, fNDE+0.5, 1000, 0., 25.);
    for (Int_t i = 1; i <= fNDE; i++) h2->GetXaxis()->SetBinLabel(i, Form("%d",fDEIds[i]));
    fResiduals->AddAtAndExpand(h2, kLocalChi2PerDE+ia);
    
    // track resolution
    name = Form("hUncorrSlope%sRes",axes[ia]); title = Form("muon slope_{%s} reconstructed resolution at first cluster vs p;p (GeV/c); #sigma_{slope_{%s}}", axes[ia], axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 300, 0., 300., 1000, 0., 0.003);
    fTrackRes->AddAtAndExpand(h2, kUncorrSlopeRes+ia);
    name = Form("hSlope%sRes",axes[ia]); title = Form("muon slope_{%s} reconstructed resolution at vertex vs p;p (GeV/c); #sigma_{slope_{%s}}", axes[ia], axes[ia]);
    h2 = new TH2F(name.Data(), title.Data(), 300, 0., 300., 1000, 0., 0.02);
    fTrackRes->AddAtAndExpand(h2, kSlopeRes+ia);
  }
  
  // local chi2 X+Y
  h2 = new TH2F("hLocalChi2PerCh", "local chi2 (~0.5*(#chi^{2}_{X}+#chi^{2}_{Y})) distribution per chamber;chamber ID;local #chi^{2}", 10, 0.5, 10.5, 1000, 0., 25.);
  fResiduals->AddAtAndExpand(h2, kLocalChi2PerCh+2);
  h2 = new TH2F("hLocalChi2PerDE", "local chi2 (~0.5*(#chi^{2}_{X}+#chi^{2}_{Y})) distribution per chamber;DE ID;local #chi^{2}", fNDE, 0.5, fNDE+0.5, 1000, 0., 25.);
  for (Int_t i = 1; i <= fNDE; i++) h2->GetXaxis()->SetBinLabel(i, Form("%d",fDEIds[i]));
  fResiduals->AddAtAndExpand(h2, kLocalChi2PerDE+2);
  
  // track resolution
  h2 = new TH2F("hUncorrPRes", "muon momentum reconstructed resolution at first cluster vs p;p (GeV/c); #sigma_{p}/p (%)", 300, 0., 300., 1000, 0., 10.);
  fTrackRes->AddAtAndExpand(h2, kUncorrPRes);
  h2 = new TH2F("hPRes", "muon momentum reconstructed resolution at vertex vs p;p (GeV/c); #sigma_{p}/p (%)", 300, 0., 300., 1000, 0., 10.);
  fTrackRes->AddAtAndExpand(h2, kPRes);
  h2 = new TH2F("hUncorrPtRes", "muon transverse momentum reconstructed resolution at first cluster vs p_{t};p_{t} (GeV/c); #sigma_{p_{t}}/p_{t} (%)", 300, 0., 30., 300, 0., 30.);
  fTrackRes->AddAtAndExpand(h2, kUncorrPtRes);
  h2 = new TH2F("hPtRes", "muon transverse momentum reconstructed resolution at vertex vs p_{t};p_{t} (GeV/c); #sigma_{p_{t}}/p_{t} (%)", 300, 0., 30., 300, 0., 30.);
  fTrackRes->AddAtAndExpand(h2, kPtRes);
  
  // Post data at least once per task to ensure data synchronisation (required for merging)
  PostData(1, fResiduals);
  PostData(2, fResidualsVsP);
  PostData(3, fResidualsVsCent);
  PostData(4, fResidualsVsAngle);
  PostData(5, fTrackRes);
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::UserExec(Option_t *)
{
  /// Main event loop
  
  // check if OCDB properly loaded
  if (!fOCDBLoaded) AliFatal("Problem occur while loading OCDB objects");
  
  AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
  if (!esd) return;
  
  if (fShowProgressBar && (++fNEvents)%100 == 0) cout<<"\rEvent processing... "<<fNEvents<<"\r"<<flush;
  
  // skip events that do not pass the physics selection if required
  UInt_t triggerWord = (fInputHandler) ? fInputHandler->IsEventSelected() : 0;
  if (fSelectPhysics && triggerWord == 0) return;
  
  // skip events that do not pass the trigger selection if required
  TString firedTriggerClasses = esd->GetFiredTriggerClasses();
  if (!fSelectPhysics) triggerWord = BuildTriggerWord(firedTriggerClasses);
  if (fSelectTrigger && (triggerWord & fTriggerMask) == 0) return;
  
  // get the centrality
  Float_t centrality = esd->GetCentrality()->GetCentralityPercentileUnchecked("V0M");
  
  // get tracker to refit
  AliMUONVTrackReconstructor* tracker = AliMUONESDInterface::GetTracker();
  
  // loop over tracks
  Int_t nTracks = (Int_t) esd->GetNumberOfMuonTracks(); 
  for (Int_t iTrack = 0; iTrack < nTracks; ++iTrack) {
    
    // get the ESD track
    AliESDMuonTrack* esdTrack = esd->GetMuonTrack(iTrack);
    
    // skip ghost tracks
    if (!esdTrack->ContainTrackerData()) continue;
    
    // skip tracks not matched with trigger if required
    if (fMatchTrig && !esdTrack->ContainTriggerData()) continue;
    
    // skip tracks that do not pass the acceptance cuts if required
    Double_t thetaAbs = TMath::ATan(esdTrack->GetRAtAbsorberEnd()/505.) * TMath::RadToDeg();
    Double_t eta = esdTrack->Eta();
    if (fApplyAccCut && (thetaAbs < 2. || thetaAbs > 10. || eta < -4. || eta > -2.5)) continue;
    
    // apply standard track cuts if any
    if (fMuonTrackCuts && !fMuonTrackCuts->IsSelected(esdTrack)) continue;
    
    // skip low momentum tracks
    if (esdTrack->PUncorrected() < fMinMomentum) continue;
    
    // select positive or negative tracks
    //if (esdTrack->Charge() < 0) continue;
    
    // skip tracks with not enough clusters
    //if (esdTrack->GetNClusters() < 8) continue;
    
    // get the corresponding MUON track
    AliMUONTrack track;
    AliMUONESDInterface::ESDToMUON(*esdTrack, track, kFALSE);
    
    // change the cluster resolution (and position)
    ModifyClusters(track);
    
    // refit the track
    if (!tracker->RefitTrack(track, fImproveTracks) || (fImproveTracks && !track.IsImproved())) break;
    
    // save track unchanged
    AliMUONTrack referenceTrack(track);
    
    // get track param at first cluster and add MCS in first chamber
    AliMUONTrackParam trackParamAtFirstCluster(*(static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->First())));
    Int_t firstCh = trackParamAtFirstCluster.GetClusterPtr()->GetChamberId();
    AliMUONTrackExtrap::AddMCSEffect(&trackParamAtFirstCluster, AliMUONConstants::ChamberThicknessInX0(firstCh)/2., -1.);
    
    // fill momentum error at first cluster
    Double_t pXUncorr = trackParamAtFirstCluster.Px();
    Double_t pYUncorr = trackParamAtFirstCluster.Py();
    Double_t pZUncorr = trackParamAtFirstCluster.Pz();
    Double_t pUncorr = trackParamAtFirstCluster.P();
    TMatrixD covUncorr(5,5);
    Cov2CovP(trackParamAtFirstCluster,covUncorr);
    Double_t sigmaPUncorr = TMath::Sqrt(pXUncorr * (pXUncorr*covUncorr(2,2) + pYUncorr*covUncorr(2,3) + pZUncorr*covUncorr(2,4)) +
					pYUncorr * (pXUncorr*covUncorr(3,2) + pYUncorr*covUncorr(3,3) + pZUncorr*covUncorr(3,4)) +
					pZUncorr * (pXUncorr*covUncorr(4,2) + pYUncorr*covUncorr(4,3) + pZUncorr*covUncorr(4,4))) / pUncorr;
    ((TH2F*)fTrackRes->UncheckedAt(kUncorrPRes))->Fill(pUncorr,100.*sigmaPUncorr/pUncorr);
    
    // fill transverse momentum error at first cluster
    Double_t ptUncorr = TMath::Sqrt(pXUncorr*pXUncorr + pYUncorr*pYUncorr);
    Double_t sigmaPtUncorr = TMath::Sqrt(pXUncorr * (pXUncorr*covUncorr(2,2)  + pYUncorr*covUncorr(2,3)) + pYUncorr * (pXUncorr*covUncorr(3,2) + pYUncorr*covUncorr(3,3))) / ptUncorr;
    ((TH2F*)fTrackRes->UncheckedAt(kUncorrPtRes))->Fill(ptUncorr,100.*sigmaPtUncorr/ptUncorr);
    
    // fill slopeX-Y error at first cluster
    ((TH2F*)fTrackRes->UncheckedAt(kUncorrSlopeRes))->Fill(pUncorr,TMath::Sqrt(trackParamAtFirstCluster.GetCovariances()(1,1)));
    ((TH2F*)fTrackRes->UncheckedAt(kUncorrSlopeRes+1))->Fill(pUncorr,TMath::Sqrt(trackParamAtFirstCluster.GetCovariances()(3,3)));
    
    // fill momentum error at vertex
    AliMUONTrackParam trackParamAtVtx(trackParamAtFirstCluster);
    AliMUONTrackExtrap::ExtrapToVertex(&trackParamAtVtx, esdTrack->GetNonBendingCoor(), esdTrack->GetBendingCoor(), esdTrack->GetZ(), 0., 0.);
    Double_t pXVtx = trackParamAtVtx.Px();
    Double_t pYVtx = trackParamAtVtx.Py();
    Double_t pZVtx = trackParamAtVtx.Pz();
    Double_t pVtx = trackParamAtVtx.P();
    TMatrixD covVtx(5,5);
    Cov2CovP(trackParamAtVtx,covVtx);
    Double_t sigmaPVtx = TMath::Sqrt(pXVtx * (pXVtx*covVtx(2,2) + pYVtx*covVtx(2,3) + pZVtx*covVtx(2,4)) +
				     pYVtx * (pXVtx*covVtx(3,2) + pYVtx*covVtx(3,3) + pZVtx*covVtx(3,4)) +
				     pZVtx * (pXVtx*covVtx(4,2) + pYVtx*covVtx(4,3) + pZVtx*covVtx(4,4))) / pVtx;
    ((TH2F*)fTrackRes->UncheckedAt(kPRes))->Fill(pVtx,100.*sigmaPVtx/pVtx);
    
    // fill transverse momentum error at vertex
    Double_t ptVtx = TMath::Sqrt(pXVtx*pXVtx + pYVtx*pYVtx);
    Double_t sigmaPtVtx = TMath::Sqrt(pXVtx * (pXVtx*covVtx(2,2)  + pYVtx*covVtx(2,3)) + pYVtx * (pXVtx*covVtx(3,2) + pYVtx*covVtx(3,3))) / ptVtx;
    ((TH2F*)fTrackRes->UncheckedAt(kPtRes))->Fill(ptVtx,100.*sigmaPtVtx/ptVtx);
    
    // fill slopeX-Y error at vertex
    ((TH2F*)fTrackRes->UncheckedAt(kSlopeRes))->Fill(pVtx,TMath::Sqrt(trackParamAtVtx.GetCovariances()(1,1)));
    ((TH2F*)fTrackRes->UncheckedAt(kSlopeRes+1))->Fill(pVtx,TMath::Sqrt(trackParamAtVtx.GetCovariances()(3,3)));
    
    // loop over clusters
    Int_t nClusters = track.GetNClusters();
    for (Int_t iCluster=0; iCluster<nClusters; iCluster++) {
      
      // Get current, previous and next trackParams
      AliMUONTrackParam* trackParam = static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->UncheckedAt(iCluster));
      AliMUONTrackParam* previousTrackParam = static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->Before(trackParam));
      AliMUONTrackParam* nextTrackParam = static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->After(trackParam));
      if (!previousTrackParam && !nextTrackParam) {
	AliError(Form("unable to find a cluster neither before nor after the one at position %d !?!", iCluster));
	track.RecursiveDump();
	break;
      }
      /*
      if (trackParam->GetClusterPtr()->GetDetElemId() == 915) continue;
      if (trackParam->GetClusterPtr()->GetDetElemId() == 710) continue;
      if (trackParam->GetClusterPtr()->GetDetElemId() == 1025) continue;
      if (trackParam->GetClusterPtr()->GetDetElemId() == 818) continue;
      if (trackParam->GetClusterPtr()->GetDetElemId() == 806) continue;
      */
      // remove mono-cathod clusters on stations 3-4-5 if required
      if (fRemoveMonoCathCl && trackParam->GetClusterPtr()->GetChamberId() > 3) {
	Bool_t hasBending, hasNonBending;
	if (fCheckAllPads) CheckPads(trackParam->GetClusterPtr(), hasBending, hasNonBending);
	else CheckPadsBelow(trackParam->GetClusterPtr(), hasBending, hasNonBending);
	if (!hasBending || !hasNonBending) continue;
      }
      
      // save current trackParam and remove it from the track
      AliMUONTrackParam currentTrackParam(*trackParam);
      track.RemoveTrackParamAtCluster(trackParam);
      
      // get cluster info
      AliMUONVCluster* cluster = currentTrackParam.GetClusterPtr();
      Int_t chId = cluster->GetChamberId();
      Int_t halfChId = (cluster->GetX() > 0) ? 2*chId : 2*chId+1;
      Int_t deId = cluster->GetDetElemId();
      
      // compute residuals with cluster still attached to the track
      AliMUONTrackParam* referenceTrackParam = static_cast<AliMUONTrackParam*>(referenceTrack.GetTrackParamAtCluster()->UncheckedAt(iCluster));
      Double_t deltaX = cluster->GetX() - referenceTrackParam->GetNonBendingCoor();
      Double_t deltaY = cluster->GetY() - referenceTrackParam->GetBendingCoor();
      
      // compute local track angles
      Double_t angleX = TMath::ATan(referenceTrackParam->GetNonBendingSlope())*TMath::RadToDeg();
      Double_t angleY = TMath::ATan(referenceTrackParam->GetBendingSlope())*TMath::RadToDeg();
      
      // compute local chi2
      Double_t sigmaDeltaX2 = cluster->GetErrX2() - referenceTrackParam->GetCovariances()(0,0);
      Double_t sigmaDeltaY2 = cluster->GetErrY2() - referenceTrackParam->GetCovariances()(2,2);
      Double_t localChi2X = (sigmaDeltaX2 > 0.) ? deltaX*deltaX/sigmaDeltaX2 : 0.;
      Double_t localChi2Y = (sigmaDeltaY2 > 0.) ? deltaY*deltaY/sigmaDeltaY2 : 0.;
      Double_t localChi2 = 0.5 * referenceTrackParam->GetLocalChi2();
      
      // fill local chi2 info at every clusters
      ((TH2F*)fResiduals->UncheckedAt(kLocalChi2PerCh))->Fill(chId+1, localChi2X);
      ((TH2F*)fResiduals->UncheckedAt(kLocalChi2PerCh+1))->Fill(chId+1, localChi2Y);
      ((TH2F*)fResiduals->UncheckedAt(kLocalChi2PerCh+2))->Fill(chId+1, localChi2);
      ((TH2F*)fResiduals->UncheckedAt(kLocalChi2PerDE))->Fill(fDEIndices[deId], localChi2X);
      ((TH2F*)fResiduals->UncheckedAt(kLocalChi2PerDE+1))->Fill(fDEIndices[deId], localChi2Y);
      ((TH2F*)fResiduals->UncheckedAt(kLocalChi2PerDE+2))->Fill(fDEIndices[deId], localChi2);
      
      // make sure the track has another cluster in the same station and can still be refitted
      Bool_t refit = track.IsValid( 1 << (chId/2) );
      if (refit) {
	
	// refit the track and proceed if everything goes fine
	if (tracker->RefitTrack(track, kFALSE)) {
	  
	  // fill histograms of residuals with cluster still attached to the track
	  ((TH2F*)fResiduals->UncheckedAt(kResidualPerChClusterIn))->Fill(chId+1, deltaX);
	  ((TH2F*)fResiduals->UncheckedAt(kResidualPerChClusterIn+1))->Fill(chId+1, deltaY);
	  ((TH2F*)fResiduals->UncheckedAt(kResidualPerHalfChClusterIn))->Fill(halfChId+1, deltaX);
	  ((TH2F*)fResiduals->UncheckedAt(kResidualPerHalfChClusterIn+1))->Fill(halfChId+1, deltaY);
	  ((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterIn))->Fill(fDEIndices[deId], deltaX);
	  ((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterIn+1))->Fill(fDEIndices[deId], deltaY);
	  ((TH2F*)fResidualsVsP->UncheckedAt(kResidualInChVsPClusterIn+chId))->Fill(pUncorr, deltaX);
	  ((TH2F*)fResidualsVsP->UncheckedAt(kResidualInChVsPClusterIn+10+chId))->Fill(pUncorr, deltaY);
	  ((TH2F*)fResidualsVsP->UncheckedAt(kResidualVsPClusterIn))->Fill(pUncorr, deltaX);
	  ((TH2F*)fResidualsVsP->UncheckedAt(kResidualVsPClusterIn+1))->Fill(pUncorr, deltaY);
	  ((TH2F*)fResidualsVsCent->UncheckedAt(kResidualInChVsCentClusterIn+chId))->Fill(centrality, deltaX);
	  ((TH2F*)fResidualsVsCent->UncheckedAt(kResidualInChVsCentClusterIn+10+chId))->Fill(centrality, deltaY);
	  ((TH2F*)fResidualsVsCent->UncheckedAt(kResidualVsCentClusterIn))->Fill(centrality, deltaX);
	  ((TH2F*)fResidualsVsCent->UncheckedAt(kResidualVsCentClusterIn+1))->Fill(centrality, deltaY);
	  ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInChVsAngleClusterIn+chId))->Fill(angleX, deltaX);
	  ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInChVsAngleClusterIn+10+chId))->Fill(angleY, deltaY);
	  ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualVsAngleClusterIn))->Fill(angleX, deltaX);
	  ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualVsAngleClusterIn+1))->Fill(angleY, deltaY);
	  ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInHalfChVsAngleClusterIn+halfChId))->Fill(angleX, deltaX);
	  ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInHalfChVsAngleClusterIn+20+halfChId))->Fill(angleY, deltaY);
	  
	  // find the track parameters closest to the current cluster position
	  Double_t dZWithPrevious = (previousTrackParam) ? TMath::Abs(previousTrackParam->GetClusterPtr()->GetZ() - cluster->GetZ()) : FLT_MAX;
	  Int_t previousChId = (previousTrackParam) ? previousTrackParam->GetClusterPtr()->GetChamberId() : -1;
	  Double_t dZWithNext = (nextTrackParam) ? TMath::Abs(nextTrackParam->GetClusterPtr()->GetZ() - cluster->GetZ()) : FLT_MAX;
	  AliMUONTrackParam* startingTrackParam = (nextTrackParam) ? nextTrackParam : previousTrackParam;
	  if ((fExtrapMode == 0 && previousTrackParam && dZWithPrevious < dZWithNext) ||
	      (fExtrapMode == 1 && previousTrackParam && !(chId/2 == 2 && previousChId/2 == 1) &&
	       !(chId/2 == 3 && previousChId/2 == 2))) startingTrackParam = previousTrackParam;
	  
	  // reset current parameters
	  currentTrackParam.SetParameters(startingTrackParam->GetParameters());
	  currentTrackParam.SetZ(startingTrackParam->GetZ());
	  currentTrackParam.SetCovariances(startingTrackParam->GetCovariances());
	  currentTrackParam.ResetPropagator();
	  
	  // extrapolate to the current cluster position and fill histograms of residuals if everything goes fine
	  if (AliMUONTrackExtrap::ExtrapToZCov(&currentTrackParam, currentTrackParam.GetClusterPtr()->GetZ(), kTRUE)) {
	    
	    // compute MCS dispersion on the first chamber
	    TMatrixD mcsCov(5,5);
	    if (startingTrackParam == nextTrackParam && chId == 0) {
	      AliMUONTrackParam trackParamForMCS;
	      trackParamForMCS.SetParameters(nextTrackParam->GetParameters());
	      AliMUONTrackExtrap::AddMCSEffect(&trackParamForMCS,AliMUONConstants::ChamberThicknessInX0(nextTrackParam->GetClusterPtr()->GetChamberId()),-1.);
	      const TMatrixD &propagator = currentTrackParam.GetPropagator();
	      TMatrixD tmp(trackParamForMCS.GetCovariances(),TMatrixD::kMultTranspose,propagator);
	      mcsCov.Mult(propagator,tmp);
	    } else mcsCov.Zero();
	    
	    // compute residuals
	    Double_t trackResX2 = currentTrackParam.GetCovariances()(0,0) + mcsCov(0,0);
	    Double_t trackResY2 = currentTrackParam.GetCovariances()(2,2) + mcsCov(2,2);
	    deltaX = cluster->GetX() - currentTrackParam.GetNonBendingCoor();
	    deltaY = cluster->GetY() - currentTrackParam.GetBendingCoor();
	    
	    // fill histograms with cluster not attached to the track
	    ((TH2F*)fResiduals->UncheckedAt(kResidualPerChClusterOut))->Fill(chId+1, deltaX);
	    ((TH2F*)fResiduals->UncheckedAt(kResidualPerChClusterOut+1))->Fill(chId+1, deltaY);
	    ((TH2F*)fResiduals->UncheckedAt(kResidualPerHalfChClusterOut))->Fill(halfChId+1, deltaX);
	    ((TH2F*)fResiduals->UncheckedAt(kResidualPerHalfChClusterOut+1))->Fill(halfChId+1, deltaY);
	    ((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterOut))->Fill(fDEIndices[deId], deltaX);
	    ((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterOut+1))->Fill(fDEIndices[deId], deltaY);
	    ((TH2F*)fResidualsVsP->UncheckedAt(kResidualInChVsPClusterOut+chId))->Fill(pUncorr, deltaX);
	    ((TH2F*)fResidualsVsP->UncheckedAt(kResidualInChVsPClusterOut+10+chId))->Fill(pUncorr, deltaY);
	    ((TH2F*)fResidualsVsP->UncheckedAt(kResidualVsPClusterOut))->Fill(pUncorr, deltaX);
	    ((TH2F*)fResidualsVsP->UncheckedAt(kResidualVsPClusterOut+1))->Fill(pUncorr, deltaY);
	    ((TH2F*)fResidualsVsCent->UncheckedAt(kResidualInChVsCentClusterOut+chId))->Fill(centrality, deltaX);
	    ((TH2F*)fResidualsVsCent->UncheckedAt(kResidualInChVsCentClusterOut+10+chId))->Fill(centrality, deltaY);
	    ((TH2F*)fResidualsVsCent->UncheckedAt(kResidualVsCentClusterOut))->Fill(centrality, deltaX);
	    ((TH2F*)fResidualsVsCent->UncheckedAt(kResidualVsCentClusterOut+1))->Fill(centrality, deltaY);
	    ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInChVsAngleClusterOut+chId))->Fill(angleX, deltaX);
	    ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInChVsAngleClusterOut+10+chId))->Fill(angleY, deltaY);
	    ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualVsAngleClusterOut))->Fill(angleX, deltaX);
	    ((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualVsAngleClusterOut+1))->Fill(angleY, deltaY);
	    ((TH2F*)fResiduals->UncheckedAt(kTrackResPerCh))->Fill(chId+1, TMath::Sqrt(trackResX2));
	    ((TH2F*)fResiduals->UncheckedAt(kTrackResPerCh+1))->Fill(chId+1, TMath::Sqrt(trackResY2));
	    ((TH2F*)fResiduals->UncheckedAt(kTrackResPerHalfCh))->Fill(halfChId+1, TMath::Sqrt(trackResX2));
	    ((TH2F*)fResiduals->UncheckedAt(kTrackResPerHalfCh+1))->Fill(halfChId+1, TMath::Sqrt(trackResY2));
	    ((TH2F*)fResiduals->UncheckedAt(kTrackResPerDE))->Fill(fDEIndices[deId], TMath::Sqrt(trackResX2));
	    ((TH2F*)fResiduals->UncheckedAt(kTrackResPerDE+1))->Fill(fDEIndices[deId], TMath::Sqrt(trackResY2));
	    ((TH2F*)fResiduals->UncheckedAt(kMCSPerCh))->Fill(chId+1, TMath::Sqrt(mcsCov(0,0)));
	    ((TH2F*)fResiduals->UncheckedAt(kMCSPerCh+1))->Fill(chId+1, TMath::Sqrt(mcsCov(2,2)));
	    ((TH2F*)fResiduals->UncheckedAt(kMCSPerHalfCh))->Fill(halfChId+1, TMath::Sqrt(mcsCov(0,0)));
	    ((TH2F*)fResiduals->UncheckedAt(kMCSPerHalfCh+1))->Fill(halfChId+1, TMath::Sqrt(mcsCov(2,2)));
	    ((TH2F*)fResiduals->UncheckedAt(kMCSPerDE))->Fill(fDEIndices[deId], TMath::Sqrt(mcsCov(0,0)));
	    ((TH2F*)fResiduals->UncheckedAt(kMCSPerDE+1))->Fill(fDEIndices[deId], TMath::Sqrt(mcsCov(2,2)));
	    ((TH2F*)fResiduals->UncheckedAt(kClusterRes2PerCh))->Fill(chId+1, deltaX*deltaX - trackResX2);
	    ((TH2F*)fResiduals->UncheckedAt(kClusterRes2PerCh+1))->Fill(chId+1, deltaY*deltaY - trackResY2);
	  }
	  
	}
	
      }
      
      // restore the track
      track.AddTrackParamAtCluster(currentTrackParam, *(currentTrackParam.GetClusterPtr()), kTRUE);
      
    }
    
  }
  
  // Post final data. It will be written to a file with option "RECREATE"
  PostData(1, fResiduals);
  PostData(2, fResidualsVsP);
  PostData(3, fResidualsVsCent);
  PostData(4, fResidualsVsAngle);
  PostData(5, fTrackRes);
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::NotifyRun()
{
  /// load necessary data from OCDB corresponding to the first run number and initialize analysis
  
  if (fOCDBLoaded) return;
  
  AliCDBManager* cdbm = AliCDBManager::Instance();
  cdbm->SetDefaultStorage(fDefaultStorage.Data());
  cdbm->SetRun(fCurrentRunNumber);
  
  if (!AliMUONCDB::LoadField()) return;
  
  if (!AliMUONCDB::LoadMapping()) return;
  
  AliMUONRecoParam* recoParam = AliMUONCDB::LoadRecoParam();
  if (!recoParam) return;
  
  if (fImproveTracks) recoParam->ImproveTracks(kTRUE);
  else recoParam->ImproveTracks(kFALSE);
  
  AliMUONESDInterface::ResetTracker(recoParam);
  
  for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
    
    // set the cluster resolution to default if not already set and create output objects
    if (fClusterResNB[i] < 0.) fClusterResNB[i] = recoParam->GetDefaultNonBendingReso(i);
    if (fClusterResB[i] < 0.) fClusterResB[i] = recoParam->GetDefaultBendingReso(i);
    
    // fill correspondence between DEId and indices for histo (starting from 1)
    AliMpDEIterator it;
    it.First(i);
    while (!it.IsDone()) {
      fNDE++;
      fDEIndices[it.CurrentDEId()] = fNDE;
      fDEIds[fNDE] = it.CurrentDEId();
      it.Next();
    }
    
  }
  
  if (fReAlign) {
    
    // recover default storage full name (raw:// cannot be used to set specific storage)
    TString defaultStorage(cdbm->GetDefaultStorage()->GetType());
    if (defaultStorage == "alien") defaultStorage += Form("://folder=%s", cdbm->GetDefaultStorage()->GetBaseFolder().Data());
    else defaultStorage += Form("://%s", cdbm->GetDefaultStorage()->GetBaseFolder().Data());
    
    // reset existing geometry/alignment if any
    if (cdbm->GetEntryCache()->Contains("GRP/Geometry/Data")) cdbm->UnloadFromCache("GRP/Geometry/Data");
    if (cdbm->GetEntryCache()->Contains("MUON/Align/Data")) cdbm->UnloadFromCache("MUON/Align/Data");
    if (AliGeomManager::GetGeometry()) AliGeomManager::GetGeometry()->UnlockGeometry();
    
    // get original geometry transformer
    AliGeomManager::LoadGeometry();
    if (!AliGeomManager::GetGeometry()) return;
    if (fOldAlignStorage != "none") {
      if (!fOldAlignStorage.IsNull()) cdbm->SetSpecificStorage("MUON/Align/Data",fOldAlignStorage.Data());
      else cdbm->SetSpecificStorage("MUON/Align/Data",defaultStorage.Data());
      AliGeomManager::ApplyAlignObjsFromCDB("MUON");
    }
    fOldGeoTransformer = new AliMUONGeometryTransformer();
    fOldGeoTransformer->LoadGeometryData();
    
    // get new geometry transformer
    cdbm->UnloadFromCache("GRP/Geometry/Data");
    if (fOldAlignStorage != "none") cdbm->UnloadFromCache("MUON/Align/Data");
    AliGeomManager::GetGeometry()->UnlockGeometry();
    AliGeomManager::LoadGeometry();
    if (!AliGeomManager::GetGeometry()) return;
    if (!fNewAlignStorage.IsNull()) cdbm->SetSpecificStorage("MUON/Align/Data",fNewAlignStorage.Data());
    else cdbm->SetSpecificStorage("MUON/Align/Data",defaultStorage.Data());
    AliGeomManager::ApplyAlignObjsFromCDB("MUON");
    fNewGeoTransformer = new AliMUONGeometryTransformer();
    fNewGeoTransformer->LoadGeometryData();
    
  } else {
    
    // load geometry to check pads below clusters and for track extrapolation to vertex
    if (cdbm->GetEntryCache()->Contains("GRP/Geometry/Data")) cdbm->UnloadFromCache("GRP/Geometry/Data");
    if (cdbm->GetEntryCache()->Contains("MUON/Align/Data")) cdbm->UnloadFromCache("MUON/Align/Data");
    if (AliGeomManager::GetGeometry()) AliGeomManager::GetGeometry()->UnlockGeometry();
    AliGeomManager::LoadGeometry();
    if (!AliGeomManager::GetGeometry()) return;
    if (!fNewAlignStorage.IsNull()) cdbm->SetSpecificStorage("MUON/Align/Data",fNewAlignStorage.Data());
    AliGeomManager::ApplyAlignObjsFromCDB("MUON");
    fNewGeoTransformer = new AliMUONGeometryTransformer();
    fNewGeoTransformer->LoadGeometryData();
    
  }
  
  // print starting chamber resolution if required
  if (fPrintClResPerCh) {
    printf("\nstarting chamber resolution:\n");
    printf(" - non-bending:");
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) printf((i==0)?" %5.3f":", %5.3f",fClusterResNB[i]);
    printf("\n -     bending:");
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) printf((i==0)?" %6.4f":", %6.4f",fClusterResB[i]);
    printf("\n\n");
  }
  
  // get the trackCuts for this run
  if (fMuonTrackCuts) fMuonTrackCuts->SetRun(fInputHandler);
  
  fOCDBLoaded = kTRUE;
  
  UserCreateOutputObjects();
  
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::Terminate(Option_t *)
{
  /// compute final results
  
  // recover output objects
  fResiduals = static_cast<TObjArray*> (GetOutputData(1));
  fResidualsVsP = static_cast<TObjArray*> (GetOutputData(2));
  fResidualsVsCent = static_cast<TObjArray*> (GetOutputData(3));
  fResidualsVsAngle = static_cast<TObjArray*> (GetOutputData(4));
  fTrackRes = static_cast<TObjArray*> (GetOutputData(5));
  if (!fResiduals || !fResidualsVsP || !fResidualsVsCent || !fResidualsVsAngle || !fTrackRes) return;
  
  // summary graphs
  fLocalChi2 = new TObjArray(1000);
  fLocalChi2->SetOwner();
  fChamberRes = new TObjArray(1000);
  fChamberRes->SetOwner();
  fCanvases = new TObjArray(1000);
  fCanvases->SetOwner();
  fTmpHists = new TObjArray(1000);
  fTmpHists->SetOwner();
  TGraphErrors* g;
  TMultiGraph* mg;
  TCanvas* c;
  
  const char* axes[2] = {"X", "Y"};
  const char* side[2] = {"I", "O"};
  Double_t newClusterRes[2][10], newClusterResErr[2][10];
  fNDE = ((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterIn))->GetXaxis()->GetNbins();
  TString name, title;
  
  for (Int_t ia = 0; ia < 2; ia++) {
    
    // shifts per chamber
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gResidual%sPerChMean_ClusterIn",axes[ia]));
    g->SetTitle(Form("cluster-track residual-%s per Ch: mean (cluster in);chamber ID;<#Delta_{%s}> (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kResidualPerChMeanClusterIn+ia);
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gResidual%sPerChMean_ClusterOut",axes[ia]));
    g->SetTitle(Form("cluster-track residual-%s per Ch: mean (cluster out);chamber ID;<#Delta_{%s}> (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kResidualPerChMeanClusterOut+ia);
    
    // shifts per half-chamber
    g = new TGraphErrors(2*AliMUONConstants::NTrackingCh());
    g->SetName(Form("gResidual%sPerHalfChMean_ClusterIn",axes[ia]));
    g->SetTitle(Form("cluster-track residual-%s per half Ch: mean (cluster in);half chamber ID;<#Delta_{%s}> (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kResidualPerHalfChMeanClusterIn+ia);
    g = new TGraphErrors(2*AliMUONConstants::NTrackingCh());
    g->SetName(Form("gResidual%sPerHalfChMean_ClusterOut",axes[ia]));
    g->SetTitle(Form("cluster-track residual-%s per half Ch: mean (cluster out);half chamber ID;<#Delta_{%s}> (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kResidualPerHalfChMeanClusterOut+ia);
    
    // shifts per DE
    g = new TGraphErrors(fNDE);
    g->SetName(Form("gResidual%sPerDEMean_ClusterIn",axes[ia]));
    g->SetTitle(Form("cluster-track residual-%s per DE: mean (cluster in);DE ID;<#Delta_{%s}> (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kResidualPerDEMeanClusterIn+ia);
    g = new TGraphErrors(fNDE);
    g->SetName(Form("gResidual%sPerDEMean_ClusterOut",axes[ia]));
    g->SetTitle(Form("cluster-track residual-%s per DE: mean (cluster out);DE ID;<#Delta_{%s}> (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kResidualPerDEMeanClusterOut+ia);
    
    // resolution per chamber
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gResidual%sPerChSigma_ClusterIn",axes[ia]));
    g->SetTitle(Form("cluster-track residual-%s per Ch: sigma (cluster in);chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kResidualPerChSigmaClusterIn+ia);
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gResidual%sPerChSigma_ClusterOut",axes[ia]));
    g->SetTitle(Form("cluster-track residual-%s per Ch: sigma (cluster out);chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kResidualPerChSigmaClusterOut+ia);
    
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gResidual%sPerChDispersion_ClusterOut",axes[ia]));
    g->SetTitle(Form("cluster-track residual-%s per Ch: dispersion (cluster out);chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kResidualPerChDispersionClusterOut+ia);
    
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gCombinedResidual%sPerChSigma",axes[ia]));
    g->SetTitle(Form("combined cluster-track residual-%s per Ch: sigma;chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kCombinedResidualPerChSigma+ia);
    
    // resolution per half-chamber
    g = new TGraphErrors(2*AliMUONConstants::NTrackingCh());
    g->SetName(Form("gCombinedResidual%sPerHalfChSigma",axes[ia]));
    g->SetTitle(Form("combined cluster-track residual-%s per half Ch: sigma;half chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kCombinedResidualPerHalfChSigma+ia);
    
    // resolution per DE
    g = new TGraphErrors(fNDE);
    g->SetName(Form("gCombinedResidual%sPerDESigma",axes[ia]));
    g->SetTitle(Form("combined cluster-track residual-%s per DE: sigma;DE ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kCombinedResidualPerDESigma+ia);
    
    // shifts versus p
    name = Form("mgResidual%sMeanVsP_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s per chamber versus momentum: mean (cluster in);p (GeV/c^{2});<#Delta_{%s}> (cm)",axes[ia],axes[ia]);
    mg = new TMultiGraph(name.Data(), title.Data());
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
      g = new TGraphErrors(((TH2F*)fResidualsVsP->UncheckedAt(kResidualInChVsPClusterIn+10*ia+i))->GetNbinsX());
      g->SetName(Form("gShift%sVsP_ch%d",axes[ia],i+1));
      g->SetMarkerStyle(kFullDotMedium);
      g->SetMarkerColor(i+1+i/9);
      mg->Add(g,"p");
    }
    fChamberRes->AddAtAndExpand(mg, kResidualMeanClusterInVsP+ia);
    
    // resolutions versus p
    name = Form("mgCombinedResidual%sSigmaVsP",axes[ia]); title = Form("cluster %s-resolution per chamber versus momentum;p (GeV/c^{2});#sigma_{%s} (cm)",axes[ia],axes[ia]);
    mg = new TMultiGraph(name.Data(), title.Data());
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
      g = new TGraphErrors(((TH2F*)fResidualsVsP->UncheckedAt(kResidualInChVsPClusterIn+10*ia+i))->GetNbinsX());
      g->SetName(Form("gRes%sVsP_ch%d",axes[ia],i+1));
      g->SetMarkerStyle(kFullDotMedium);
      g->SetMarkerColor(i+1+i/9);
      mg->Add(g,"p");
    }
    fChamberRes->AddAtAndExpand(mg, kCombinedResidualSigmaVsP+ia);
    
    g = new TGraphErrors(((TH2F*)fResidualsVsP->UncheckedAt(kResidualVsPClusterIn+ia))->GetNbinsX());
    g->SetName(Form("gCombinedResidual%sSigmaVsP",axes[ia]));
    g->SetTitle(Form("cluster %s-resolution integrated over chambers versus momentum: sigma;p (GeV/c^{2});#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kCombinedResidualAllChSigmaVsP+ia);
    
    // shifts versus centrality
    name = Form("mgResidual%sMeanVsCent_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s per chamber versus centrality: mean (cluster in);centrality (%%);<#Delta_{%s}> (cm)",axes[ia],axes[ia]);
    mg = new TMultiGraph(name.Data(), title.Data());
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
      g = new TGraphErrors(((TH2F*)fResidualsVsCent->UncheckedAt(kResidualInChVsCentClusterIn+10*ia+i))->GetNbinsX());
      g->SetName(Form("gShift%sVsCent_ch%d",axes[ia],i+1));
      g->SetMarkerStyle(kFullDotMedium);
      g->SetMarkerColor(i+1+i/9);
      mg->Add(g,"p");
    }
    fChamberRes->AddAtAndExpand(mg, kResidualMeanClusterInVsCent+ia);
    
    // resolutions versus centrality
    name = Form("mgCombinedResidual%sSigmaVsCent",axes[ia]); title = Form("cluster %s-resolution per chamber versus centrality;centrality (%%);#sigma_{%s} (cm)",axes[ia],axes[ia]);
    mg = new TMultiGraph(name.Data(), title.Data());
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
      g = new TGraphErrors(((TH2F*)fResidualsVsCent->UncheckedAt(kResidualInChVsCentClusterIn+10*ia+i))->GetNbinsX());
      g->SetName(Form("gRes%sVsCent_ch%d",axes[ia],i+1));
      g->SetMarkerStyle(kFullDotMedium);
      g->SetMarkerColor(i+1+i/9);
      mg->Add(g,"p");
    }
    fChamberRes->AddAtAndExpand(mg, kCombinedResidualSigmaVsCent+ia);
    
    g = new TGraphErrors(((TH2F*)fResidualsVsCent->UncheckedAt(kResidualVsCentClusterIn+ia))->GetNbinsX());
    g->SetName(Form("gCombinedResidual%sSigmaVsCent",axes[ia]));
    g->SetTitle(Form("cluster %s-resolution integrated over chambers versus centrality: sigma;centrality (%%);#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kCombinedResidualAllChSigmaVsCent+ia);
    
    // shifts versus track angle
    name = Form("mgResidual%sMeanVsAngle_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s per chamber versus track angle: mean (cluster in);%s-angle (deg);<#Delta_{%s}> (cm)",axes[ia],axes[ia],axes[ia]);
    mg = new TMultiGraph(name.Data(), title.Data());
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
      g = new TGraphErrors(((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInChVsAngleClusterIn+10*ia+i))->GetNbinsX());
      g->SetName(Form("gShift%sVsAngle_ch%d",axes[ia],i+1));
      g->SetMarkerStyle(kFullDotMedium);
      g->SetMarkerColor(i+1+i/9);
      mg->Add(g,"p");
    }
    fChamberRes->AddAtAndExpand(mg, kResidualMeanClusterInVsAngle+ia);
    
    name = Form("mgHChResidual%sMeanVsAngle_ClusterIn",axes[ia]); title = Form("cluster-track residual-%s per half-chamber versus track angle: mean (cluster in);%s-angle (deg);<#Delta_{%s}> (cm)",axes[ia],axes[ia],axes[ia]);
    mg = new TMultiGraph(name.Data(), title.Data());
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
      for (Int_t j = 0; j < 2; j++) {
	g = new TGraphErrors(((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInHalfChVsAngleClusterIn+20*ia+2*i+j))->GetNbinsX());
	g->SetName(Form("gShift%sVsAngle_halfCh%d%s",axes[ia],i+1,side[j]));
	g->SetMarkerStyle(kFullDotMedium);
	g->SetMarkerColor(2*i+j+1+(2*i+j)/9);
	mg->Add(g,"p");
      }
    }
    fChamberRes->AddAtAndExpand(mg, kHChResidualMeanClusterInVsAngle+ia);
    
    // resolutions versus track angle
    name = Form("mgCombinedResidual%sSigmaVsAngle",axes[ia]); title = Form("cluster %s-resolution per chamber versus track angle;%s-angle (deg);#sigma_{%s} (cm)",axes[ia],axes[ia],axes[ia]);
    mg = new TMultiGraph(name.Data(), title.Data());
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
      g = new TGraphErrors(((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInChVsAngleClusterIn+10*ia+i))->GetNbinsX());
      g->SetName(Form("gRes%sVsAngle_ch%d",axes[ia],i+1));
      g->SetMarkerStyle(kFullDotMedium);
      g->SetMarkerColor(i+1+i/9);
      mg->Add(g,"p");
    }
    fChamberRes->AddAtAndExpand(mg, kCombinedResidualSigmaVsAngle+ia);
    
    g = new TGraphErrors(((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualVsAngleClusterIn+ia))->GetNbinsX());
    g->SetName(Form("gCombinedResidual%sSigmaVsAngle",axes[ia]));
    g->SetTitle(Form("cluster %s-resolution integrated over chambers versus track angle: sigma;%s-angle (deg);#sigma_{%s} (cm)",axes[ia],axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kCombinedResidualAllChSigmaVsAngle+ia);
    
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gTrackRes%sPerCh",axes[ia]));
    g->SetTitle(Form("track <#sigma_{%s}> per Ch;chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kTrackResPerChMean+ia);
    
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gMCS%sPerCh",axes[ia]));
    g->SetTitle(Form("MCS %s-dispersion of extrapolated track per Ch;chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kMCSPerChMean+ia);
    
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gClusterRes%sPerCh",axes[ia]));
    g->SetTitle(Form("cluster <#sigma_{%s}> per Ch;chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kClusterResPerCh+ia);
    
    g = new TGraphErrors(2*AliMUONConstants::NTrackingCh());
    g->SetName(Form("gClusterRes%sPerHalfCh",axes[ia]));
    g->SetTitle(Form("cluster <#sigma_{%s}> per half Ch;half chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kClusterResPerHalfCh+ia);
    
    g = new TGraphErrors(fNDE);
    g->SetName(Form("gClusterRes%sPerDE",axes[ia]));
    g->SetTitle(Form("cluster <#sigma_{%s}> per DE;DE ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kClusterResPerDE+ia);
    
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gCalcClusterRes%sPerCh",axes[ia]));
    g->SetTitle(Form("calculated cluster <#sigma_{%s}> per Ch;chamber ID;#sigma_{%s} (cm)",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fChamberRes->AddAtAndExpand(g, kCalcClusterResPerCh+ia);
    
    g = new TGraphErrors(AliMUONConstants::NTrackingCh());
    g->SetName(Form("gLocalChi2%sPerChMean",axes[ia]));
    g->SetTitle(Form("local chi2-%s per Ch: mean;chamber ID;<local #chi^{2}_{%s}>",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fLocalChi2->AddAtAndExpand(g, kLocalChi2PerChMean+ia);
    
    g = new TGraphErrors(fNDE);
    g->SetName(Form("gLocalChi2%sPerDEMean",axes[ia]));
    g->SetTitle(Form("local chi2-%s per DE: mean;DE ID;<local #chi^{2}_{%s}>",axes[ia],axes[ia]));
    g->SetMarkerStyle(kFullDotLarge);
    fLocalChi2->AddAtAndExpand(g, kLocalChi2PerDEMean+ia);
    
    // canvases
    name = Form("cDetailRes%sPerChClIn",axes[ia]); title = Form("cDetailRes%sPerChClIn",axes[ia]);
    c = new TCanvas(name.Data(), title.Data(), 1200, 500);
    c->Divide(5,2);
    fCanvases->AddAtAndExpand(c, kDetailResPerCh+2*ia);
    
    name = Form("cDetailRes%sPerChClOut",axes[ia]); title = Form("cDetailRes%sPerChClOut",axes[ia]);
    c = new TCanvas(name.Data(), title.Data(), 1200, 500);
    c->Divide(5,2);
    fCanvases->AddAtAndExpand(c, kDetailResPerCh+1+2*ia);
    
    name = Form("cDetailRes%sPerHalfChClIn",axes[ia]); title = Form("cDetailRes%sPerHalfChClIn",axes[ia]);
    c = new TCanvas(name.Data(), title.Data(), 1200, 800);
    c->Divide(5,4);
    fCanvases->AddAtAndExpand(c, kDetailResPerHalfCh+2*ia);
    
    name = Form("cDetailRes%sPerHalfChClOut",axes[ia]); title = Form("cDetailRes%sPerHalfChClOut",axes[ia]);
    c = new TCanvas(name.Data(), title.Data(), 1200, 800);
    c->Divide(5,4);
    fCanvases->AddAtAndExpand(c, kDetailResPerHalfCh+1+2*ia);
    
    name = Form("cDetailRes%sPerDEClIn",axes[ia]); title = Form("cDetailRes%sPerDEClIn",axes[ia]);
    c = new TCanvas(name.Data(), title.Data(), 1200, 800);
    c->Divide(13,12);
    fCanvases->AddAtAndExpand(c, kDetailResPerDE+2*ia);
    
    name = Form("cDetailRes%sPerDEClOut",axes[ia]); title = Form("cDetailRes%sPerDEClOut",axes[ia]);
    c = new TCanvas(name.Data(), title.Data(), 1200, 800);
    c->Divide(13,12);
    fCanvases->AddAtAndExpand(c, kDetailResPerDE+1+2*ia);
    
    // compute residual mean and dispersion integrated over chambers versus p
    FillMeanSigmaClusterVsX((TH2F*)fResidualsVsP->UncheckedAt(kResidualVsPClusterIn+ia),
			    (TH2F*)fResidualsVsP->UncheckedAt(kResidualVsPClusterOut+ia),
			    0x0, (TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualAllChSigmaVsP+ia));
    
    // compute residual mean and dispersion integrated over chambers versus centrality
    FillMeanSigmaClusterVsX((TH2F*)fResidualsVsCent->UncheckedAt(kResidualVsCentClusterIn+ia),
			    (TH2F*)fResidualsVsCent->UncheckedAt(kResidualVsCentClusterOut+ia),
			    0x0, (TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualAllChSigmaVsCent+ia));
    
    // compute residual mean and dispersion integrated over chambers versus track angle
    FillMeanSigmaClusterVsX((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualVsAngleClusterIn+ia),
			    (TH2F*)fResidualsVsAngle->UncheckedAt(kResidualVsAngleClusterOut+ia),
			    0x0, (TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualAllChSigmaVsAngle+ia));
    
    // compute residual mean and dispersion and averaged local chi2 per chamber and half chamber
    Double_t meanIn, meanInErr, meanOut, meanOutErr, sigma, sigmaIn, sigmaInErr, sigmaOut, sigmaOutErr;
    Double_t sigmaTrack, sigmaTrackErr, sigmaMCS, sigmaMCSErr, clusterRes, clusterResErr, sigmaCluster, sigmaClusterErr;
    Double_t dumy1, dumy2;
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
      
      // method 1
      TH1D *tmp = ((TH2F*)fResiduals->UncheckedAt(kResidualPerChClusterIn+ia))->ProjectionY(Form("hRes%sCh%dClIn",axes[ia],i+1),i+1,i+1,"e");
      tmp->SetTitle(Form("chamber %d",i+1));
      GetMeanRMS(tmp, meanIn, meanInErr, sigmaIn, sigmaInErr, (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChMeanClusterIn+ia),
		 (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChSigmaClusterIn+ia), i, i+1);
      fTmpHists->AddLast(tmp);
      
      tmp = ((TH2F*)fResiduals->UncheckedAt(kResidualPerChClusterOut+ia))->ProjectionY(Form("hRes%sCh%dClOut",axes[ia],i+1),i+1,i+1,"e");
      tmp->SetTitle(Form("chamber %d",i+1));
      GetMeanRMS(tmp, meanOut, meanOutErr, sigmaOut, sigmaOutErr, (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChMeanClusterOut+ia),
		 (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChSigmaClusterOut+ia), i, i+1);
      fTmpHists->AddLast(tmp);
      
      if (fCorrectForSystematics) {
	sigma = TMath::Sqrt(sigmaIn*sigmaIn + meanIn*meanIn);
	sigmaInErr = (sigma>0) ? TMath::Sqrt(sigmaIn*sigmaIn*sigmaInErr*sigmaInErr + meanIn*meanIn*meanInErr*meanInErr) / sigma : 0.;
	sigmaIn = sigma;
	sigma = TMath::Sqrt(sigmaOut*sigmaOut + meanOut*meanOut);
	sigmaOutErr = (sigma>0) ? TMath::Sqrt(sigmaOut*sigmaOut*sigmaOutErr*sigmaOutErr + meanOut*meanOut*meanOutErr*meanOutErr) / sigma : 0.;
	sigmaOut = sigma;
      }
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChDispersionClusterOut+ia))->SetPoint(i, i+1, sigmaOut);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChDispersionClusterOut+ia))->SetPointError(i, 0., sigmaOutErr);
      
      clusterRes = TMath::Sqrt(sigmaIn*sigmaOut);
      //      clusterResErr = (clusterRes > 0.) ? 0.5 * TMath::Sqrt(sigmaInErr*sigmaInErr*sigmaOut*sigmaOut + sigmaIn*sigmaIn*sigmaOutErr*sigmaOutErr) / clusterRes : 0.;
      clusterResErr = TMath::Sqrt(sigmaInErr*sigmaOutErr);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerChSigma+ia))->SetPoint(i, i+1, clusterRes);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerChSigma+ia))->SetPointError(i, 0., clusterResErr);
      newClusterRes[ia][i] = clusterRes;
      newClusterResErr[ia][i] = clusterResErr;
      
      // method 2
      tmp = ((TH2F*)fResiduals->UncheckedAt(kTrackResPerCh+ia))->ProjectionY("tmp",i+1,i+1,"e");
      GetMeanRMS(tmp, sigmaTrack, sigmaTrackErr, dumy1, dumy2, (TGraphErrors*)fChamberRes->UncheckedAt(kTrackResPerChMean+ia), 0x0, i, i+1, kFALSE, kFALSE);
      delete tmp;
      
      tmp = ((TH2F*)fResiduals->UncheckedAt(kMCSPerCh+ia))->ProjectionY("tmp",i+1,i+1,"e");
      GetMeanRMS(tmp, sigmaMCS, sigmaMCSErr, dumy1, dumy2, (TGraphErrors*)fChamberRes->UncheckedAt(kMCSPerChMean+ia), 0x0, i, i+1, kFALSE, kFALSE);
      delete tmp;
      
      sigmaCluster = sigmaOut*sigmaOut - sigmaTrack*sigmaTrack;
      if (sigmaCluster > 0.) {
	sigmaCluster = TMath::Sqrt(sigmaCluster);
	sigmaClusterErr = TMath::Sqrt(sigmaOut*sigmaOut*sigmaOutErr*sigmaOutErr + sigmaTrack*sigmaTrack*sigmaTrackErr*sigmaTrackErr) / sigmaCluster;
      } else {
	sigmaCluster = 0.;
	sigmaClusterErr = 0.;
      }
      ((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerCh+ia))->SetPoint(i, i+1, sigmaCluster);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerCh+ia))->SetPointError(i, 0., sigmaClusterErr);
      
      // method 3
      tmp = ((TH2F*)fResiduals->UncheckedAt(kClusterRes2PerCh+ia))->ProjectionY("tmp",i+1,i+1,"e");
      ZoomRight(tmp);
      clusterRes = tmp->GetMean();
      if (clusterRes > 0.) {
	((TGraphErrors*)fChamberRes->UncheckedAt(kCalcClusterResPerCh+ia))->SetPoint(i, i+1, TMath::Sqrt(clusterRes));
	((TGraphErrors*)fChamberRes->UncheckedAt(kCalcClusterResPerCh+ia))->SetPointError(i, 0., 0.5 * tmp->GetMeanError() / TMath::Sqrt(clusterRes));
      } else {
	((TGraphErrors*)fChamberRes->UncheckedAt(kCalcClusterResPerCh+ia))->SetPoint(i, i+1, 0.);
	((TGraphErrors*)fChamberRes->UncheckedAt(kCalcClusterResPerCh+ia))->SetPointError(i, 0., 0.);
      }
      delete tmp;
      
      // method 1 versus p
      FillMeanSigmaClusterVsX((TH2F*)fResidualsVsP->UncheckedAt(kResidualInChVsPClusterIn+10*ia+i),
			      (TH2F*)fResidualsVsP->UncheckedAt(kResidualInChVsPClusterOut+10*ia+i),
			      (TGraphErrors*)((TMultiGraph*)fChamberRes->UncheckedAt(kResidualMeanClusterInVsP+ia))->GetListOfGraphs()->FindObject(Form("gShift%sVsP_ch%d",axes[ia],i+1)),
			      (TGraphErrors*)((TMultiGraph*)fChamberRes->UncheckedAt(kCombinedResidualSigmaVsP+ia))->GetListOfGraphs()->FindObject(Form("gRes%sVsP_ch%d",axes[ia],i+1)));
      
      // method 1 versus centrality
      FillMeanSigmaClusterVsX((TH2F*)fResidualsVsCent->UncheckedAt(kResidualInChVsCentClusterIn+10*ia+i),
			      (TH2F*)fResidualsVsCent->UncheckedAt(kResidualInChVsCentClusterOut+10*ia+i),
			      (TGraphErrors*)((TMultiGraph*)fChamberRes->UncheckedAt(kResidualMeanClusterInVsCent+ia))->GetListOfGraphs()->FindObject(Form("gShift%sVsCent_ch%d",axes[ia],i+1)),
			      (TGraphErrors*)((TMultiGraph*)fChamberRes->UncheckedAt(kCombinedResidualSigmaVsCent+ia))->GetListOfGraphs()->FindObject(Form("gRes%sVsCent_ch%d",axes[ia],i+1)));
      
      // method 1 versus track angle
      FillMeanSigmaClusterVsX((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInChVsAngleClusterIn+10*ia+i),
			      (TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInChVsAngleClusterOut+10*ia+i),
			      (TGraphErrors*)((TMultiGraph*)fChamberRes->UncheckedAt(kResidualMeanClusterInVsAngle+ia))->GetListOfGraphs()->FindObject(Form("gShift%sVsAngle_ch%d",axes[ia],i+1)),
			      (TGraphErrors*)((TMultiGraph*)fChamberRes->UncheckedAt(kCombinedResidualSigmaVsAngle+ia))->GetListOfGraphs()->FindObject(Form("gRes%sVsAngle_ch%d",axes[ia],i+1)));
      
      // compute residual mean and dispersion per half chamber
      for (Int_t j = 0; j < 2; j++) {
	Int_t k = 2*i+j;
	
	// method 1
	tmp = ((TH2F*)fResiduals->UncheckedAt(kResidualPerHalfChClusterIn+ia))->ProjectionY(Form("hRes%sHalfCh%dClIn",axes[ia],k+1),k+1,k+1,"e");
	tmp->SetTitle(Form("half chamber %s",((TH2F*)fResiduals->UncheckedAt(kResidualPerHalfChClusterIn+ia))->GetXaxis()->GetBinLabel(k+1)));
	GetMeanRMS(tmp, meanIn, meanInErr, sigmaIn, sigmaInErr, (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterIn+ia), 0x0, k, k+1);
	fTmpHists->AddLast(tmp);
	
	tmp = ((TH2F*)fResiduals->UncheckedAt(kResidualPerHalfChClusterOut+ia))->ProjectionY(Form("hRes%sHalfCh%dClOut",axes[ia],k+1),k+1,k+1,"e");
	tmp->SetTitle(Form("half chamber %s",((TH2F*)fResiduals->UncheckedAt(kResidualPerHalfChClusterOut+ia))->GetXaxis()->GetBinLabel(k+1)));
	GetMeanRMS(tmp, meanOut, meanOutErr, sigmaOut, sigmaOutErr, (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterOut+ia), 0x0, k, k+1);
	fTmpHists->AddLast(tmp);
	
	if (fCorrectForSystematics) {
	  sigma = TMath::Sqrt(sigmaIn*sigmaIn + meanIn*meanIn);
	  sigmaInErr = (sigma>0) ? TMath::Sqrt(sigmaIn*sigmaIn*sigmaInErr*sigmaInErr + meanIn*meanIn*meanInErr*meanInErr) / sigma : 0.;
	  sigmaIn = sigma;
	  sigma = TMath::Sqrt(sigmaOut*sigmaOut + meanOut*meanOut);
	  sigmaOutErr = (sigma>0) ? TMath::Sqrt(sigmaOut*sigmaOut*sigmaOutErr*sigmaOutErr + meanOut*meanOut*meanOutErr*meanOutErr) / sigma : 0.;
	  sigmaOut = sigma;
	}
	
	clusterRes = TMath::Sqrt(sigmaIn*sigmaOut);
	//	clusterResErr = (clusterRes > 0.) ? 0.5 * TMath::Sqrt(sigmaInErr*sigmaInErr*sigmaOut*sigmaOut + sigmaIn*sigmaIn*sigmaOutErr*sigmaOutErr) / clusterRes : 0.;
	clusterResErr = TMath::Sqrt(sigmaInErr*sigmaOutErr);
	((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerHalfChSigma+ia))->SetPoint(k, k+1, clusterRes);
	((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerHalfChSigma+ia))->SetPointError(k, 0., clusterResErr);
	
	// method 2
	tmp = ((TH2F*)fResiduals->UncheckedAt(kTrackResPerHalfCh+ia))->ProjectionY("tmp",k+1,k+1,"e");
	GetMeanRMS(tmp, sigmaTrack, sigmaTrackErr, dumy1, dumy2, 0x0, 0x0, 0, 0, kFALSE, kFALSE);
	delete tmp;
	
	tmp = ((TH2F*)fResiduals->UncheckedAt(kMCSPerHalfCh+ia))->ProjectionY("tmp",k+1,k+1,"e");
	GetMeanRMS(tmp, sigmaMCS, sigmaMCSErr, dumy1, dumy2, 0x0, 0x0, 0, 0, kFALSE, kFALSE);
	delete tmp;
	
	sigmaCluster = sigmaOut*sigmaOut - sigmaTrack*sigmaTrack;
	if (sigmaCluster > 0.) {
	  sigmaCluster = TMath::Sqrt(sigmaCluster);
	  sigmaClusterErr = TMath::Sqrt(sigmaOut*sigmaOut*sigmaOutErr*sigmaOutErr + sigmaTrack*sigmaTrack*sigmaTrackErr*sigmaTrackErr) / sigmaCluster;
	} else {
	  sigmaCluster = 0.;
	  sigmaClusterErr = 0.;
	}
	((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerHalfCh+ia))->SetPoint(k, k+1, sigmaCluster);
	((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerHalfCh+ia))->SetPointError(k, 0., sigmaClusterErr);
	
	// method 1 versus track angle
	FillMeanSigmaClusterVsX((TH2F*)fResidualsVsAngle->UncheckedAt(kResidualInHalfChVsAngleClusterIn+20*ia+2*i+j), 0x0,
				(TGraphErrors*)((TMultiGraph*)fChamberRes->UncheckedAt(kHChResidualMeanClusterInVsAngle+ia))->GetListOfGraphs()->FindObject(Form("gShift%sVsAngle_halfCh%d%s",axes[ia],i+1,side[j])), 0x0);
	
      }
      
      // compute averaged local chi2
      tmp = ((TH2F*)fResiduals->UncheckedAt(kLocalChi2PerCh+ia))->ProjectionY("tmp",i+1,i+1,"e");
      ((TGraphErrors*)fLocalChi2->UncheckedAt(kLocalChi2PerChMean+ia))->SetPoint(i, i+1, tmp->GetMean());
      ((TGraphErrors*)fLocalChi2->UncheckedAt(kLocalChi2PerChMean+ia))->SetPointError(i, 0., tmp->GetMeanError());
      delete tmp;
      
    }
    
    // compute residual mean and dispersion per DE
    for (Int_t i = 0; i < fNDE; i++) {
      
      // method 1
      TH1D *tmp = ((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterIn+ia))->ProjectionY(Form("hRes%sDE%dClIn",axes[ia],i+1),i+1,i+1,"e");
      tmp->SetTitle(Form("DE %s",((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterIn+ia))->GetXaxis()->GetBinLabel(i+1)));
      GetMeanRMS(tmp, meanIn, meanInErr, sigmaIn, sigmaInErr, (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterIn+ia), 0x0, i, i+1);
      fTmpHists->AddLast(tmp);
      
      tmp = ((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterOut+ia))->ProjectionY(Form("hRes%sDE%dClOut",axes[ia],i+1),i+1,i+1,"e");
      tmp->SetTitle(Form("DE %s",((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterOut+ia))->GetXaxis()->GetBinLabel(i+1)));
      GetMeanRMS(tmp, meanOut, meanOutErr, sigmaOut, sigmaOutErr, (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterOut+ia), 0x0, i, i+1);
      fTmpHists->AddLast(tmp);
      
      if (fCorrectForSystematics) {
	sigma = TMath::Sqrt(sigmaIn*sigmaIn + meanIn*meanIn);
	sigmaInErr = (sigma>0) ? TMath::Sqrt(sigmaIn*sigmaIn*sigmaInErr*sigmaInErr + meanIn*meanIn*meanInErr*meanInErr) / sigma : 0.;
	sigmaIn = sigma;
	sigma = TMath::Sqrt(sigmaOut*sigmaOut + meanOut*meanOut);
	sigmaOutErr = (sigma>0) ? TMath::Sqrt(sigmaOut*sigmaOut*sigmaOutErr*sigmaOutErr + meanOut*meanOut*meanOutErr*meanOutErr) / sigma : 0.;
	sigmaOut = sigma;
      }
      
      clusterRes = TMath::Sqrt(sigmaIn*sigmaOut);
      //      clusterResErr = (clusterRes > 0.) ? 0.5 * TMath::Sqrt(sigmaInErr*sigmaInErr*sigmaOut*sigmaOut + sigmaIn*sigmaIn*sigmaOutErr*sigmaOutErr) / clusterRes : 0.;
      clusterResErr = TMath::Sqrt(sigmaInErr*sigmaOutErr);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerDESigma+ia))->SetPoint(i, i+1, clusterRes);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerDESigma+ia))->SetPointError(i, 0., clusterResErr);
      
      // method 2
      tmp = ((TH2F*)fResiduals->UncheckedAt(kTrackResPerDE+ia))->ProjectionY("tmp",i+1,i+1,"e");
      GetMeanRMS(tmp, sigmaTrack, sigmaTrackErr, dumy1, dumy2, 0x0, 0x0, 0, 0, kFALSE, kFALSE);
      delete tmp;
      
      tmp = ((TH2F*)fResiduals->UncheckedAt(kMCSPerDE+ia))->ProjectionY("tmp",i+1,i+1,"e");
      GetMeanRMS(tmp, sigmaMCS, sigmaMCSErr, dumy1, dumy2, 0x0, 0x0, 0, 0, kFALSE, kFALSE);
      delete tmp;
      
      sigmaCluster = sigmaOut*sigmaOut - sigmaTrack*sigmaTrack;
      if (sigmaCluster > 0.) {
	sigmaCluster = TMath::Sqrt(sigmaCluster);
	sigmaClusterErr = TMath::Sqrt(sigmaOut*sigmaOut*sigmaOutErr*sigmaOutErr + sigmaTrack*sigmaTrack*sigmaTrackErr*sigmaTrackErr) / sigmaCluster;
      } else {
	sigmaCluster = 0.;
	sigmaClusterErr = 0.;
      }
      ((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerDE+ia))->SetPoint(i, i+1, sigmaCluster);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerDE+ia))->SetPointError(i, 0., sigmaClusterErr);
      
      // compute averaged local chi2
      tmp = ((TH2F*)fResiduals->UncheckedAt(kLocalChi2PerDE+ia))->ProjectionY("tmp",i+1,i+1,"e");
      ((TGraphErrors*)fLocalChi2->UncheckedAt(kLocalChi2PerDEMean+ia))->SetPoint(i, i+1, tmp->GetMean());
      ((TGraphErrors*)fLocalChi2->UncheckedAt(kLocalChi2PerDEMean+ia))->SetPointError(i, 0., tmp->GetMeanError());
      delete tmp;
      
    }
    
    // set half-chamber graph labels
    TAxis* xAxis = ((TH2F*)fResiduals->UncheckedAt(kResidualPerHalfChClusterIn+ia))->GetXaxis();
    ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterIn+ia))->GetXaxis()->Set(20, 0.5, 20.5);
    ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterOut+ia))->GetXaxis()->Set(20, 0.5, 20.5);
    ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerHalfChSigma+ia))->GetXaxis()->Set(20, 0.5, 20.5);
    ((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerHalfCh+ia))->GetXaxis()->Set(20, 0.5, 20.5);
    for (Int_t i = 1; i <= 20; i++) {
      const char* label = xAxis->GetBinLabel(i);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterIn+ia))->GetXaxis()->SetBinLabel(i, label);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterOut+ia))->GetXaxis()->SetBinLabel(i, label);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerHalfChSigma+ia))->GetXaxis()->SetBinLabel(i, label);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerHalfCh+ia))->GetXaxis()->SetBinLabel(i, label);
    }
    
    // set DE graph labels
    xAxis = ((TH2F*)fResiduals->UncheckedAt(kResidualPerDEClusterOut+ia))->GetXaxis();
    ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterIn+ia))->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
    ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterOut+ia))->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
    ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerDESigma+ia))->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
    ((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerDE+ia))->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
    ((TGraphErrors*)fLocalChi2->UncheckedAt(kLocalChi2PerDEMean+ia))->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
    for (Int_t i = 1; i <= fNDE; i++) {
      const char* label = xAxis->GetBinLabel(i);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterIn+ia))->GetXaxis()->SetBinLabel(i, label);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterOut+ia))->GetXaxis()->SetBinLabel(i, label);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerDESigma+ia))->GetXaxis()->SetBinLabel(i, label);
      ((TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerDE+ia))->GetXaxis()->SetBinLabel(i, label);
      ((TGraphErrors*)fLocalChi2->UncheckedAt(kLocalChi2PerDEMean+ia))->GetXaxis()->SetBinLabel(i, label);
    }
    
  }
  
  // compute averaged local chi2 per chamber (X+Y)
  TH2F* h2 = (TH2F*)fResiduals->UncheckedAt(kLocalChi2PerCh+2);
  g = new TGraphErrors(AliMUONConstants::NTrackingCh());
  g->SetName("gLocalChi2PerChMean");
  g->SetTitle("local chi2 per Ch: mean;chamber ID;<local #chi^{2}>");
  g->SetMarkerStyle(kFullDotLarge);
  fLocalChi2->AddAtAndExpand(g, kLocalChi2PerChMean+2);
  for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) {
    TH1D* tmp = h2->ProjectionY("tmp",i+1,i+1,"e");
    g->SetPoint(i, i+1, tmp->GetMean());
    g->SetPointError(i, 0., tmp->GetMeanError());
    delete tmp;
  }
  
  // compute averaged local chi2 per DE (X+Y)
  h2 = (TH2F*)fResiduals->UncheckedAt(kLocalChi2PerDE+2);
  g = new TGraphErrors(fNDE);
  g->SetName("gLocalChi2PerDEMean");
  g->SetTitle("local chi2 per DE: mean;DE ID;<local #chi^{2}>");
  g->SetMarkerStyle(kFullDotLarge);
  fLocalChi2->AddAtAndExpand(g, kLocalChi2PerDEMean+2);
  for (Int_t i = 0; i < fNDE; i++) {
    TH1D* tmp = h2->ProjectionY("tmp",i+1,i+1,"e");
    g->SetPoint(i, i+1, tmp->GetMean());
    g->SetPointError(i, 0., tmp->GetMeanError());
    delete tmp;
  }
  
  // set graph labels
  g->GetXaxis()->Set(fNDE, 0.5, fNDE+0.5);
  for (Int_t i = 1; i <= fNDE; i++) {
    const char* label = h2->GetXaxis()->GetBinLabel(i);
    g->GetXaxis()->SetBinLabel(i, label);
  }
  
  // display
  TLegend *lResPerChMean = new TLegend(0.75,0.85,0.99,0.99);
  TLegend *lResPerChSigma1 = new TLegend(0.75,0.85,0.99,0.99);
  TLegend *lResPerChSigma2 = new TLegend(0.75,0.85,0.99,0.99);
  TLegend *lResPerChSigma3 = new TLegend(0.75,0.85,0.99,0.99);
  
  TCanvas* cResPerCh = new TCanvas("cResPerCh","cResPerCh",1200,500);
  cResPerCh->Divide(4,2);
  for (Int_t ia = 0; ia < 2; ia++) {
    cResPerCh->cd(1+4*ia);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChMeanClusterOut+ia);
    g->Draw("ap");
    g->SetMarkerColor(2);
    g->SetLineColor(2);
    if (ia == 0) lResPerChMean->AddEntry(g,"cluster out","PL");
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChMeanClusterIn+ia);
    g->Draw("p");
    g->SetMarkerColor(4);
    g->SetLineColor(4);
    if (ia == 0) lResPerChMean->AddEntry(g,"cluster in","PL");
    if (ia == 0) lResPerChMean->Draw();
    else lResPerChMean->DrawClone();
    cResPerCh->cd(2+4*ia);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChSigmaClusterOut+ia);
    g->Draw("ap");
    g->SetMinimum(0.);
    g->SetMarkerColor(2);
    g->SetLineColor(2);
    if (ia == 0) lResPerChSigma1->AddEntry(g,"cluster out","PL");
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChSigmaClusterIn+ia);
    g->Draw("p");
    g->SetMarkerColor(4);
    g->SetLineColor(4);
    if (ia == 0) lResPerChSigma1->AddEntry(g,"cluster in","PL");
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kMCSPerChMean+ia);
    g->Draw("p");
    g->SetMarkerColor(5);
    g->SetLineColor(5);
    if (ia == 0) lResPerChSigma1->AddEntry(g,"MCS","PL");
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerChSigma+ia);
    g->Draw("p");
    g->SetMarkerColor(3);
    g->SetLineColor(3);
    if (ia == 0) lResPerChSigma1->AddEntry(g,"combined 1","PL");
    if (ia == 0) lResPerChSigma1->Draw();
    else lResPerChSigma1->DrawClone();
    cResPerCh->cd(3+4*ia);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerChDispersionClusterOut+ia);
    g->Draw("ap");
    g->SetMinimum(0.);
    g->SetMarkerColor(2);
    g->SetLineColor(2);
    if (ia == 0) lResPerChSigma2->AddEntry(g,"cluster out","PL");
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kMCSPerChMean+ia);
    g->Draw("p");
    if (ia == 0) lResPerChSigma2->AddEntry(g,"MCS","PL");
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kTrackResPerChMean+ia);
    g->Draw("p");
    g->SetMarkerColor(4);
    g->SetLineColor(4);
    if (ia == 0) lResPerChSigma2->AddEntry(g,"track res.","PL");
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerCh+ia);
    g->Draw("p");
    if (ia == 0) lResPerChSigma2->AddEntry(g,"combined 2","PL");
    if (ia == 0) lResPerChSigma2->Draw();
    else lResPerChSigma2->DrawClone();
    cResPerCh->cd(4+4*ia);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerChSigma+ia);
    g->Draw("ap");
    g->SetMinimum(0.);
    if (ia == 0) lResPerChSigma3->AddEntry(g,"combined 1","PL");
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerCh+ia);
    g->Draw("p");
    if (ia == 0) lResPerChSigma3->AddEntry(g,"combined 2","PL");
    if (ia == 0) lResPerChSigma3->Draw();
    else lResPerChSigma3->DrawClone();
  }
  fCanvases->AddAtAndExpand(cResPerCh, kResPerCh);
  
  TCanvas* cResPerHalfCh = new TCanvas("cResPerHalfCh","cResPerHalfCh",1200,500);
  cResPerHalfCh->Divide(2,2);
  for (Int_t ia = 0; ia < 2; ia++) {
    cResPerHalfCh->cd(1+2*ia);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterOut+ia);
    g->Draw("ap");
    g->SetMarkerColor(2);
    g->SetLineColor(2);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterIn+ia);
    g->Draw("p");
    g->SetMarkerColor(4);
    g->SetLineColor(4);
    lResPerChMean->DrawClone();
    cResPerHalfCh->cd(2+2*ia);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerHalfChSigma+ia);
    g->Draw("ap");
    g->SetMinimum(0.);
    g->SetMarkerColor(3);
    g->SetLineColor(3);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerHalfCh+ia);
    g->Draw("p");
    lResPerChSigma3->DrawClone();
  }
  fCanvases->AddAtAndExpand(cResPerHalfCh, kResPerHalfCh);
  
  TCanvas* cResPerDE = new TCanvas("cResPerDE","cResPerDE",1200,800);
  cResPerDE->Divide(1,4);
  for (Int_t ia = 0; ia < 2; ia++) {
    cResPerDE->cd(1+ia);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterOut+ia);
    g->Draw("ap");
    g->SetMarkerColor(2);
    g->SetLineColor(2);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterIn+ia);
    g->Draw("p");
    g->SetMarkerColor(4);
    g->SetLineColor(4);
    lResPerChMean->DrawClone();
    cResPerDE->cd(3+ia);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerDESigma+ia);
    g->Draw("ap");
    g->SetMinimum(0.);
    g->SetMarkerColor(3);
    g->SetLineColor(3);
    g = (TGraphErrors*)fChamberRes->UncheckedAt(kClusterResPerDE+ia);
    g->Draw("p");
    lResPerChSigma3->DrawClone();
  }
  fCanvases->AddAtAndExpand(cResPerDE, kResPerDE);
  
  TCanvas* cResPerChVsP = new TCanvas("cResPerChVsP","cResPerChVsP");
  cResPerChVsP->Divide(1,2);
  for (Int_t ia = 0; ia < 2; ia++) {
    cResPerChVsP->cd(1+ia);
    mg = (TMultiGraph*)fChamberRes->UncheckedAt(kCombinedResidualSigmaVsP+ia);
    mg->Draw("ap");
  }
  fCanvases->AddAtAndExpand(cResPerChVsP, kResPerChVsP);
  
  TCanvas* cResPerChVsCent = new TCanvas("cResPerChVsCent","cResPerChVsCent");
  cResPerChVsCent->Divide(1,2);
  for (Int_t ia = 0; ia < 2; ia++) {
    cResPerChVsCent->cd(1+ia);
    mg = (TMultiGraph*)fChamberRes->UncheckedAt(kCombinedResidualSigmaVsCent+ia);
    mg->Draw("ap");
  }
  fCanvases->AddAtAndExpand(cResPerChVsCent, kResPerChVsCent);
  
  TCanvas* cResPerChVsAngle = new TCanvas("cResPerChVsAngle","cResPerChVsAngle");
  cResPerChVsAngle->Divide(1,2);
  for (Int_t ia = 0; ia < 2; ia++) {
    cResPerChVsAngle->cd(1+ia);
    mg = (TMultiGraph*)fChamberRes->UncheckedAt(kCombinedResidualSigmaVsAngle+ia);
    mg->Draw("ap");
  }
  fCanvases->AddAtAndExpand(cResPerChVsAngle, kResPerChVsAngle);
  
  TCanvas* cShiftPerChVsP = new TCanvas("cShiftPerChVsP","cShiftPerChVsP");
  cShiftPerChVsP->Divide(1,2);
  for (Int_t ia = 0; ia < 2; ia++) {
    cShiftPerChVsP->cd(1+ia);
    mg = (TMultiGraph*)fChamberRes->UncheckedAt(kResidualMeanClusterInVsP+ia);
    mg->Draw("ap");
  }
  fCanvases->AddAtAndExpand(cShiftPerChVsP, kShiftPerChVsP);
  
  TCanvas* cShiftPerChVsCent = new TCanvas("cShiftPerChVsCent","cShiftPerChVsCent");
  cShiftPerChVsCent->Divide(1,2);
  for (Int_t ia = 0; ia < 2; ia++) {
    cShiftPerChVsCent->cd(1+ia);
    mg = (TMultiGraph*)fChamberRes->UncheckedAt(kResidualMeanClusterInVsCent+ia);
    mg->Draw("ap");
  }
  fCanvases->AddAtAndExpand(cShiftPerChVsCent, kShiftPerChVsCent);
  
  TCanvas* cShiftPerChVsAngle = new TCanvas("cShiftPerChVsAngle","cShiftPerChVsAngle");
  cShiftPerChVsAngle->Divide(1,2);
  for (Int_t ia = 0; ia < 2; ia++) {
    cShiftPerChVsAngle->cd(1+ia);
    mg = (TMultiGraph*)fChamberRes->UncheckedAt(kResidualMeanClusterInVsAngle+ia);
    mg->Draw("ap");
  }
  fCanvases->AddAtAndExpand(cShiftPerChVsAngle, kShiftPerChVsAngle);
  
  // print results
  if (fPrintClResPerCh) {
    printf("\nchamber resolution:\n");
    printf(" - non-bending:");
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) printf((i==0)?" %5.3f":", %5.3f",newClusterRes[0][i]);
    printf("\n -     bending:");
    for (Int_t i = 0; i < AliMUONConstants::NTrackingCh(); i++) printf((i==0)?" %6.4f":", %6.4f",newClusterRes[1][i]);
    printf("\n\n");
  }
  
  if (fPrintClResPerDE) {
    Double_t iDE, clRes;
    printf("\nDE resolution:\n");
    printf(" - non-bending:");
    for (Int_t i = 0; i < fNDE; i++) {
      ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerDESigma))->GetPoint(i, iDE, clRes);
      printf((i==0)?" %5.3f":", %5.3f", clRes);
    }
    printf("\n -     bending:");
    for (Int_t i = 0; i < fNDE; i++) {
      ((TGraphErrors*)fChamberRes->UncheckedAt(kCombinedResidualPerDESigma+1))->GetPoint(i, iDE, clRes);
      printf((i==0)?" %6.4f":", %6.4f", clRes);
    }
    printf("\n\n");
  }
  
  if (fPrintHalfChShift) {
    Double_t iHCh, hChShift;
    printf("\nhalf-chamber residual displacements:\n");
    printf(" - non-bending:");
    for (Int_t i = 0; i < 2*AliMUONConstants::NTrackingCh(); i++) {
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterIn))->GetPoint(i, iHCh, hChShift);
      printf((i==0)?" %6.4f":", %6.4f", hChShift);
    }
    printf("\n -     bending:");
    for (Int_t i = 0; i < 2*AliMUONConstants::NTrackingCh(); i++) {
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerHalfChMeanClusterIn+1))->GetPoint(i, iHCh, hChShift);
      printf((i==0)?" %6.4f":", %6.4f", hChShift);
    }
    printf("\n\n");
  }
  
  if (fPrintDEShift) {
    Double_t iDE, deShift;
    printf("\nDE residual displacements:\n");
    printf(" - non-bending:");
    for (Int_t i = 0; i < fNDE; i++) {
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterIn))->GetPoint(i, iDE, deShift);
      printf((i==0)?" %6.4f":", %6.4f", deShift);
    }
    printf("\n -     bending:");
    for (Int_t i = 0; i < fNDE; i++) {
      ((TGraphErrors*)fChamberRes->UncheckedAt(kResidualPerDEMeanClusterIn+1))->GetPoint(i, iDE, deShift);
      printf((i==0)?" %6.4f":", %6.4f", deShift);
    }
    printf("\n\n");
  }
  
  // Post final data.
  PostData(6, fLocalChi2);
  PostData(7, fChamberRes);
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::ModifyClusters(AliMUONTrack& track)
{
  /// Reset the clusters resolution from the ones given to the task and change
  /// the cluster position according to the new alignment parameters if required
  
  Double_t gX,gY,gZ,lX,lY,lZ;
  
  // loop over clusters
  Int_t nClusters = track.GetNClusters();
  for (Int_t iCluster=0; iCluster<nClusters; iCluster++) {
    
    AliMUONVCluster* cl = static_cast<AliMUONTrackParam*>(track.GetTrackParamAtCluster()->UncheckedAt(iCluster))->GetClusterPtr();
    Int_t chId = cl->GetChamberId();
    Int_t halfChId = (cl->GetX() > 0) ? 2*chId : 2*chId+1;
    Int_t deId = cl->GetDetElemId();
    
    // change their resolution
    cl->SetErrXY(fClusterResNB[chId], fClusterResB[chId]);
    /*
    //    if (deId == 915 || deId == 710 ||deId == 1025 || deId == 818 || deId == 806) printf("Bad DE!!!\n");
    if (deId == 915) cl->SetErrXY(10., 10.);
    if (deId == 710) cl->SetErrXY(10., 10.);
    if (deId == 1025) cl->SetErrXY(10., 10.);
    if (deId == 818) cl->SetErrXY(10., 10.);
    if (deId == 806) cl->SetErrXY(10., 10.);
    */
    // change their position
    gX = cl->GetX();
    gY = cl->GetY();
    gZ = cl->GetZ();
    if (fReAlign) { // change the alignement
      fOldGeoTransformer->Global2Local(deId,gX,gY,gZ,lX,lY,lZ);
      fNewGeoTransformer->Local2Global(deId,lX,lY,lZ,gX,gY,gZ);
    }
    if (fShiftHalfCh) { // correct for half-chamber displacement
      gX -= fHalfChShiftNB[halfChId];
      gY -= fHalfChShiftB[halfChId];
    }
    if (fShiftDE) { // correct for DE displacement
      gX -= fDEShiftNB[fDEIndices[deId]-1];
      gY -= fDEShiftB[fDEIndices[deId]-1];
    }
    cl->SetXYZ(gX,gY,gZ);
    
    // "remove" mono-cathod clusters on stations 3-4-5 if required
    // (to be done after moving clusters to the new position)
    if (fRemoveMonoCathCl && chId > 3) {
      Bool_t hasBending, hasNonBending;
      if (fCheckAllPads) CheckPads(cl, hasBending, hasNonBending);
      else CheckPadsBelow(cl, hasBending, hasNonBending);
      if (!hasNonBending) cl->SetErrXY(10., cl->GetErrY());
      if (!hasBending) cl->SetErrXY(cl->GetErrX(), 10.);
    }
    
  }
  
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::Zoom(TH1* h, Double_t fractionCut)
{
  /// Reduce the range of the histogram by removing a given fration of the statistic at each edge
  ZoomLeft(h, fractionCut);
  ZoomRight(h, fractionCut);
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::ZoomLeft(TH1* h, Double_t fractionCut)
{
  /// Reduce the range of the histogram by removing a given fration of the statistic on the left side
  Int_t maxEventsCut = (Int_t) (fractionCut * h->GetEntries());
  Int_t nBins = h->GetNbinsX();
  
  // set low edge  
  Int_t minBin;
  Int_t eventsCut = 0;
  for (minBin = 1; minBin <= nBins; minBin++) {
    eventsCut += (Int_t) h->GetBinContent(minBin);
    if (eventsCut > maxEventsCut) break;
  }
  
  // set new axis range
  h->GetXaxis()->SetRange(--minBin, h->GetXaxis()->GetLast());
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::ZoomRight(TH1* h, Double_t fractionCut)
{
  /// Reduce the range of the histogram by removing a given fration of the statistic on the right side
  Int_t maxEventsCut = (Int_t) (fractionCut * h->GetEntries());
  Int_t nBins = h->GetNbinsX();
  
  // set high edge
  Int_t maxBin;
  Int_t eventsCut = 0;
  for (maxBin = nBins; maxBin >= 1; maxBin--) {
    eventsCut += (Int_t) h->GetBinContent(maxBin);
    if (eventsCut > maxEventsCut) break;
  }
  
  // set new axis range
  h->GetXaxis()->SetRange(h->GetXaxis()->GetFirst(), ++maxBin);
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::GetMeanRMS(TH1* h, Double_t& mean, Double_t& meanErr,
					       Double_t& rms, Double_t& rmsErr,
					       TGraphErrors* gMean, TGraphErrors* gRMS,
					       Int_t i, Double_t x, Bool_t zoom, Bool_t enableFit)
{
  /// Fill graphs with the mean and rms values and the corresponding error (zooming if required)
  
  if (h->GetEntries() < fgkMinEntries) { // not enough entries
    
    mean = 0.;
    meanErr = 0.;
    rms = 0.;
    rmsErr = 0.;
    
  } else if (enableFit && fGaus) { // take the mean of a gaussian fit
    
    // first fit
    Double_t xMin = h->GetXaxis()->GetXmin();
    Double_t xMax = h->GetXaxis()->GetXmax();
    fGaus->SetRange(xMin, xMax);
    fGaus->SetParameters(h->GetEntries(), 0., 0.1);
    fGaus->SetParLimits(1, xMin, xMax);
    h->Fit("fGaus", "WWNQ");
    
    // rebin histo
    Int_t rebin = TMath::Max(static_cast<Int_t>(0.3*fGaus->GetParameter(2)/h->GetBinWidth(1)),1);
    while (h->GetNbinsX()%rebin!=0) rebin--;
    h->Rebin(rebin);
    
    // second fit
    xMin = TMath::Max(fGaus->GetParameter(1)-10.*fGaus->GetParameter(2), h->GetXaxis()->GetXmin());
    xMax = TMath::Min(fGaus->GetParameter(1)+10.*fGaus->GetParameter(2), h->GetXaxis()->GetXmax());
    fGaus->SetRange(xMin, xMax);
    fGaus->SetParLimits(1, xMin, xMax);
    h->Fit("fGaus","NQR");
    
    mean = fGaus->GetParameter(1);
    meanErr = fGaus->GetParError(1);
    rms = fGaus->GetParameter(2);
    rmsErr = fGaus->GetParError(2);
    
    // display the detail of the fit
    if (!strstr(h->GetName(),"tmp")) {
      Int_t ia = (strstr(h->GetName(),"ResX")) ? 0 : 1;
      Int_t ib = (strstr(h->GetName(),"ClIn")) ? 0 : 1;
      if (strstr(h->GetName(),"Half")) ((TCanvas*)fCanvases->UncheckedAt(kDetailResPerHalfCh+ib+2*ia))->cd(i+1);
      else if (strstr(h->GetName(),"Ch")) ((TCanvas*)fCanvases->UncheckedAt(kDetailResPerCh+ib+2*ia))->cd(i+1);
      else ((TCanvas*)fCanvases->UncheckedAt(kDetailResPerDE+ib+2*ia))->cd(i+1);
      gPad->SetLogy();
      h->Draw("hist");
      TF1* f = (TF1*)fGaus->DrawClone("same");
      f->SetLineWidth(1);
      f->SetLineColor(2);
      fTmpHists->AddLast(f);
    }
    
  } else { // take the mean of the distribution
    
    if (zoom) Zoom(h);
    
    mean = h->GetMean();
    meanErr = h->GetMeanError();
    rms = h->GetRMS();
    rmsErr = h->GetRMSError();
    
    if (zoom) h->GetXaxis()->SetRange(0,0);
    
  }
  
  // fill graph if required
  if (gMean) {
    gMean->SetPoint(i, x, mean);
    gMean->SetPointError(i, 0., meanErr);
  }
  if (gRMS) {
    gRMS->SetPoint(i, x, rms);
    gRMS->SetPointError(i, 0., rmsErr);
  }
  
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::FillMeanSigmaClusterVsX(const TH2* hIn, const TH2* hOut,
							    TGraphErrors* gMean, TGraphErrors* gSigma)
{
  /// Fill graph with cluster shift (cluster in) if gMean != OxO
  /// and resolution from combined residuals with cluster in/out (zooming if required)
  Double_t meanIn, meanInErr, sigmaIn, sigmaInErr, sigmaOut, sigmaOutErr, clusterRes, clusterResErr, dumy1, dumy2;
  for (Int_t j = 1; j <= hIn->GetNbinsX(); j++) {
    TH1D* tmp = hIn->ProjectionY("tmp",j,j,"e");
    GetMeanRMS(tmp, meanIn, meanInErr, sigmaIn, sigmaInErr, 0x0, 0x0, 0, 0.);
    delete tmp;
    if (hOut) {
      tmp = hOut->ProjectionY("tmp",j,j,"e");
      GetMeanRMS(tmp, dumy1, dumy2, sigmaOut, sigmaOutErr, 0x0, 0x0, 0, 0.);
      delete tmp;
    }
    Double_t x = 0.5 * (hIn->GetBinLowEdge(j) + hIn->GetBinLowEdge(j+1));
    Double_t xErr = x - hIn->GetBinLowEdge(j);
    if (gMean) {
      gMean->SetPoint(j-1, x, meanIn);
      gMean->SetPointError(j-1, xErr, meanInErr);
    }
    if (hOut && gSigma) {
      clusterRes = TMath::Sqrt(sigmaIn*sigmaOut);
      //clusterResErr = (clusterRes > 0.) ? 0.5 * TMath::Sqrt(sigmaInErr*sigmaInErr*sigmaOut*sigmaOut + sigmaIn*sigmaIn*sigmaOutErr*sigmaOutErr) / clusterRes : 0.;
      clusterResErr = TMath::Sqrt(sigmaInErr*sigmaOutErr);
      gSigma->SetPoint(j-1, x, clusterRes);
      gSigma->SetPointError(j-1, xErr, clusterResErr);
    }
  }
}

//__________________________________________________________________________
void AliAnalysisTaskMuonResolution::Cov2CovP(const AliMUONTrackParam &param, TMatrixD &covP)
{
  /// change coordinate system: (X, SlopeX, Y, SlopeY, q/Pyz) -> (X, Y, pX, pY, pZ)
  /// parameters (param) are given in the (X, SlopeX, Y, SlopeY, q/Pyz) coordinate system
  
  // Get useful parameters
  Double_t slopeX = param.GetNonBendingSlope();
  Double_t slopeY = param.GetBendingSlope();
  Double_t qOverPYZ = param.GetInverseBendingMomentum();
  Double_t pZ = param.Pz();
  
  // compute Jacobian to change the coordinate system from (X,SlopeX,Y,SlopeY,c/pYZ) to (X,Y,pX,pY,pZ)
  Double_t dpZdSlopeY = - qOverPYZ * qOverPYZ * pZ * pZ * pZ * slopeY;
  Double_t dpZdQOverPYZ = (qOverPYZ != 0.) ? - pZ / qOverPYZ : - FLT_MAX;
  TMatrixD jacob(5,5);
  jacob.Zero();
  jacob(0,0) = 1.;
  jacob(1,2) = 1.;
  jacob(2,1) = pZ;
  jacob(2,3) = slopeX * dpZdSlopeY;
  jacob(2,4) = slopeX * dpZdQOverPYZ;
  jacob(3,3) = pZ + slopeY * dpZdSlopeY;
  jacob(3,4) = slopeY * dpZdQOverPYZ;
  jacob(4,3) = dpZdSlopeY;
  jacob(4,4) = dpZdQOverPYZ;
  
  // compute covariances in new coordinate system
  TMatrixD tmp(param.GetCovariances(),TMatrixD::kMultTranspose,jacob);
  covP.Mult(jacob,tmp);
}

//__________________________________________________________________________
UInt_t AliAnalysisTaskMuonResolution::BuildTriggerWord(const TString& firedTriggerClasses)
{
  /// build the trigger word from the fired trigger classes and the list of selectable trigger
  
  UInt_t word = 0;
  
  TObjString* trigClasseName = 0x0;
  TIter nextTrigger(fSelectTriggerClass);
  while ((trigClasseName = static_cast<TObjString*>(nextTrigger()))) {
    
    TRegexp GenericTriggerClasseName(trigClasseName->String());
    if (firedTriggerClasses.Contains(GenericTriggerClasseName)) word |= trigClasseName->GetUniqueID();
    
  }
  
  return word;
}

//__________________________________________________________________________
void AliAnalysisTaskMuonResolution::CheckPads(AliMUONVCluster *cl, Bool_t &hasBending, Bool_t &hasNonBending) const
{
  /// Check that this cluster contains pads on both cathods
  
  // reset
  hasBending = kFALSE;
  hasNonBending = kFALSE;
  
  // loop over digits contained in the cluster
  for (Int_t iDigit = 0; iDigit < cl->GetNDigits(); iDigit++) {
    
    Int_t manuId = AliMUONVDigit::ManuId(cl->GetDigitId(iDigit));
    
    // check the location of the manu the digit belongs to
    if (manuId > 0) {
      if (manuId & AliMpConstants::ManuMask(AliMp::kNonBendingPlane)) hasNonBending = kTRUE;
      else hasBending = kTRUE;
    }
    
  }
  
}

//________________________________________________________________________
void AliAnalysisTaskMuonResolution::CheckPadsBelow(AliMUONVCluster *cl, Bool_t &hasBending, Bool_t &hasNonBending) const
{
  /// Check that this cluster contains pads on both cathods just under its position
  
  // reset
  hasBending = kFALSE;
  hasNonBending = kFALSE;
  
  // get the cathod corresponding to the bending/non-bending plane
  Int_t deId = cl->GetDetElemId();
  AliMpDetElement* de = AliMpDDLStore::Instance()->GetDetElement(deId, kFALSE);
  if (!de) return;
  AliMp::CathodType cath1 = de->GetCathodType(AliMp::kBendingPlane); 
  AliMp::CathodType cath2 = de->GetCathodType(AliMp::kNonBendingPlane); 
  
  // get the corresponding segmentation
  const AliMpVSegmentation* seg1 = AliMpSegmentation::Instance()->GetMpSegmentation(deId, cath1);
  const AliMpVSegmentation* seg2 = AliMpSegmentation::Instance()->GetMpSegmentation(deId, cath2);
  if (!seg1 || !seg2) return;
  
  // get global coordinate of the cluster
  Double_t gX = cl->GetX();
  Double_t gY = cl->GetY();
  Double_t gZ = cl->GetZ();
  
  // revert half-chamber or DE displacement if any
  Int_t chId = cl->GetChamberId();
  Int_t halfChId = (cl->GetX() > 0) ? 2*chId : 2*chId+1;
  if (fShiftHalfCh) {
    gX += fHalfChShiftNB[halfChId];
    gY += fHalfChShiftB[halfChId];
  }
  if (fShiftDE) {
    gX += fDEShiftNB[fDEIndices[deId]-1];
    gY += fDEShiftB[fDEIndices[deId]-1];
  }
  
  // get local coordinate of the cluster
  Double_t lX,lY,lZ;
  fNewGeoTransformer->Global2Local(deId,gX,gY,gZ,lX,lY,lZ);
  
  // find pads below the cluster
  AliMpPad pad1 = seg1->PadByPosition(lX, lY, kFALSE);
  AliMpPad pad2 = seg2->PadByPosition(lX, lY, kFALSE);
  
  // build their ID if pads are valid
  UInt_t padId1 = (pad1.IsValid()) ? AliMUONVDigit::BuildUniqueID(deId, pad1.GetManuId(), pad1.GetManuChannel(), cath1) : 0;
  UInt_t padId2 = (pad2.IsValid()) ? AliMUONVDigit::BuildUniqueID(deId, pad2.GetManuId(), pad2.GetManuChannel(), cath2) : 0;
  
  // check if the cluster contains these pads 
  for (Int_t iDigit = 0; iDigit < cl->GetNDigits(); iDigit++) {
    
    UInt_t digitId = cl->GetDigitId(iDigit);
    
    if (digitId == padId1) {
      
      hasBending = kTRUE;
      if (hasNonBending) break;
      
    } else if (digitId == padId2) {
      
      hasNonBending = kTRUE;
      if (hasBending) break;
      
    }
    
  }
  
}

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