ROOT logo
&
Double_t GenerateCorrMatr_PbPb(const char* mcfile, const char* mctask, const char* idstring ,const char* outfile, const char* gifdir = 0)
//Double_t GenerateCorrMatr_PbPb_TPCIT()
{

Int_t c_first = 1;
Int_t c_last = 11;

TString id = TString(idstring);
if ( id.Contains("c0-5") ) { c_first = c_last = 1; }
if ( id.Contains("c5-10") ) { c_first = c_last = 2; }
if ( id.Contains("c10-20") ) { c_first = c_last = 3; }
if ( id.Contains("c20-30") ) { c_first = c_last = 4; }
if ( id.Contains("c30-40") ) { c_first = c_last = 5; }
if ( id.Contains("c40-50") ) { c_first = c_last = 6; }
if ( id.Contains("c50-60") ) { c_first = c_last = 7; }
if ( id.Contains("c60-70") ) { c_first = c_last = 8; }
if ( id.Contains("c70-80") ) { c_first = c_last = 9; }
if ( id.Contains("c80-90") ) { c_first = c_last = 10; }
if ( id.Contains("c90-100") ) { c_first = c_last = 11; }

//tmp setting
   //const char* mcfile = "/lustre/alice/train/V006.MC_PbPb/2011-03-15_0037.5917/mergedPeriods/MC_PbPb/2.76ATeV/LHC10h8/mknichel_dNdPtPbPb_TPCITS_VZERO1.root";
   
   //const char* mcfile = "/lustre/alice/train/V006.MC_PbPb/2011-03-13_0236.5847/mergedRuns/MC_PbPb/2.76ATeV/LHC11a7/137161.ana/mknichel_dNdPtPbPb_TPCITS_VZERO1.root";    
     //const char* mctask =  "mknichel_dNdPtPbPb_TPCITS_VZERO";
     //const char* idstring = "c70";
     //const char* outfile = "/u/mknichel/alice/dNdPt_PbPb/2011-03-15/corrMatr_LHC10h8_TPCITS_c70.root";
     //const char* gifdir ="/u/mknichel/alice/dNdPt_PbPb/2011-03-15/LHC10h8";
    
    // settings vor zVertex cut (event and track level)
    Double_t zVert = 10.0;
    
    // setting on eta cut (track level)
    Double_t eta = 0.8;
    
    // strangeness scaling factor (for secondaries from strange decays)
    Double_t sscale = 2.0;
    
    //load required libraries
    //load required libraries    
    gSystem->AddIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/ -I$ALICE_ROOT/include -I$ALICE_ROOT/STEER  -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/PWG0 -I$ALICE_ROOT/PWGPP -I$ALICE_ROOT/PWG2 -I$ALICE_ROOT/PWG3 -I$ALICE_ROOT/PWG3/vertexingHF -I$ALICE_ROOT/PWG4 -I$ALICE_ROOT/CORRFW -I$ALICE_ROOT/TPC -I$ALICE_ROOT/TRD -I$ALICE_ROOT/PWG3/muon -I$ALICE_ROOT/JETAN -I$ALICE_ROOT/ANALYSIS/Tender");
    
  gSystem->Load("libCore");
  gSystem->Load("libPhysics");
  gSystem->Load("libMinuit");
  gSystem->Load("libGui");
  gSystem->Load("libXMLParser");

  gSystem->Load("libGeom");
  gSystem->Load("libVMC");

  gSystem->Load("libNet");


  gSystem->Load("libSTEERBase");
  gSystem->Load("libESD");
  gSystem->Load("libCDB");
  gSystem->Load("libRAWDatabase");
  gSystem->Load("libRAWDatarec");
  gSystem->Load("libANALYSIS");

    
    
    gSystem->Load("libANALYSIS.so");
    gSystem->Load("libANALYSISalice.so");
    gSystem->Load("libTENDER.so");
    gSystem->Load("libCORRFW.so");
    gSystem->Load("libPWG0base.so");    
    gSystem->Load("libPWG0dep"); 
    gSystem->Load("libPWG0selectors.so");
    




    // make plots nicer
    gROOT->SetStyle("Plain");
    gStyle->SetPalette(1);
    
    // array for all correction matrices
    TObjArray* CorrMatr = new TObjArray();
    
    // array for all control histograms
    TObjArray* ContHist = new TObjArray();
    

    // load mc information
    TFile* fmc = TFile::Open(mcfile,"READ");
    if (!fmc) return -1;
    TList* lmc = dynamic_cast<TList*>(fmc->Get(mctask));
    if (!lmc) return -1;
    AlidNdPtAnalysisPbPb *obj = dynamic_cast<AlidNdPtAnalysisPbPb*>(lmc->FindObject("dNdPtAnalysisPbPb"));
    if (!obj) return -1;
    
//
// create rebinned thnsparse
//
  //ptbins before rebinning: 73;
  const Int_t etaNbins = 30;
  const Int_t zvNbins = 12;
  const Int_t centralityBins = 11;
  
  //Double_t binsMult[multNbins+1] = {-0.5,  10000.5 }; // forPbPb --reduced!

   // Set pt binning for corrections
    const Int_t ptNbins = 30;
    Double_t binsPt[31] = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.4, 1.6, 1.8, 2.0, 3.0, 4.0, 50.0, 100.0 };

  Double_t binsEta[etaNbins+1] = {
        -1.5, -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7, -0.6,
	-0.5, -0.4, -0.3, -0.2, -0.1,  0.0,  0.1,  0.2,  0.3,  0.4, 
	 0.5,  0.6,  0.7,  0.8,  0.9,  1.0,  1.1,  1.2,  1.3,  1.4, 
	 1.5};

  Double_t binsZv[zvNbins+1] = {-30.,-25.,-20.,-15.,-10.,-5.,0.,5.,10.,15.,20.,25.,30.};
  
  Double_t binsCentrality[centralityBins+1] = {0., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.};

  Int_t binsTrackEventCorrMatrix[4]={zvNbins,ptNbins,etaNbins,centralityBins};
  //Int_t binsTrackEvent[4]={zvNbins,ptNbins,etaNbins,centralityBins};
  //Int_t binsTrackPtCorrelationMatrix[4]={ptNbins,ptNbins,etaNbins,centralityBins};
/*
  THnSparseF* fGenPrimTrackMatrix = new THnSparseF("fGenPrimTrackMatrix","mcZv:mcPt:mcEta:Centrality",4,binsTrackEventCorrMatrix);
  fGenPrimTrackMatrix->SetBinEdges(0,binsZv);
  fGenPrimTrackMatrix->SetBinEdges(1,binsPt);
  fGenPrimTrackMatrix->SetBinEdges(2,binsEta);
  fGenPrimTrackMatrix->SetBinEdges(3,binsCentrality);
  fGenPrimTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)");
  fGenPrimTrackMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");
  fGenPrimTrackMatrix->GetAxis(2)->SetTitle("mcEta");
  fGenPrimTrackMatrix->GetAxis(3)->SetTitle("Centrality");
  fGenPrimTrackMatrix->Sumw2();

  THnSparseF* fRecPrimTrackMatrix = new THnSparseF("fRecPrimTrackMatrix","mcZv:mcPt:mcEta:Centrality",4,binsTrackEventCorrMatrix);
  fRecPrimTrackMatrix->SetBinEdges(0,binsZv);
  fRecPrimTrackMatrix->SetBinEdges(1,binsPt);
  fRecPrimTrackMatrix->SetBinEdges(2,binsEta);
  fRecPrimTrackMatrix->SetBinEdges(3,binsCentrality);
  fRecPrimTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)");
  fRecPrimTrackMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");
  fRecPrimTrackMatrix->GetAxis(2)->SetTitle("mcEta");
  fRecPrimTrackMatrix->GetAxis(3)->SetTitle("Centrality");
  fRecPrimTrackMatrix->Sumw2();

  THnSparseF* fRecTrackMatrix = new THnSparseF("fRecTrackMatrix","mcZv:mcPt:mcEta:Centrality",4,binsTrackEventCorrMatrix);
  fRecTrackMatrix->SetBinEdges(0,binsZv);
  fRecTrackMatrix->SetBinEdges(1,binsPt);
  fRecTrackMatrix->SetBinEdges(2,binsEta);
  fRecTrackMatrix->SetBinEdges(3,binsCentrality);
  fRecTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)");
  fRecTrackMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");
  fRecTrackMatrix->GetAxis(2)->SetTitle("mcEta");
  fRecTrackMatrix->GetAxis(3)->SetTitle("Centrality");
  fRecTrackMatrix->Sumw2();

  THnSparseF* fRecSecTrackMatrix = new THnSparseF("fRecSecTrackMatrix","mcZv:mcPt:mcEta:Centrality",4,binsTrackEventCorrMatrix);
  fRecSecTrackMatrix->SetBinEdges(0,binsZv);
  fRecSecTrackMatrix->SetBinEdges(1,binsPt);
  fRecSecTrackMatrix->SetBinEdges(2,binsEta);
  fRecSecTrackMatrix->SetBinEdges(3,binsCentrality);
  fRecSecTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)");
  fRecSecTrackMatrix->GetAxis(1)->SetTitle("Pt (GeV/c)");
  fRecSecTrackMatrix->GetAxis(2)->SetTitle("Eta");
  fRecSecTrackMatrix->GetAxis(3)->SetTitle("Centrality");
  fRecSecTrackMatrix->Sumw2();
*/

    //Event statistics
    THnSparse *fRecEventMatrix = obj->GetRecEventMatrix(); //all reconstructed events	
    fRecEventMatrix->GetAxis(2)->SetRange(c_first,c_last); // select centrality
    TH2D* h2RecEventAll = fRecEventMatrix->Projection(0,1)->Clone("h2RecEventAll");
    fRecEventMatrix->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    TH2D* h2RecEvent = fRecEventMatrix->Projection(0,1)->Clone("h2RecEvent");
    Double_t MCReconstructedEvents = h2RecEvent->Integral();
    Double_t MCReconstructedEventsAll = h2RecEventAll->Integral();
    ContHist->Add(h2RecEvent);
    ContHist->Add(h2RecEventAll);
        
    THnSparse *fTriggerEventMatrix = obj->GetTriggerEventMatrix(); //all triggered events
    fTriggerEventMatrix->GetAxis(2)->SetRange(c_first,c_last); // select centrality
    TH2D* h2TriggerEventAll = fTriggerEventMatrix->Projection(0,1)->Clone("h2TriggerEventAll");
    fTriggerEventMatrix->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    TH2D* h2TriggerEvent = fTriggerEventMatrix->Projection(0,1)->Clone("h2TriggerEvent");
    Double_t MCTriggeredEvents = h2TriggerEvent->Integral();
    Double_t MCTriggeredEventsAll = h2TriggerEventAll->Integral();
    ContHist->Add(h2TriggerEvent);
    ContHist->Add(h2TriggerEventAll);    
        
    THnSparse *fGenEventMatrix = obj->GetGenEventMatrix(); //all generated events
    fGenEventMatrix->GetAxis(2)->SetRange(c_first,c_last); // select centrality
    TH2D* h2GenEventAll = fGenEventMatrix->Projection(0,1)->Clone("h2GenEventAll");
    fGenEventMatrix->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    TH2D* h2GenEvent = fGenEventMatrix->Projection(0,1)->Clone("h2GenEvent");
    Double_t MCGeneratedEvents = h2GenEvent->Integral();
    Double_t MCGeneratedEventsAll = h2GenEventAll->Integral(); 
    ContHist->Add(h2RecEvent);
    ContHist->Add(h2RecEventAll);
	
    printf("=== generated MC events for correction matrices    %lf ===\n",MCGeneratedEvents);
    printf("=== triggered MC events for correction matrices    %lf ===\n",MCTriggeredEvents);
    printf("=== recontructed MC events for correction matrices %lf ===\n",MCReconstructedEvents);
    printf("\n");
    printf("=== cut on the zVertex +- %lf ===\n",zVert);
    printf("=== generated MC events (before zVertex cut)       %lf ===\n",MCGeneratedEventsAll);
    printf("=== triggered MC events (before zVertex cut)       %lf ===\n",MCTriggeredEventsAll);
    printf("=== recontructed MC events (before zVertex cut)    %lf ===\n",MCReconstructedEventsAll);
    
    TH1D* h1MCGeneratedEvents = new TH1D("h1MCGeneratedEvents","h1MCGeneratedEvents",1,0,1);
    TH1D* h1MCTriggeredEvents = new TH1D("h1MCTriggeredEvents","h1MCTriggeredEvents",1,0,1);
    TH1D* h1MCReconstructedEvents = new TH1D("h1MCReconstructedEvents","h1MCReconstructedEvents",1,0,1);
    TH1D* h1MCGeneratedEventsAll = new TH1D("h1MCGeneratedEventsAll","h1MCGeneratedEventsAll",1,0,1);
    TH1D* h1MCTriggeredEventsAll = new TH1D("h1MCTriggeredEventsAll","h1MCTriggeredEventsAll",1,0,1);
    TH1D* h1MCReconstructedEventsAll = new TH1D("h1MCReconstructedEventsAll","h1MCReconstructedEventsAll",1,0,1);
    
    h1MCGeneratedEvents->Fill(0,MCGeneratedEvents);
    h1MCGeneratedEvents->SetEntries(MCGeneratedEvents);
    h1MCTriggeredEvents->Fill(0,MCTriggeredEvents);
    h1MCTriggeredEvents->SetEntries(MCTriggeredEvents);
    h1MCReconstructedEvents->Fill(0,MCReconstructedEvents);
    h1MCReconstructedEvents->SetEntries(MCReconstructedEvents);
    h1MCGeneratedEventsAll->Fill(0,MCGeneratedEventsAll);
    h1MCGeneratedEventsAll->SetEntries(MCGeneratedEventsAll);
    h1MCTriggeredEventsAll->Fill(0,MCTriggeredEventsAll);
    h1MCTriggeredEventsAll->SetEntries(MCTriggeredEventsAll);
    h1MCReconstructedEventsAll->Fill(0,MCReconstructedEventsAll);
    h1MCReconstructedEventsAll->SetEntries(MCReconstructedEventsAll);
    
    ContHist->Add(h1MCGeneratedEvents);
    ContHist->Add(h1MCTriggeredEvents);
    ContHist->Add(h1MCReconstructedEvents);
    ContHist->Add(h1MCGeneratedEventsAll);
    ContHist->Add(h1MCTriggeredEventsAll);
    ContHist->Add(h1MCReconstructedEventsAll);
    
    
    // efficienfy and correction matrices for tigger and vertex efficiency
    TH2D* h2EventTriggerEffAll  = AlidNdPtHelper::GenerateCorrMatrix(h2TriggerEventAll,h2GenEventAll,"h2EventTriggerEffAll");
    TH2D* h2EventTriggerCorrAll = AlidNdPtHelper::GenerateCorrMatrix(h2GenEventAll,h2TriggerEventAll,"h2EventTriggerCorrAll"); 
    TH2D* h2EventTriggerEff  = AlidNdPtHelper::GenerateCorrMatrix(h2TriggerEvent,h2GenEvent,"h2EventTriggerEff");
    TH2D* h2EventTriggerCorr = AlidNdPtHelper::GenerateCorrMatrix(h2GenEvent,h2TriggerEvent,"h2EventTriggerCorr"); 

    TH2D* h2EventRecEffAll  = AlidNdPtHelper::GenerateCorrMatrix(h2RecEventAll,h2TriggerEventAll,"h2EventRecEffAll");
    TH2D* h2EventRecCorrAll = AlidNdPtHelper::GenerateCorrMatrix(h2TriggerEventAll,h2RecEventAll,"h2EventRecCorrAll");
    TH2D* h2EventRecEff  = AlidNdPtHelper::GenerateCorrMatrix(h2RecEvent,h2TriggerEvent,"h2EventRecEff");
    TH2D* h2EventRecCorr = AlidNdPtHelper::GenerateCorrMatrix(h2TriggerEvent,h2RecEvent,"h2EventRecCorr");

    TH2D* h2EventEffAll  = AlidNdPtHelper::GenerateCorrMatrix(h2RecEventAll,h2GenEventAll,"h2EventEffAll");
    TH2D* h2EventCorrAll = AlidNdPtHelper::GenerateCorrMatrix(h2GenEventAll,h2RecEventAll,"h2EventCorrAll");
    TH2D* h2EventEff  = AlidNdPtHelper::GenerateCorrMatrix(h2RecEvent,h2GenEvent,"h2EventEff");
    TH2D* h2EventCorr = AlidNdPtHelper::GenerateCorrMatrix(h2GenEvent,h2RecEvent,"h2EventCorr");

    CorrMatr->Add(h2EventTriggerEffAll);
    CorrMatr->Add(h2EventTriggerCorrAll);
    CorrMatr->Add(h2EventTriggerEff);
    CorrMatr->Add(h2EventTriggerCorr);
    CorrMatr->Add(h2EventRecEffAll);
    CorrMatr->Add(h2EventRecCorrAll);
    CorrMatr->Add(h2EventRecEff);
    CorrMatr->Add(h2EventRecCorr);
    CorrMatr->Add(h2EventEffAll);
    CorrMatr->Add(h2EventCorrAll);
    CorrMatr->Add(h2EventEff);
    CorrMatr->Add(h2EventCorr);



    // all recontructed
    THnSparse *fRecTrackMatrix = obj->GetRecTrackMatrix(); //all reconstructed tracks
    fRecTrackMatrix->GetAxis(3)->SetRange(c_first,c_last); // select centrality
    fRecTrackMatrix->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    fRecTrackMatrix->GetAxis(2)->SetRangeUser(-eta, eta-0.01);//eta
        
    TH3D* h3RecTrack = fRecTrackMatrix->Projection(0,1,2)->Clone("h3RecTrack");    
    TH2D* h2RecTrack_zv_pt  = fRecTrackMatrix->Projection(0,1)->Clone("h2RecTrack_zv_pt");
    TH2D* h2RecTrack_zv_eta = fRecTrackMatrix->Projection(0,2)->Clone("h2RecTrack_zv_eta");
    TH2D* h2RecTrack_pt_eta = fRecTrackMatrix->Projection(1,2)->Clone("h2RecTrack_pt_eta");
    TH1D* h1RecTrack_zv  = fRecTrackMatrix->Projection(0)->Clone("h1RecTrack_zv");    
    TH1D* h1RecTrack_pt  = fRecTrackMatrix->Projection(1)->Clone("h1RecTrack_pt");
    TH1D* h1RecTrack_eta = fRecTrackMatrix->Projection(2)->Clone("h1RecTrack_eta");
    Double_t MCReconstructedTracks = h3RecTrack->Integral();
    
    h1RecTrack_pt = (TH1D*) h1RecTrack_pt->Rebin(ptNbins,"",binsPt); // rebin hist

    ContHist->Add(h3RecTrack);
    ContHist->Add(h2RecTrack_zv_pt);
    ContHist->Add(h2RecTrack_zv_eta);
    ContHist->Add(h2RecTrack_pt_eta);
    ContHist->Add(h1RecTrack_zv);
    ContHist->Add(h1RecTrack_pt);
    ContHist->Add(h1RecTrack_eta);

     // recontructed primary tracks
    THnSparse *fRecPrimTrackMatrix = obj->GetRecPrimTrackMatrix();
    fRecPrimTrackMatrix->GetAxis(3)->SetRange(c_first,c_last); // select centrality
    THnSparse *fRecTrackMatrixScaled = fRecPrimTrackMatrix->Clone("fRecTrackMatrixScaled"); //used later for secondaries scaling
    fRecPrimTrackMatrix->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    fRecPrimTrackMatrix->GetAxis(2)->SetRangeUser(-eta, eta-0.01);//eta
    TH3D* h3RecPrimTrack = fRecPrimTrackMatrix->Projection(0,1,2)->Clone("h3RecPrimTrack");
    TH2D* h2RecPrimTrack_zv_pt  = fRecPrimTrackMatrix->Projection(0,1)->Clone("h2RecPrimTrack_zv_pt");
    TH2D* h2RecPrimTrack_zv_eta = fRecPrimTrackMatrix->Projection(0,2)->Clone("h2RecPrimTrack_zv_eta");
    TH2D* h2RecPrimTrack_pt_eta = fRecPrimTrackMatrix->Projection(1,2)->Clone("h2RecPrimTrack_pt_eta");
    TH1D* h1RecPrimTrack_zv  = fRecPrimTrackMatrix->Projection(0)->Clone("h1RecPrimTrack_zv"); 
    TH1D* h1RecPrimTrack_pt  = fRecPrimTrackMatrix->Projection(1)->Clone("h1RecPrimTrack_pt");    
    TH1D* h1RecPrimTrack_eta = fRecPrimTrackMatrix->Projection(2)->Clone("h1RecPrimTrack_eta");
    Double_t MCReconstructedPrimTracks = h3RecPrimTrack->Integral();
    
    h1RecPrimTrack_pt = (TH1D*) h1RecPrimTrack_pt->Rebin(ptNbins,"",binsPt); // rebin hist

    ContHist->Add(h3RecPrimTrack);
    ContHist->Add(h2RecPrimTrack_zv_pt);
    ContHist->Add(h2RecPrimTrack_zv_eta);
    ContHist->Add(h2RecPrimTrack_pt_eta);
    ContHist->Add(h1RecPrimTrack_zv);
    ContHist->Add(h1RecPrimTrack_pt);
    ContHist->Add(h1RecPrimTrack_eta);
    
     // recontructed secondary tracks
    THnSparse *fRecSecTrackMatrix = obj->GetRecSecTrackMatrix();    
    fRecSecTrackMatrix->GetAxis(3)->SetRange(c_first,c_last); // select centrality
    THnSparse *fRecSecTrackMatrixScaled = fRecSecTrackMatrix->Clone("fRecSecTrackMatrixScaled"); //used later for secondaries scaling
    fRecSecTrackMatrix->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    fRecSecTrackMatrix->GetAxis(2)->SetRangeUser(-eta, eta-0.01);//eta
    TH3D* h3RecSecTrack = fRecSecTrackMatrix->Projection(0,1,2)->Clone("h3RecSecTrack");
    TH2D* h2RecSecTrack_zv_pt  = fRecSecTrackMatrix->Projection(0,1)->Clone("h2RecSecTrack_zv_pt");
    TH2D* h2RecSecTrack_zv_eta = fRecSecTrackMatrix->Projection(0,2)->Clone("h2RecSecTrack_zv_eta");
    TH2D* h2RecSecTrack_pt_eta = fRecSecTrackMatrix->Projection(1,2)->Clone("h2RecSecTrack_pt_eta");
    TH1D* h1RecSecTrack_zv  = fRecSecTrackMatrix->Projection(0)->Clone("h1RecSecTrack_zv");
    TH1D* h1RecSecTrack_pt  = fRecSecTrackMatrix->Projection(1)->Clone("h1RecSecTrack_pt");
    TH1D* h1RecSecTrack_eta = fRecSecTrackMatrix->Projection(2)->Clone("h1RecSecTrack_eta");
    Double_t MCReconstructedSecTracks = h3RecSecTrack->Integral();

    h1RecSecTrack_pt = (TH1D*) h1RecSecTrack_pt->Rebin(ptNbins,"",binsPt); // rebin hist

    ContHist->Add(h3RecSecTrack);
    ContHist->Add(h2RecSecTrack_zv_pt);
    ContHist->Add(h2RecSecTrack_zv_eta);
    ContHist->Add(h2RecSecTrack_pt_eta);
    ContHist->Add(h1RecSecTrack_zv);
    ContHist->Add(h1RecSecTrack_pt);
    ContHist->Add(h1RecSecTrack_eta);
    
    // generated primary tracks
    THnSparse *fGenPrimTrackMatrix =obj->GetGenPrimTrackMatrix();
    fGenPrimTrackMatrix->GetAxis(3)->SetRange(c_first,c_last); // select centrality
    fGenPrimTrackMatrix->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    fGenPrimTrackMatrix->GetAxis(2)->SetRangeUser(-eta, eta-0.01);//eta
    TH3D* h3GenPrimTrack = fGenPrimTrackMatrix->Projection(0,1,2)->Clone("h3GenPrimTrack");
    TH2D* h2GenPrimTrack_zv_Pt  = fGenPrimTrackMatrix->Projection(0,1)->Clone("h2GenPrimTrack_zv_pt");
    TH2D* h2GenPrimTrack_zv_eta = fGenPrimTrackMatrix->Projection(0,2)->Clone("h2GenPrimTrack_zv_eta");
    TH2D* h2GenPrimTrack_pt_eta = fGenPrimTrackMatrix->Projection(1,2)->Clone("h2GenPrimTrack_pt_eta");
    TH1D* h1GenPrimTrack_zv  = fGenPrimTrackMatrix->Projection(0)->Clone("h1GenPrimTrack_zv");
    TH1D* h1GenPrimTrack_pt  = fGenPrimTrackMatrix->Projection(1)->Clone("h1GenPrimTrack_pt");
    TH1D* h1GenPrimTrack_eta = fGenPrimTrackMatrix->Projection(2)->Clone("h1GenPrimTrack_eta");
    Double_t MCGeneratedPrimTracks = h3GenPrimTrack->Integral();


    // mc truth histogram (for self-consistency check)
    TH1D* dNdPt_MC   = h1GenPrimTrack_pt->Clone("dNdPt_MC");
    // normalization and finalization
    // 1/N_evt 1/(2 pi pt) 1/width 1/etarange
    for (int ii=1; ii <= dNdPt_MC->GetNbinsX() ;ii++) {
        Double_t pt = dNdPt_MC->GetBinCenter(ii);
        Double_t width = dNdPt_MC->GetBinWidth(ii);
        Double_t val = dNdPt_MC->GetBinContent(ii);
        Double_t err = dNdPt_MC->GetBinError(ii);        
        Double_t cval = (val)/(width * 2.0 * TMath::Pi() * 1.6 * MCGeneratedEvents * pt);
        Double_t cerr = (err)/(width * 2.0 * TMath::Pi() * 1.6 * MCGeneratedEvents * pt);
        dNdPt_MC->SetBinContent(ii,cval);
        dNdPt_MC->SetBinError(ii,cerr);
    }    
    dNdPt_MC->SetMarkerStyle(21);
    dNdPt_MC->SetTitle("; p_{T} (GeV/c) ; 1/N_{evt} 1/(2#pi p_{T}) (d^{2}N_{ch})/(d#eta dp_{T})^{-2}");
    ContHist->Add(dNdPt_MC);    



    h1GenPrimTrack_pt = (TH1D*) h1GenPrimTrack_pt->Rebin(ptNbins,"",binsPt); // rebin hist

    ContHist->Add(h3GenPrimTrack);
    ContHist->Add(h2GenPrimTrack_zv_pt);
    ContHist->Add(h2GenPrimTrack_zv_eta);
    ContHist->Add(h2GenPrimTrack_pt_eta);
    ContHist->Add(h1GenPrimTrack_zv);
    ContHist->Add(h1GenPrimTrack_pt);
    ContHist->Add(h1GenPrimTrack_eta);
    printf("\n");
    printf("==============================================================\n");    
    printf("=== recontructed MC tracks              %lf ===\n",MCReconstructedTracks);
    printf("=== recontructed MC secondary tracks    %lf ===\n",MCReconstructedSecTracks);
    printf("=== recontructed MC primary tracks      %lf ===\n",MCReconstructedPrimTracks);
    printf("=== generated MC primary track          %lf ===\n",MCGeneratedPrimTracks);
    printf("==============================================================\n");    
    printf("\n");
	
//    THnSparse *fSparseTriggerTrackEvent = obj->GetTriggerTrackEventMatrix();//Tracks from triggered events
//    THnSparse *fSparseVtxTrackEvent = obj->GetRecTrackEventMatrix();//Tracks from events with rec. vtx
//    THnSparse *fSparseGenTrackEvent = obj->GetGenTrackEventMatrix();//generated TrackEvent matrix

    // tracking efficiencies + corrections
   TH3D* h3TrackEff  = AlidNdPtHelper::GenerateCorrMatrix(h3RecPrimTrack,h3GenPrimTrack,"h3TrackEff");
   TH3D* h3TrackCorr = AlidNdPtHelper::GenerateCorrMatrix(h3GenPrimTrack,h3RecPrimTrack,"h3TrackCorr");
   
   TH2D* h2TrackEff_zv_pt   = AlidNdPtHelper::GenerateCorrMatrix(h2RecPrimTrack_zv_pt,h2GenPrimTrack_zv_pt,"h2TrackEff_zv_pt");
   TH2D* h2TrackCorr_zv_pt  = AlidNdPtHelper::GenerateCorrMatrix(h2GenPrimTrack_zv_pt,h2RecPrimTrack_zv_pt,"h2TrackCorr_zv_pt");
   TH2D* h2TrackEff_zv_eta  = AlidNdPtHelper::GenerateCorrMatrix(h2RecPrimTrack_zv_eta,h2GenPrimTrack_zv_eta,"h2TrackEff_zv_eta");
   TH2D* h2TrackCorr_zv_eta = AlidNdPtHelper::GenerateCorrMatrix(h2GenPrimTrack_zv_eta,h2RecPrimTrack_zv_eta,"h2TrackCorr_zv_eta");
   TH2D* h2TrackEff_pt_eta  = AlidNdPtHelper::GenerateCorrMatrix(h2RecPrimTrack_pt_eta,h2GenPrimTrack_pt_eta,"h2TrackEff_pt_eta");
   TH2D* h2TrackCorr_pt_eta = AlidNdPtHelper::GenerateCorrMatrix(h2GenPrimTrack_pt_eta,h2RecPrimTrack_pt_eta,"h2TrackCorr_pt_eta");
    
   TH1D* h1TrackEff_zv   = AlidNdPtHelper::GenerateCorrMatrix(h1RecPrimTrack_zv,h1GenPrimTrack_zv,"h1TrackEff_zv");
   TH1D* h1TrackCorr_zv  = AlidNdPtHelper::GenerateCorrMatrix(h1GenPrimTrack_zv,h1RecPrimTrack_zv,"h1TrackCorr_zv");
   TH1D* h1TrackEff_pt   = AlidNdPtHelper::GenerateCorrMatrix(h1RecPrimTrack_pt,h1GenPrimTrack_pt,"h1TrackEff_pt");
   TH1D* h1TrackCorr_pt  = AlidNdPtHelper::GenerateCorrMatrix(h1GenPrimTrack_pt,h1RecPrimTrack_pt,"h1TrackCorr_pt");
   TH1D* h1TrackEff_eta  = AlidNdPtHelper::GenerateCorrMatrix(h1RecPrimTrack_eta,h1GenPrimTrack_eta,"h1TrackEff_eta");
   TH1D* h1TrackCorr_eta = AlidNdPtHelper::GenerateCorrMatrix(h1GenPrimTrack_eta,h1RecPrimTrack_eta,"h1TrackCorr_eta");
   
   CorrMatr->Add(h3TrackEff);
   CorrMatr->Add(h3TrackCorr);
   CorrMatr->Add(h2TrackEff_zv_pt);
   CorrMatr->Add(h2TrackCorr_zv_pt);
   CorrMatr->Add(h2TrackEff_zv_eta);
   CorrMatr->Add(h2TrackCorr_zv_eta);
   CorrMatr->Add(h2TrackEff_pt_eta);
   CorrMatr->Add(h2TrackCorr_pt_eta);
   CorrMatr->Add(h1TrackEff_zv);
   CorrMatr->Add(h1TrackCorr_zv);
   CorrMatr->Add(h1TrackEff_pt);
   CorrMatr->Add(h1TrackCorr_pt);
   CorrMatr->Add(h1TrackEff_eta);
   CorrMatr->Add(h1TrackCorr_eta);

   // scale the secondaries before calculating correction matrices
   for (Long64_t i = 0; i < fRecSecTrackMatrixScaled->GetNbins(); i++) {
       Int_t c[3];
       Double_t val = fRecSecTrackMatrixScaled->GetBinContent(i,c);
       Double_t err = fRecSecTrackMatrixScaled->GetBinError(i);
       Double_t pt =  fRecSecTrackMatrixScaled->GetAxis(1)->GetBinCenter(c[1]);
       Double_t scale = GetStrangenessCorrFactorPbPb(pt, sscale);
       fRecSecTrackMatrixScaled->SetBinContent(c,val*scale);
       fRecSecTrackMatrixScaled->SetBinError(c,err*scale);
    }
    
    // for correct determination of secondaries contamination, also the total total tracks have to be scaled
    // this is done by taking primaries and adding the scaled secondaries
    fRecTrackMatrixScaled->Add(fRecSecTrackMatrixScaled);

    fRecSecTrackMatrixScaled->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    fRecSecTrackMatrixScaled->GetAxis(2)->SetRangeUser(-eta, eta-0.01);//eta
    fRecSecTrackMatrixScaled->GetAxis(3)->SetRange(c_first,c_last); // select centrality
    
    TH3D* h3RecSecTrackScaled = fRecSecTrackMatrixScaled->Projection(0,1,2)->Clone("h3RecSecTrackScaled");
    TH2D* h2RecSecTrackScaled_zv_pt  = fRecSecTrackMatrixScaled->Projection(0,1)->Clone("h2RecSecTrackScaled_zv_pt");
    TH2D* h2RecSecTrackScaled_zv_eta = fRecSecTrackMatrixScaled->Projection(0,2)->Clone("h2RecSecTrackScaled_zv_eta");
    TH2D* h2RecSecTrackScaled_pt_eta = fRecSecTrackMatrixScaled->Projection(1,2)->Clone("h2RecSecTrackScaled_pt_eta");
    TH1D* h1RecSecTrackScaled_zv  = fRecSecTrackMatrixScaled->Projection(0)->Clone("h1RecSecTrackScaled_zv");
    TH1D* h1RecSecTrackScaled_pt  = fRecSecTrackMatrixScaled->Projection(1)->Clone("h1RecSecTrackScaled_pt");
    TH1D* h1RecSecTrackScaled_eta = fRecSecTrackMatrixScaled->Projection(2)->Clone("h1RecSecTrackScaled_eta");
    
    h1RecSecTrackScaled_pt = (TH1D*) h1RecSecTrackScaled_pt->Rebin(ptNbins,"",binsPt); // rebin hist

    ContHist->Add(h3RecSecTrackScaled);
    ContHist->Add(h2RecSecTrackScaled_zv_pt);
    ContHist->Add(h2RecSecTrackScaled_zv_eta);
    ContHist->Add(h2RecSecTrackScaled_pt_eta);
    ContHist->Add(h1RecSecTrackScaled_zv);
    ContHist->Add(h1RecSecTrackScaled_pt);
    ContHist->Add(h1RecSecTrackScaled_eta);
    
    fRecTrackMatrixScaled->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    fRecTrackMatrixScaled->GetAxis(2)->SetRangeUser(-eta, eta-0.01);//eta
    
    TH3D* h3RecTrackScaled = fRecTrackMatrixScaled->Projection(0,1,2)->Clone("h3RecTrackScaled");
    TH2D* h2RecTrackScaled_zv_pt  = fRecTrackMatrixScaled->Projection(0,1)->Clone("h2RecTrackScaled_zv_pt");
    TH2D* h2RecTrackScaled_zv_eta = fRecTrackMatrixScaled->Projection(0,2)->Clone("h2RecTrackScaled_zv_eta");
    TH2D* h2RecTrackScaled_pt_eta = fRecTrackMatrixScaled->Projection(1,2)->Clone("h2RecTrackScaled_pt_eta");
    TH1D* h1RecTrackScaled_zv  = fRecTrackMatrixScaled->Projection(0)->Clone("h1RecTrackScaled_zv");
    TH1D* h1RecTrackScaled_pt  = fRecTrackMatrixScaled->Projection(1)->Clone("h1RecTrackScaled_pt");
    TH1D* h1RecTrackScaled_eta = fRecTrackMatrixScaled->Projection(2)->Clone("h1RecTrackScaled_eta");
    
    
    h1RecTrackScaled_pt = (TH1D*) h1RecTrackScaled_pt->Rebin(ptNbins,"",binsPt); // rebin hist
    

    ContHist->Add(h3RecTrackScaled);
    ContHist->Add(h2RecTrackScaled_zv_pt);
    ContHist->Add(h2RecTrackScaled_zv_eta);
    ContHist->Add(h2RecTrackScaled_pt_eta);
    ContHist->Add(h1RecTrackScaled_zv);
    ContHist->Add(h1RecTrackScaled_pt);
    ContHist->Add(h1RecTrackScaled_eta);
    
    // create histograms for secondaries contamination and correction
    
    TH3D* h3SecCont = AlidNdPtHelper::GenerateCorrMatrix(h3RecSecTrackScaled,h3RecTrackScaled,"h3SecCont");
    TH3D* h3SecCorr = AlidNdPtHelper::GenerateContCorrMatrix(h3RecSecTrackScaled,h3RecTrackScaled,"h3SecCorr");
    TH2D* h2SecCont_zv_pt  = AlidNdPtHelper::GenerateCorrMatrix(h2RecSecTrackScaled_zv_pt,h2RecTrackScaled_zv_pt,"h2SecCont_zv_pt");
    TH2D* h2SecCorr_zv_pt  = AlidNdPtHelper::GenerateContCorrMatrix(h2RecSecTrackScaled_zv_pt,h2RecTrackScaled_zv_pt,"h2SecCorr_zv_pt");
    TH2D* h2SecCont_zv_eta = AlidNdPtHelper::GenerateCorrMatrix(h2RecSecTrackScaled_zv_eta,h2RecTrackScaled_zv_eta,"h2SecCont_zv_eta");
    TH2D* h2SecCorr_zv_eta = AlidNdPtHelper::GenerateContCorrMatrix(h2RecSecTrackScaled_zv_eta,h2RecTrackScaled_zv_eta,"h2SecCorr_zv_eta");
    TH2D* h2SecCont_pt_eta = AlidNdPtHelper::GenerateCorrMatrix(h2RecSecTrackScaled_pt_eta,h2RecTrackScaled_pt_eta,"h2SecCont_pt_eta");
    TH2D* h2SecCorr_pt_eta = AlidNdPtHelper::GenerateContCorrMatrix(h2RecSecTrackScaled_pt_eta,h2RecTrackScaled_pt_eta,"h2SecCorr_pt_eta");
    TH1D* h1SecCont_zv = AlidNdPtHelper::GenerateCorrMatrix(h1RecSecTrackScaled_zv,h1RecTrackScaled_zv,"h1SecCont_zv");
    TH1D* h1SecCorr_zv = AlidNdPtHelper::GenerateContCorrMatrix(h1RecSecTrackScaled_zv,h1RecTrackScaled_zv,"h1SecCorr_zv");
    TH1D* h1SecCont_pt = AlidNdPtHelper::GenerateCorrMatrix(h1RecSecTrackScaled_pt,h1RecTrackScaled_pt,"h1SecCont_pt");
    TH1D* h1SecCorr_pt = AlidNdPtHelper::GenerateContCorrMatrix(h1RecSecTrackScaled_pt,h1RecTrackScaled_pt,"h1SecCorr_pt");
    TH1D* h1SecCont_eta = AlidNdPtHelper::GenerateCorrMatrix(h1RecSecTrackScaled_eta,h1RecTrackScaled_eta,"h1SecCont_eta");
    TH1D* h1SecCorr_eta = AlidNdPtHelper::GenerateContCorrMatrix(h1RecSecTrackScaled_eta,h1RecTrackScaled_eta,"h1SecCorr_eta");

    CorrMatr->Add(h3SecCont);
    CorrMatr->Add(h3SecCorr);
    CorrMatr->Add(h2SecCont_zv_pt);
    CorrMatr->Add(h2SecCorr_zv_pt);
    CorrMatr->Add(h2SecCont_zv_eta);
    CorrMatr->Add(h2SecCorr_zv_eta);
    CorrMatr->Add(h2SecCont_pt_eta);
    CorrMatr->Add(h2SecCorr_pt_eta);
    CorrMatr->Add(h1SecCont_zv);
    CorrMatr->Add(h1SecCorr_zv);
    CorrMatr->Add(h1SecCont_pt);
    CorrMatr->Add(h1SecCorr_pt);
    CorrMatr->Add(h1SecCont_eta);
    CorrMatr->Add(h1SecCorr_eta);

    // plot pictures and save to gifdir
    for (i=0; i < CorrMatr->LastIndex(); i++) {    
        TCanvas* ctmp = PlotHist(CorrMatr->At(i),idstring);
        if (gifdir && ctmp) {
            TString gif(gifdir);
            gif += '/';
            gif += ctmp->GetName();
            gif += ".gif";
            ctmp->SaveAs(gif.Data(),"gif");     
            delete ctmp;
        }
    }
    for (i=0; i < ContHist->LastIndex(); i++) {    
        TCanvas* ctmp = PlotHist(ContHist->At(i),idstring);
        if (gifdir && ctmp) {
            TString gif(gifdir);
            gif += '/';
            gif += ctmp->GetName();
            gif += ".gif";
            ctmp->SaveAs(gif.Data(),"gif");     
            delete ctmp;
        }
   }    

    // save all correction matrices and control histograms to file
    if (!outfile) { return; }
    TFile *out = TFile::Open(outfile,"RECREATE");
    CorrMatr->Write();
    ContHist->Write();
    out->Close();
    
    return MCReconstructedEvents;

}


//_____________________________________________________________________________
Double_t GetStrangenessCorrFactorPbPb(Double_t pt, Double_t s)
{
    // data driven correction factor for secondaries (PbPb)

    if (pt <= 0.25) return 1.0;
    if (pt <= 0.5) return GetLinearInterpolationValue(0.25,1.0,0.5,0.60+0.40*s, pt);
    if (pt <= 1.0) return GetLinearInterpolationValue(0.5,0.60+0.40*s,1.0,0.53+0.47*s, pt);
    if (pt <= 2.0) return GetLinearInterpolationValue(1.0,0.53+0.47*s,2.0,0.44+0.56*s, pt);
    if (pt <= 5.0) return GetLinearInterpolationValue(2.0,0.44+0.56*s,5.0,0.33+0.67*s, pt);
    return 0.33+0.67*s;
}


//___________________________________________________________________________
Double_t GetLinearInterpolationValue(const Double_t x1,const  Double_t y1,const  Double_t x2,const  Double_t y2, const Double_t pt)
{
    //
    // linear interpolation
    //
    return ((y2-y1)/(x2-x1))*pt+(y2-(((y2-y1)/(x2-x1))*x2)); 
}

//___________________________________________________________________________
TCanvas* PlotHist(TObject* hobj, const char* label=0)
{
    TH1* h = dynamic_cast<TH1*>(hobj);
    if (!h) return 0;
    if (h->GetDimension() > 2) return 0;
    h->SetStats(0);
    if ( TString(h->GetName()).Contains("Events")) { h->SetStats(1); } 
    TString t(label);
    if (label) t += "_";
    t += h->GetName();
    h->SetTitle(t.Data());
    TCanvas* c = new TCanvas(t.Data(),t.Data());
    if (h->GetDimension() >= 1) {
        TString xlabel(h->GetXaxis()->GetTitle());
        if (xlabel.Contains("Pt")) { c->SetLogx();  h->GetXaxis()->SetRangeUser(0.1 , 100.); }
    }
    if (h->GetDimension() == 1) {
        if (xlabel.Contains("p_{T}")) { c->SetLogx();  c->SetLogy();  h->GetXaxis()->SetRangeUser(0.1 , 100.); }
    }
    if (h->GetDimension() == 2) {  
        TString ylabel(h->GetYaxis()->GetTitle());
        if (ylabel.Contains("Pt")) { c->SetLogy(); h->GetYaxis()->SetRangeUser(0.1 , 100.); }
        if (ylabel.Contains("p_{T}")) { c->SetLogy(); h->GetYaxis()->SetRangeUser(0.1 , 100.); }
        h->Draw("COLZ");
    }        
    if (h->GetDimension() == 1) {
        h->Draw();
    }
    return c;

}

Int_t CheckLoadLibrary(const char* library)
{
  // checks if a library is already loaded, if not loads the library

  if (strlen(gSystem->GetLibraries(Form("%s.so", library), "", kFALSE)) > 0)
    return 1;

  return gSystem->Load(library);
}
 GenerateCorrMatr_PbPb.C:1
 GenerateCorrMatr_PbPb.C:2
 GenerateCorrMatr_PbPb.C:3
 GenerateCorrMatr_PbPb.C:4
 GenerateCorrMatr_PbPb.C:5
 GenerateCorrMatr_PbPb.C:6
 GenerateCorrMatr_PbPb.C:7
 GenerateCorrMatr_PbPb.C:8
 GenerateCorrMatr_PbPb.C:9
 GenerateCorrMatr_PbPb.C:10
 GenerateCorrMatr_PbPb.C:11
 GenerateCorrMatr_PbPb.C:12
 GenerateCorrMatr_PbPb.C:13
 GenerateCorrMatr_PbPb.C:14
 GenerateCorrMatr_PbPb.C:15
 GenerateCorrMatr_PbPb.C:16
 GenerateCorrMatr_PbPb.C:17
 GenerateCorrMatr_PbPb.C:18
 GenerateCorrMatr_PbPb.C:19
 GenerateCorrMatr_PbPb.C:20
 GenerateCorrMatr_PbPb.C:21
 GenerateCorrMatr_PbPb.C:22
 GenerateCorrMatr_PbPb.C:23
 GenerateCorrMatr_PbPb.C:24
 GenerateCorrMatr_PbPb.C:25
 GenerateCorrMatr_PbPb.C:26
 GenerateCorrMatr_PbPb.C:27
 GenerateCorrMatr_PbPb.C:28
 GenerateCorrMatr_PbPb.C:29
 GenerateCorrMatr_PbPb.C:30
 GenerateCorrMatr_PbPb.C:31
 GenerateCorrMatr_PbPb.C:32
 GenerateCorrMatr_PbPb.C:33
 GenerateCorrMatr_PbPb.C:34
 GenerateCorrMatr_PbPb.C:35
 GenerateCorrMatr_PbPb.C:36
 GenerateCorrMatr_PbPb.C:37
 GenerateCorrMatr_PbPb.C:38
 GenerateCorrMatr_PbPb.C:39
 GenerateCorrMatr_PbPb.C:40
 GenerateCorrMatr_PbPb.C:41
 GenerateCorrMatr_PbPb.C:42
 GenerateCorrMatr_PbPb.C:43
 GenerateCorrMatr_PbPb.C:44
 GenerateCorrMatr_PbPb.C:45
 GenerateCorrMatr_PbPb.C:46
 GenerateCorrMatr_PbPb.C:47
 GenerateCorrMatr_PbPb.C:48
 GenerateCorrMatr_PbPb.C:49
 GenerateCorrMatr_PbPb.C:50
 GenerateCorrMatr_PbPb.C:51
 GenerateCorrMatr_PbPb.C:52
 GenerateCorrMatr_PbPb.C:53
 GenerateCorrMatr_PbPb.C:54
 GenerateCorrMatr_PbPb.C:55
 GenerateCorrMatr_PbPb.C:56
 GenerateCorrMatr_PbPb.C:57
 GenerateCorrMatr_PbPb.C:58
 GenerateCorrMatr_PbPb.C:59
 GenerateCorrMatr_PbPb.C:60
 GenerateCorrMatr_PbPb.C:61
 GenerateCorrMatr_PbPb.C:62
 GenerateCorrMatr_PbPb.C:63
 GenerateCorrMatr_PbPb.C:64
 GenerateCorrMatr_PbPb.C:65
 GenerateCorrMatr_PbPb.C:66
 GenerateCorrMatr_PbPb.C:67
 GenerateCorrMatr_PbPb.C:68
 GenerateCorrMatr_PbPb.C:69
 GenerateCorrMatr_PbPb.C:70
 GenerateCorrMatr_PbPb.C:71
 GenerateCorrMatr_PbPb.C:72
 GenerateCorrMatr_PbPb.C:73
 GenerateCorrMatr_PbPb.C:74
 GenerateCorrMatr_PbPb.C:75
 GenerateCorrMatr_PbPb.C:76
 GenerateCorrMatr_PbPb.C:77
 GenerateCorrMatr_PbPb.C:78
 GenerateCorrMatr_PbPb.C:79
 GenerateCorrMatr_PbPb.C:80
 GenerateCorrMatr_PbPb.C:81
 GenerateCorrMatr_PbPb.C:82
 GenerateCorrMatr_PbPb.C:83
 GenerateCorrMatr_PbPb.C:84
 GenerateCorrMatr_PbPb.C:85
 GenerateCorrMatr_PbPb.C:86
 GenerateCorrMatr_PbPb.C:87
 GenerateCorrMatr_PbPb.C:88
 GenerateCorrMatr_PbPb.C:89
 GenerateCorrMatr_PbPb.C:90
 GenerateCorrMatr_PbPb.C:91
 GenerateCorrMatr_PbPb.C:92
 GenerateCorrMatr_PbPb.C:93
 GenerateCorrMatr_PbPb.C:94
 GenerateCorrMatr_PbPb.C:95
 GenerateCorrMatr_PbPb.C:96
 GenerateCorrMatr_PbPb.C:97
 GenerateCorrMatr_PbPb.C:98
 GenerateCorrMatr_PbPb.C:99
 GenerateCorrMatr_PbPb.C:100
 GenerateCorrMatr_PbPb.C:101
 GenerateCorrMatr_PbPb.C:102
 GenerateCorrMatr_PbPb.C:103
 GenerateCorrMatr_PbPb.C:104
 GenerateCorrMatr_PbPb.C:105
 GenerateCorrMatr_PbPb.C:106
 GenerateCorrMatr_PbPb.C:107
 GenerateCorrMatr_PbPb.C:108
 GenerateCorrMatr_PbPb.C:109
 GenerateCorrMatr_PbPb.C:110
 GenerateCorrMatr_PbPb.C:111
 GenerateCorrMatr_PbPb.C:112
 GenerateCorrMatr_PbPb.C:113
 GenerateCorrMatr_PbPb.C:114
 GenerateCorrMatr_PbPb.C:115
 GenerateCorrMatr_PbPb.C:116
 GenerateCorrMatr_PbPb.C:117
 GenerateCorrMatr_PbPb.C:118
 GenerateCorrMatr_PbPb.C:119
 GenerateCorrMatr_PbPb.C:120
 GenerateCorrMatr_PbPb.C:121
 GenerateCorrMatr_PbPb.C:122
 GenerateCorrMatr_PbPb.C:123
 GenerateCorrMatr_PbPb.C:124
 GenerateCorrMatr_PbPb.C:125
 GenerateCorrMatr_PbPb.C:126
 GenerateCorrMatr_PbPb.C:127
 GenerateCorrMatr_PbPb.C:128
 GenerateCorrMatr_PbPb.C:129
 GenerateCorrMatr_PbPb.C:130
 GenerateCorrMatr_PbPb.C:131
 GenerateCorrMatr_PbPb.C:132
 GenerateCorrMatr_PbPb.C:133
 GenerateCorrMatr_PbPb.C:134
 GenerateCorrMatr_PbPb.C:135
 GenerateCorrMatr_PbPb.C:136
 GenerateCorrMatr_PbPb.C:137
 GenerateCorrMatr_PbPb.C:138
 GenerateCorrMatr_PbPb.C:139
 GenerateCorrMatr_PbPb.C:140
 GenerateCorrMatr_PbPb.C:141
 GenerateCorrMatr_PbPb.C:142
 GenerateCorrMatr_PbPb.C:143
 GenerateCorrMatr_PbPb.C:144
 GenerateCorrMatr_PbPb.C:145
 GenerateCorrMatr_PbPb.C:146
 GenerateCorrMatr_PbPb.C:147
 GenerateCorrMatr_PbPb.C:148
 GenerateCorrMatr_PbPb.C:149
 GenerateCorrMatr_PbPb.C:150
 GenerateCorrMatr_PbPb.C:151
 GenerateCorrMatr_PbPb.C:152
 GenerateCorrMatr_PbPb.C:153
 GenerateCorrMatr_PbPb.C:154
 GenerateCorrMatr_PbPb.C:155
 GenerateCorrMatr_PbPb.C:156
 GenerateCorrMatr_PbPb.C:157
 GenerateCorrMatr_PbPb.C:158
 GenerateCorrMatr_PbPb.C:159
 GenerateCorrMatr_PbPb.C:160
 GenerateCorrMatr_PbPb.C:161
 GenerateCorrMatr_PbPb.C:162
 GenerateCorrMatr_PbPb.C:163
 GenerateCorrMatr_PbPb.C:164
 GenerateCorrMatr_PbPb.C:165
 GenerateCorrMatr_PbPb.C:166
 GenerateCorrMatr_PbPb.C:167
 GenerateCorrMatr_PbPb.C:168
 GenerateCorrMatr_PbPb.C:169
 GenerateCorrMatr_PbPb.C:170
 GenerateCorrMatr_PbPb.C:171
 GenerateCorrMatr_PbPb.C:172
 GenerateCorrMatr_PbPb.C:173
 GenerateCorrMatr_PbPb.C:174
 GenerateCorrMatr_PbPb.C:175
 GenerateCorrMatr_PbPb.C:176
 GenerateCorrMatr_PbPb.C:177
 GenerateCorrMatr_PbPb.C:178
 GenerateCorrMatr_PbPb.C:179
 GenerateCorrMatr_PbPb.C:180
 GenerateCorrMatr_PbPb.C:181
 GenerateCorrMatr_PbPb.C:182
 GenerateCorrMatr_PbPb.C:183
 GenerateCorrMatr_PbPb.C:184
 GenerateCorrMatr_PbPb.C:185
 GenerateCorrMatr_PbPb.C:186
 GenerateCorrMatr_PbPb.C:187
 GenerateCorrMatr_PbPb.C:188
 GenerateCorrMatr_PbPb.C:189
 GenerateCorrMatr_PbPb.C:190
 GenerateCorrMatr_PbPb.C:191
 GenerateCorrMatr_PbPb.C:192
 GenerateCorrMatr_PbPb.C:193
 GenerateCorrMatr_PbPb.C:194
 GenerateCorrMatr_PbPb.C:195
 GenerateCorrMatr_PbPb.C:196
 GenerateCorrMatr_PbPb.C:197
 GenerateCorrMatr_PbPb.C:198
 GenerateCorrMatr_PbPb.C:199
 GenerateCorrMatr_PbPb.C:200
 GenerateCorrMatr_PbPb.C:201
 GenerateCorrMatr_PbPb.C:202
 GenerateCorrMatr_PbPb.C:203
 GenerateCorrMatr_PbPb.C:204
 GenerateCorrMatr_PbPb.C:205
 GenerateCorrMatr_PbPb.C:206
 GenerateCorrMatr_PbPb.C:207
 GenerateCorrMatr_PbPb.C:208
 GenerateCorrMatr_PbPb.C:209
 GenerateCorrMatr_PbPb.C:210
 GenerateCorrMatr_PbPb.C:211
 GenerateCorrMatr_PbPb.C:212
 GenerateCorrMatr_PbPb.C:213
 GenerateCorrMatr_PbPb.C:214
 GenerateCorrMatr_PbPb.C:215
 GenerateCorrMatr_PbPb.C:216
 GenerateCorrMatr_PbPb.C:217
 GenerateCorrMatr_PbPb.C:218
 GenerateCorrMatr_PbPb.C:219
 GenerateCorrMatr_PbPb.C:220
 GenerateCorrMatr_PbPb.C:221
 GenerateCorrMatr_PbPb.C:222
 GenerateCorrMatr_PbPb.C:223
 GenerateCorrMatr_PbPb.C:224
 GenerateCorrMatr_PbPb.C:225
 GenerateCorrMatr_PbPb.C:226
 GenerateCorrMatr_PbPb.C:227
 GenerateCorrMatr_PbPb.C:228
 GenerateCorrMatr_PbPb.C:229
 GenerateCorrMatr_PbPb.C:230
 GenerateCorrMatr_PbPb.C:231
 GenerateCorrMatr_PbPb.C:232
 GenerateCorrMatr_PbPb.C:233
 GenerateCorrMatr_PbPb.C:234
 GenerateCorrMatr_PbPb.C:235
 GenerateCorrMatr_PbPb.C:236
 GenerateCorrMatr_PbPb.C:237
 GenerateCorrMatr_PbPb.C:238
 GenerateCorrMatr_PbPb.C:239
 GenerateCorrMatr_PbPb.C:240
 GenerateCorrMatr_PbPb.C:241
 GenerateCorrMatr_PbPb.C:242
 GenerateCorrMatr_PbPb.C:243
 GenerateCorrMatr_PbPb.C:244
 GenerateCorrMatr_PbPb.C:245
 GenerateCorrMatr_PbPb.C:246
 GenerateCorrMatr_PbPb.C:247
 GenerateCorrMatr_PbPb.C:248
 GenerateCorrMatr_PbPb.C:249
 GenerateCorrMatr_PbPb.C:250
 GenerateCorrMatr_PbPb.C:251
 GenerateCorrMatr_PbPb.C:252
 GenerateCorrMatr_PbPb.C:253
 GenerateCorrMatr_PbPb.C:254
 GenerateCorrMatr_PbPb.C:255
 GenerateCorrMatr_PbPb.C:256
 GenerateCorrMatr_PbPb.C:257
 GenerateCorrMatr_PbPb.C:258
 GenerateCorrMatr_PbPb.C:259
 GenerateCorrMatr_PbPb.C:260
 GenerateCorrMatr_PbPb.C:261
 GenerateCorrMatr_PbPb.C:262
 GenerateCorrMatr_PbPb.C:263
 GenerateCorrMatr_PbPb.C:264
 GenerateCorrMatr_PbPb.C:265
 GenerateCorrMatr_PbPb.C:266
 GenerateCorrMatr_PbPb.C:267
 GenerateCorrMatr_PbPb.C:268
 GenerateCorrMatr_PbPb.C:269
 GenerateCorrMatr_PbPb.C:270
 GenerateCorrMatr_PbPb.C:271
 GenerateCorrMatr_PbPb.C:272
 GenerateCorrMatr_PbPb.C:273
 GenerateCorrMatr_PbPb.C:274
 GenerateCorrMatr_PbPb.C:275
 GenerateCorrMatr_PbPb.C:276
 GenerateCorrMatr_PbPb.C:277
 GenerateCorrMatr_PbPb.C:278
 GenerateCorrMatr_PbPb.C:279
 GenerateCorrMatr_PbPb.C:280
 GenerateCorrMatr_PbPb.C:281
 GenerateCorrMatr_PbPb.C:282
 GenerateCorrMatr_PbPb.C:283
 GenerateCorrMatr_PbPb.C:284
 GenerateCorrMatr_PbPb.C:285
 GenerateCorrMatr_PbPb.C:286
 GenerateCorrMatr_PbPb.C:287
 GenerateCorrMatr_PbPb.C:288
 GenerateCorrMatr_PbPb.C:289
 GenerateCorrMatr_PbPb.C:290
 GenerateCorrMatr_PbPb.C:291
 GenerateCorrMatr_PbPb.C:292
 GenerateCorrMatr_PbPb.C:293
 GenerateCorrMatr_PbPb.C:294
 GenerateCorrMatr_PbPb.C:295
 GenerateCorrMatr_PbPb.C:296
 GenerateCorrMatr_PbPb.C:297
 GenerateCorrMatr_PbPb.C:298
 GenerateCorrMatr_PbPb.C:299
 GenerateCorrMatr_PbPb.C:300
 GenerateCorrMatr_PbPb.C:301
 GenerateCorrMatr_PbPb.C:302
 GenerateCorrMatr_PbPb.C:303
 GenerateCorrMatr_PbPb.C:304
 GenerateCorrMatr_PbPb.C:305
 GenerateCorrMatr_PbPb.C:306
 GenerateCorrMatr_PbPb.C:307
 GenerateCorrMatr_PbPb.C:308
 GenerateCorrMatr_PbPb.C:309
 GenerateCorrMatr_PbPb.C:310
 GenerateCorrMatr_PbPb.C:311
 GenerateCorrMatr_PbPb.C:312
 GenerateCorrMatr_PbPb.C:313
 GenerateCorrMatr_PbPb.C:314
 GenerateCorrMatr_PbPb.C:315
 GenerateCorrMatr_PbPb.C:316
 GenerateCorrMatr_PbPb.C:317
 GenerateCorrMatr_PbPb.C:318
 GenerateCorrMatr_PbPb.C:319
 GenerateCorrMatr_PbPb.C:320
 GenerateCorrMatr_PbPb.C:321
 GenerateCorrMatr_PbPb.C:322
 GenerateCorrMatr_PbPb.C:323
 GenerateCorrMatr_PbPb.C:324
 GenerateCorrMatr_PbPb.C:325
 GenerateCorrMatr_PbPb.C:326
 GenerateCorrMatr_PbPb.C:327
 GenerateCorrMatr_PbPb.C:328
 GenerateCorrMatr_PbPb.C:329
 GenerateCorrMatr_PbPb.C:330
 GenerateCorrMatr_PbPb.C:331
 GenerateCorrMatr_PbPb.C:332
 GenerateCorrMatr_PbPb.C:333
 GenerateCorrMatr_PbPb.C:334
 GenerateCorrMatr_PbPb.C:335
 GenerateCorrMatr_PbPb.C:336
 GenerateCorrMatr_PbPb.C:337
 GenerateCorrMatr_PbPb.C:338
 GenerateCorrMatr_PbPb.C:339
 GenerateCorrMatr_PbPb.C:340
 GenerateCorrMatr_PbPb.C:341
 GenerateCorrMatr_PbPb.C:342
 GenerateCorrMatr_PbPb.C:343
 GenerateCorrMatr_PbPb.C:344
 GenerateCorrMatr_PbPb.C:345
 GenerateCorrMatr_PbPb.C:346
 GenerateCorrMatr_PbPb.C:347
 GenerateCorrMatr_PbPb.C:348
 GenerateCorrMatr_PbPb.C:349
 GenerateCorrMatr_PbPb.C:350
 GenerateCorrMatr_PbPb.C:351
 GenerateCorrMatr_PbPb.C:352
 GenerateCorrMatr_PbPb.C:353
 GenerateCorrMatr_PbPb.C:354
 GenerateCorrMatr_PbPb.C:355
 GenerateCorrMatr_PbPb.C:356
 GenerateCorrMatr_PbPb.C:357
 GenerateCorrMatr_PbPb.C:358
 GenerateCorrMatr_PbPb.C:359
 GenerateCorrMatr_PbPb.C:360
 GenerateCorrMatr_PbPb.C:361
 GenerateCorrMatr_PbPb.C:362
 GenerateCorrMatr_PbPb.C:363
 GenerateCorrMatr_PbPb.C:364
 GenerateCorrMatr_PbPb.C:365
 GenerateCorrMatr_PbPb.C:366
 GenerateCorrMatr_PbPb.C:367
 GenerateCorrMatr_PbPb.C:368
 GenerateCorrMatr_PbPb.C:369
 GenerateCorrMatr_PbPb.C:370
 GenerateCorrMatr_PbPb.C:371
 GenerateCorrMatr_PbPb.C:372
 GenerateCorrMatr_PbPb.C:373
 GenerateCorrMatr_PbPb.C:374
 GenerateCorrMatr_PbPb.C:375
 GenerateCorrMatr_PbPb.C:376
 GenerateCorrMatr_PbPb.C:377
 GenerateCorrMatr_PbPb.C:378
 GenerateCorrMatr_PbPb.C:379
 GenerateCorrMatr_PbPb.C:380
 GenerateCorrMatr_PbPb.C:381
 GenerateCorrMatr_PbPb.C:382
 GenerateCorrMatr_PbPb.C:383
 GenerateCorrMatr_PbPb.C:384
 GenerateCorrMatr_PbPb.C:385
 GenerateCorrMatr_PbPb.C:386
 GenerateCorrMatr_PbPb.C:387
 GenerateCorrMatr_PbPb.C:388
 GenerateCorrMatr_PbPb.C:389
 GenerateCorrMatr_PbPb.C:390
 GenerateCorrMatr_PbPb.C:391
 GenerateCorrMatr_PbPb.C:392
 GenerateCorrMatr_PbPb.C:393
 GenerateCorrMatr_PbPb.C:394
 GenerateCorrMatr_PbPb.C:395
 GenerateCorrMatr_PbPb.C:396
 GenerateCorrMatr_PbPb.C:397
 GenerateCorrMatr_PbPb.C:398
 GenerateCorrMatr_PbPb.C:399
 GenerateCorrMatr_PbPb.C:400
 GenerateCorrMatr_PbPb.C:401
 GenerateCorrMatr_PbPb.C:402
 GenerateCorrMatr_PbPb.C:403
 GenerateCorrMatr_PbPb.C:404
 GenerateCorrMatr_PbPb.C:405
 GenerateCorrMatr_PbPb.C:406
 GenerateCorrMatr_PbPb.C:407
 GenerateCorrMatr_PbPb.C:408
 GenerateCorrMatr_PbPb.C:409
 GenerateCorrMatr_PbPb.C:410
 GenerateCorrMatr_PbPb.C:411
 GenerateCorrMatr_PbPb.C:412
 GenerateCorrMatr_PbPb.C:413
 GenerateCorrMatr_PbPb.C:414
 GenerateCorrMatr_PbPb.C:415
 GenerateCorrMatr_PbPb.C:416
 GenerateCorrMatr_PbPb.C:417
 GenerateCorrMatr_PbPb.C:418
 GenerateCorrMatr_PbPb.C:419
 GenerateCorrMatr_PbPb.C:420
 GenerateCorrMatr_PbPb.C:421
 GenerateCorrMatr_PbPb.C:422
 GenerateCorrMatr_PbPb.C:423
 GenerateCorrMatr_PbPb.C:424
 GenerateCorrMatr_PbPb.C:425
 GenerateCorrMatr_PbPb.C:426
 GenerateCorrMatr_PbPb.C:427
 GenerateCorrMatr_PbPb.C:428
 GenerateCorrMatr_PbPb.C:429
 GenerateCorrMatr_PbPb.C:430
 GenerateCorrMatr_PbPb.C:431
 GenerateCorrMatr_PbPb.C:432
 GenerateCorrMatr_PbPb.C:433
 GenerateCorrMatr_PbPb.C:434
 GenerateCorrMatr_PbPb.C:435
 GenerateCorrMatr_PbPb.C:436
 GenerateCorrMatr_PbPb.C:437
 GenerateCorrMatr_PbPb.C:438
 GenerateCorrMatr_PbPb.C:439
 GenerateCorrMatr_PbPb.C:440
 GenerateCorrMatr_PbPb.C:441
 GenerateCorrMatr_PbPb.C:442
 GenerateCorrMatr_PbPb.C:443
 GenerateCorrMatr_PbPb.C:444
 GenerateCorrMatr_PbPb.C:445
 GenerateCorrMatr_PbPb.C:446
 GenerateCorrMatr_PbPb.C:447
 GenerateCorrMatr_PbPb.C:448
 GenerateCorrMatr_PbPb.C:449
 GenerateCorrMatr_PbPb.C:450
 GenerateCorrMatr_PbPb.C:451
 GenerateCorrMatr_PbPb.C:452
 GenerateCorrMatr_PbPb.C:453
 GenerateCorrMatr_PbPb.C:454
 GenerateCorrMatr_PbPb.C:455
 GenerateCorrMatr_PbPb.C:456
 GenerateCorrMatr_PbPb.C:457
 GenerateCorrMatr_PbPb.C:458
 GenerateCorrMatr_PbPb.C:459
 GenerateCorrMatr_PbPb.C:460
 GenerateCorrMatr_PbPb.C:461
 GenerateCorrMatr_PbPb.C:462
 GenerateCorrMatr_PbPb.C:463
 GenerateCorrMatr_PbPb.C:464
 GenerateCorrMatr_PbPb.C:465
 GenerateCorrMatr_PbPb.C:466
 GenerateCorrMatr_PbPb.C:467
 GenerateCorrMatr_PbPb.C:468
 GenerateCorrMatr_PbPb.C:469
 GenerateCorrMatr_PbPb.C:470
 GenerateCorrMatr_PbPb.C:471
 GenerateCorrMatr_PbPb.C:472
 GenerateCorrMatr_PbPb.C:473
 GenerateCorrMatr_PbPb.C:474
 GenerateCorrMatr_PbPb.C:475
 GenerateCorrMatr_PbPb.C:476
 GenerateCorrMatr_PbPb.C:477
 GenerateCorrMatr_PbPb.C:478
 GenerateCorrMatr_PbPb.C:479
 GenerateCorrMatr_PbPb.C:480
 GenerateCorrMatr_PbPb.C:481
 GenerateCorrMatr_PbPb.C:482
 GenerateCorrMatr_PbPb.C:483
 GenerateCorrMatr_PbPb.C:484
 GenerateCorrMatr_PbPb.C:485
 GenerateCorrMatr_PbPb.C:486
 GenerateCorrMatr_PbPb.C:487
 GenerateCorrMatr_PbPb.C:488
 GenerateCorrMatr_PbPb.C:489
 GenerateCorrMatr_PbPb.C:490
 GenerateCorrMatr_PbPb.C:491
 GenerateCorrMatr_PbPb.C:492
 GenerateCorrMatr_PbPb.C:493
 GenerateCorrMatr_PbPb.C:494
 GenerateCorrMatr_PbPb.C:495
 GenerateCorrMatr_PbPb.C:496
 GenerateCorrMatr_PbPb.C:497
 GenerateCorrMatr_PbPb.C:498
 GenerateCorrMatr_PbPb.C:499
 GenerateCorrMatr_PbPb.C:500
 GenerateCorrMatr_PbPb.C:501
 GenerateCorrMatr_PbPb.C:502
 GenerateCorrMatr_PbPb.C:503
 GenerateCorrMatr_PbPb.C:504
 GenerateCorrMatr_PbPb.C:505
 GenerateCorrMatr_PbPb.C:506
 GenerateCorrMatr_PbPb.C:507
 GenerateCorrMatr_PbPb.C:508
 GenerateCorrMatr_PbPb.C:509
 GenerateCorrMatr_PbPb.C:510
 GenerateCorrMatr_PbPb.C:511
 GenerateCorrMatr_PbPb.C:512
 GenerateCorrMatr_PbPb.C:513
 GenerateCorrMatr_PbPb.C:514
 GenerateCorrMatr_PbPb.C:515
 GenerateCorrMatr_PbPb.C:516
 GenerateCorrMatr_PbPb.C:517
 GenerateCorrMatr_PbPb.C:518
 GenerateCorrMatr_PbPb.C:519
 GenerateCorrMatr_PbPb.C:520
 GenerateCorrMatr_PbPb.C:521
 GenerateCorrMatr_PbPb.C:522
 GenerateCorrMatr_PbPb.C:523
 GenerateCorrMatr_PbPb.C:524
 GenerateCorrMatr_PbPb.C:525
 GenerateCorrMatr_PbPb.C:526
 GenerateCorrMatr_PbPb.C:527
 GenerateCorrMatr_PbPb.C:528
 GenerateCorrMatr_PbPb.C:529
 GenerateCorrMatr_PbPb.C:530
 GenerateCorrMatr_PbPb.C:531
 GenerateCorrMatr_PbPb.C:532
 GenerateCorrMatr_PbPb.C:533
 GenerateCorrMatr_PbPb.C:534
 GenerateCorrMatr_PbPb.C:535
 GenerateCorrMatr_PbPb.C:536
 GenerateCorrMatr_PbPb.C:537
 GenerateCorrMatr_PbPb.C:538
 GenerateCorrMatr_PbPb.C:539
 GenerateCorrMatr_PbPb.C:540
 GenerateCorrMatr_PbPb.C:541
 GenerateCorrMatr_PbPb.C:542
 GenerateCorrMatr_PbPb.C:543
 GenerateCorrMatr_PbPb.C:544
 GenerateCorrMatr_PbPb.C:545
 GenerateCorrMatr_PbPb.C:546
 GenerateCorrMatr_PbPb.C:547
 GenerateCorrMatr_PbPb.C:548
 GenerateCorrMatr_PbPb.C:549
 GenerateCorrMatr_PbPb.C:550
 GenerateCorrMatr_PbPb.C:551
 GenerateCorrMatr_PbPb.C:552
 GenerateCorrMatr_PbPb.C:553
 GenerateCorrMatr_PbPb.C:554
 GenerateCorrMatr_PbPb.C:555
 GenerateCorrMatr_PbPb.C:556
 GenerateCorrMatr_PbPb.C:557
 GenerateCorrMatr_PbPb.C:558
 GenerateCorrMatr_PbPb.C:559
 GenerateCorrMatr_PbPb.C:560
 GenerateCorrMatr_PbPb.C:561
 GenerateCorrMatr_PbPb.C:562
 GenerateCorrMatr_PbPb.C:563
 GenerateCorrMatr_PbPb.C:564
 GenerateCorrMatr_PbPb.C:565
 GenerateCorrMatr_PbPb.C:566
 GenerateCorrMatr_PbPb.C:567
 GenerateCorrMatr_PbPb.C:568
 GenerateCorrMatr_PbPb.C:569
 GenerateCorrMatr_PbPb.C:570
 GenerateCorrMatr_PbPb.C:571
 GenerateCorrMatr_PbPb.C:572
 GenerateCorrMatr_PbPb.C:573
 GenerateCorrMatr_PbPb.C:574
 GenerateCorrMatr_PbPb.C:575
 GenerateCorrMatr_PbPb.C:576
 GenerateCorrMatr_PbPb.C:577
 GenerateCorrMatr_PbPb.C:578
 GenerateCorrMatr_PbPb.C:579
 GenerateCorrMatr_PbPb.C:580
 GenerateCorrMatr_PbPb.C:581
 GenerateCorrMatr_PbPb.C:582
 GenerateCorrMatr_PbPb.C:583
 GenerateCorrMatr_PbPb.C:584
 GenerateCorrMatr_PbPb.C:585
 GenerateCorrMatr_PbPb.C:586
 GenerateCorrMatr_PbPb.C:587
 GenerateCorrMatr_PbPb.C:588
 GenerateCorrMatr_PbPb.C:589
 GenerateCorrMatr_PbPb.C:590
 GenerateCorrMatr_PbPb.C:591
 GenerateCorrMatr_PbPb.C:592
 GenerateCorrMatr_PbPb.C:593
 GenerateCorrMatr_PbPb.C:594
 GenerateCorrMatr_PbPb.C:595
 GenerateCorrMatr_PbPb.C:596
 GenerateCorrMatr_PbPb.C:597
 GenerateCorrMatr_PbPb.C:598
 GenerateCorrMatr_PbPb.C:599
 GenerateCorrMatr_PbPb.C:600
 GenerateCorrMatr_PbPb.C:601
 GenerateCorrMatr_PbPb.C:602
 GenerateCorrMatr_PbPb.C:603
 GenerateCorrMatr_PbPb.C:604
 GenerateCorrMatr_PbPb.C:605
 GenerateCorrMatr_PbPb.C:606
 GenerateCorrMatr_PbPb.C:607
 GenerateCorrMatr_PbPb.C:608
 GenerateCorrMatr_PbPb.C:609
 GenerateCorrMatr_PbPb.C:610
 GenerateCorrMatr_PbPb.C:611
 GenerateCorrMatr_PbPb.C:612
 GenerateCorrMatr_PbPb.C:613
 GenerateCorrMatr_PbPb.C:614
 GenerateCorrMatr_PbPb.C:615
 GenerateCorrMatr_PbPb.C:616
 GenerateCorrMatr_PbPb.C:617
 GenerateCorrMatr_PbPb.C:618
 GenerateCorrMatr_PbPb.C:619
 GenerateCorrMatr_PbPb.C:620
 GenerateCorrMatr_PbPb.C:621
 GenerateCorrMatr_PbPb.C:622
 GenerateCorrMatr_PbPb.C:623
 GenerateCorrMatr_PbPb.C:624
 GenerateCorrMatr_PbPb.C:625
 GenerateCorrMatr_PbPb.C:626