//____________________________________________________________________
//
// Class for the documentation of Top Pairs
// 
//    Author: Felix Thomas <mailto:Felix.Thomas@mailbox.tu-dresden.de> 
//    Update: $Id: AtlTopPairDocumenter.cxx,v 1.7 2013/08/08 00:06:07 stamm Exp $
//    Copyright: 2011 (C) Felix Thomas  
//

#ifndef ATLAS_AtlTopPairDocumenter
#include <AtlTopPairDocumenter.h>
#endif

#include <iostream>

using namespace std;


#ifndef __CINT__
ClassImp(AtlTopPairDocumenter);
#endif

const char* AtlTopPairDocumenter::fgHistOriginNames[] = {
    "orig",
    "fitted"};

const char* AtlTopPairDocumenter::fgOriginNames[] = {
    "original",
    "fitted"};

const char* AtlTopPairDocumenter::fgSideNames[] = {
    "inclusive",
    "leptonic",
    "hadronic"};
    
const char* AtlTopPairDocumenter::fgHistSideNames[] = {
    "incl",
    "lep",
    "had"};

//____________________________________________________________________

AtlTopPairDocumenter::AtlTopPairDocumenter(const char* name, const char* title, TFile* Output, const char* path = "" ) : 
AtlDocumenter(name,title,Output, path){

    //
    // Default constructor
    //

    MakeDirectoryStructure();

}

//____________________________________________________________________

AtlTopPairDocumenter::~AtlTopPairDocumenter() {
    //
    // Default destructor
    //
}

//___________________________________________________________

void AtlTopPairDocumenter::BookHistograms(){
  //
  // Book histograms (after kinematic fit)
  //

  TDirectory *savdir = gDirectory;

  // k cycles through the sides inclusive, leptonic, hadronic
  for (Int_t k = 0; k < fgNSides; k++){

    gDirectory->mkdir(fgSideNames[k]);
    gDirectory->cd(fgSideNames[k]);
    fHistChi2[k] = new TH1F(Form("h_chi2_%s_%s", fgHistSideNames[k], this->GetTitle()),
                                                      Form("#chi^{2} Distribution of Reco (%s, %s)", fgSideNames[k], this->GetTitle()),
                                                      40, 0, 20);
    fHistChi2[k]->SetXTitle("#chi^{2}");
    fHistChi2[k]->SetYTitle("#(Best Candidates)");
    
    fHistChi2Prob[k] = new TH1F(Form("h_chi2prob_%s_%s", fgHistSideNames[k], this->GetTitle()),
                                                              Form("P(#chi^{2}) Distribution of Reco (%s, %s)", fgSideNames[k], this->GetTitle()),
                                                              40, 0, 1);
    fHistChi2Prob[k]->SetXTitle("P(#chi^{2})");
    fHistChi2Prob[k]->SetYTitle("#(Best Candidates)/0.1");
    
    gDirectory->mkdir("WReco", "W Reconstruction");
    gDirectory->cd("WReco");
  
    for (Int_t l = 0; l < fgNOrigins; ++l){
      fHistWreco_M[k][l] = new TH1F(Form("h_Wreco_M_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                 Form("W Invariant Mass (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                 40, 30, 130);
      fHistWreco_M[k][l]->SetXTitle("M_{W} (GeV)");
      fHistWreco_M[k][l]->SetYTitle(Form("#W bosons (%s)/2.5",fgHistSideNames[k]));
      
      fHistWreco_phi[k][l] = new TH1F(Form("h_Wreco_phi_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                       Form("W Azimuth Angle (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                       16, -3.2, 3.2);
      fHistWreco_phi[k][l]->SetXTitle("#phi (rad)");
      fHistWreco_phi[k][l]->SetYTitle(Form("#W bosons (%s)/0.4",fgHistSideNames[k]));
      
      fHistWreco_pt[k][l] = new TH1F(Form("h_Wreco_pt_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                      Form("W Transverse Momentum (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                      20, 0, 200);
      fHistWreco_pt[k][l]->SetXTitle("P_{t} (GeV)");
      fHistWreco_pt[k][l]->SetYTitle(Form("#W bosons (%s)/10",fgHistSideNames[k]));
      
      
      fHistWreco_eta[k][l] = new TH1F(Form("h_Wreco_eta_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                       Form("W Pseudo-Rapidity (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                       10, -2.5, 2.5);
      fHistWreco_eta[k][l]->SetXTitle("#eta");
      fHistWreco_eta[k][l]->SetYTitle(Form("#W bosons (%s)/0.5",fgHistSideNames[k]));
    }
 
    gDirectory->cd("..");
    gDirectory->mkdir("TopReco", "Top Reconstruction");
    gDirectory->cd("TopReco");
  
    for (Int_t l = 0; l < fgNOrigins; ++l){
      fHistTopReco_M[k][l] = new TH1F(Form("h_topreco_M_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                       Form("Top Invariant Mass (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                       15, 100, 250);
      fHistTopReco_M[k][l]->SetXTitle("M_{top} (GeV)");
      fHistTopReco_M[k][l]->SetYTitle(Form("#top quarks (%s)/10",fgHistSideNames[k]));
      
      fHistTopReco_phi[k][l] = new TH1F(Form("h_topreco_phi_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                         Form("Top Azimuth Angle (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                         16, -3.2, 3.2);
      fHistTopReco_phi[k][l]->SetXTitle("#phi (rad)");
      fHistTopReco_phi[k][l]->SetYTitle(Form("#top quarks (%s)/0.4",fgHistSideNames[k]));
      
      fHistTopReco_pt[k][l] = new TH1F(Form("h_topreco_pt_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                        Form("Top Transverse Momentum (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                        20, 0, 200);
      fHistTopReco_pt[k][l]->SetXTitle("P_{t} (GeV)");
      fHistTopReco_pt[k][l]->SetYTitle(Form("#top quarks (%s)/10",fgHistSideNames[k]));
      
      fHistTopReco_eta[k][l] = new TH1F(Form("h_topreco_eta_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                         Form("Top Pseudo-Rapidity (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                         10, -2.5, 2.5);
      fHistTopReco_eta[k][l]->SetXTitle("#eta");
      fHistTopReco_eta[k][l]->SetYTitle(Form("#top quarks (%s)/0.5",fgHistSideNames[k]));
      
      fHistTopMvsChi2[k][l] = new TH2F(Form("h_top_M_vs_chi2_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                        Form("#chi^{2} vs. top mass (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                        15, 100, 250, 40, 0, 20);
      fHistTopMvsChi2[k][l]->SetXTitle("M_{top} (GeV)");
      fHistTopMvsChi2[k][l]->SetYTitle("#chi^{2}");
      fHistTopMvsChi2[k][l]->SetZTitle(Form("#top quarks (%s)",fgHistSideNames[k]));
      
      
      fHistTopMvsChi2prob[k][l] = new TH2F(Form("h_top_M_vs_chi2prob_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),  
                                                                Form("P(#chi^{2}) vs. top mass (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                                15, 100, 250, 10, 0, 1);
      fHistTopMvsChi2prob[k][l]->SetXTitle("M_{top} (GeV)");
      fHistTopMvsChi2prob[k][l]->SetYTitle("P(#chi^{2})");
      fHistTopMvsChi2prob[k][l]->SetZTitle(Form("#top quarks (%s)/10/0.1",fgHistSideNames[k]));
      
      fHistTopPtvsChi2[k][l] = new TH2F(Form("h_top_Pt_vs_chi2_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                         Form("#chi^{2} vs. top mass (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                         20, 0, 200, 20, 0, 20);
      fHistTopPtvsChi2[k][l]->SetXTitle("P_{t,top} (GeV)");
      fHistTopPtvsChi2[k][l]->SetYTitle("#chi^{2}");
      fHistTopPtvsChi2[k][l]->SetZTitle(Form("#top quarks (%s)",fgHistSideNames[k]));
      
      fHistTopPtvsChi2prob[k][l] = new TH2F(Form("h_top_Pt_vs_chi2prob_%s_%s_%s", fgHistSideNames[k], this->GetTitle(), fgHistOriginNames[l]),
                                                                 Form("#chi^{2} vs. top mass (%s, %s, %s)", fgSideNames[k], this->GetTitle(), fgOriginNames[l]),
                                                                 20, 0, 200, 10, 0, 1);
      fHistTopPtvsChi2prob[k][l]->SetXTitle("P_{t,top} (GeV)");
      fHistTopPtvsChi2prob[k][l]->SetYTitle("P(#chi^{2})");
      fHistTopPtvsChi2prob[k][l]->SetZTitle(Form("#top quarks (%s)/10/0.1",fgHistSideNames[k]));
    }
  
     gDirectory->cd("../..");
  }

  BookLepHistograms();
  BookHadHistograms();
  BookResidualHistograms();
  BookPullHistograms();

  savdir->cd();

}

//___________________________________________________________

void AtlTopPairDocumenter::BookLepHistograms(){
  //
  //  Book histograms that record the data for the leptonic side of the top decay (after kinematic fit)
  //
  //

  gDirectory->cd("leptonic");

  gDirectory->mkdir("Neutrino-reco", "Neutrino reconstruction");
  gDirectory->cd("Neutrino-reco");

  fHistLepNuReco_phi = new TH1F(Form("h_nureco_phi_lep_%s", this->GetTitle()),
                                   Form("#nu Azimuth Angle (%s)", this->GetTitle()),
                                   16, -3.2, 3.2);
  fHistLepNuReco_phi->SetXTitle("#phi (rad)");
  fHistLepNuReco_phi->SetYTitle("#Neutrinos/0.4");
  
  fHistLepNuReco_pt = new TH1F(Form("h_nureco_pt_lep_%s", this->GetTitle()),
                                  Form("#nu Transverse Momentum (%s)", this->GetTitle()),
                                  20, 0, 200);
  fHistLepNuReco_pt->SetXTitle("P_{t} (GeV)");
  fHistLepNuReco_pt->SetYTitle("#Neutrinos/10");
  
  fHistLepNuReco_eta = new TH1F(Form("h_nureco_eta_lep_%s", this->GetTitle()),
                                   Form("#nu Pseudo-Rapidity (%s)", this->GetTitle()),
                                   10, -2.5, 2.5);
  fHistLepNuReco_eta->SetXTitle("#eta");
  fHistLepNuReco_eta->SetYTitle("#Neutrinos/0.5");
  
  gDirectory->cd("../..");
}

//___________________________________________________________
void AtlTopPairDocumenter::BookHadHistograms() {
  //
  //  Book histograms that record the data unique to 
  //  the hadronic side of the top decay (after kinematic fit)
  //

    return;
}

//___________________________________________________________

void AtlTopPairDocumenter::BookResidualHistograms() {
   //
   // Residual distributions used for checking if the kinfitter works as intended
   //

  gDirectory->mkdir("residuals","Residual histograms");
  gDirectory->cd("residuals");

  // Lepton  
  gDirectory->mkdir("lepton_residual","Residual histograms for leptons");
  gDirectory->cd("lepton_residual");

  // Lepton pt
  fHistResidualLepton_pt = new TH1F(Form("h_residual_Lepton_pt_%s", this->GetTitle()),
                                "Residual of Fit on Lepton p_{T}",
                                16, -0.04, 0.04);
  fHistResidualLepton_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{p_{T}^{initial}}");
  fHistResidualLepton_pt->SetYTitle("#(Best Candidates)/0.005");

  // Lepton eta
  fHistResidualLepton_eta = new TH1F(Form("h_residual_Lepton_eta_%s", this->GetTitle()),
                                 "Residual of Fit on Lepton #eta",
                                 16, -0.04, 0.04);
  fHistResidualLepton_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#eta^{initial}}");
  fHistResidualLepton_eta->SetYTitle("#(Best Candidates)/0.005");

  // Lepton phi
  fHistResidualLepton_phi = new TH1F(Form("h_residual_Lepton_phi_%s", this->GetTitle()),
                                 "Residual of Fit on Lepton #varphi",
                                 16, -0.04, 0.04);
  fHistResidualLepton_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#varphi^{initial}}");
  fHistResidualLepton_phi->SetYTitle("#(Best Candidates)/0.005");

  gDirectory->cd("..");



  // B-Jets  
  gDirectory->mkdir("bjet_residual","Residual histograms for B-Jets");
  gDirectory->cd("bjet_residual");

  // B-Jet Et
  fHistResidualLepBJet_Et = new TH1F(Form("h_residual_LepBJet_Et_%s", this->GetTitle()),
                                 "Residual of Fit on B-Jet E_{T}",
                                 16, -0.2, 0.2);
  fHistResidualLepBJet_Et->SetXTitle("#frac{E_{T}^{final}-E_{T}^{initial}}{E_{T}^{initial}}");
  fHistResidualLepBJet_Et->SetYTitle("#(Best Candidates)/0.025");

  // B-Jet pt
  fHistResidualLepBJet_pt = new TH1F(Form("h_residual_LepBJet_pt_%s", this->GetTitle()),
                                 "Residual of Fit on B-Jet p_{T}",
                                 16, -0.2, 0.2);
  fHistResidualLepBJet_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{p_{T}^{initial}}");
  fHistResidualLepBJet_pt->SetYTitle("#(Best Candidates)/0.025");

  // B-Jet eta
  fHistResidualLepBJet_eta = new TH1F(Form("h_residual_LepBJet_eta_%s", this->GetTitle()),
                                  "Residual of Fit on B-Jet #eta",
                                  16, -0.2, 0.2);
  fHistResidualLepBJet_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#eta^{initial}}");
  fHistResidualLepBJet_eta->SetYTitle("#(Best Candidates)/0.025");

  // B-Jet phi
  fHistResidualLepBJet_phi = new TH1F(Form("h_residual_LepBJet_phi_%s", this->GetTitle()),
                                  "Residual of Fit on B-Jet #varphi",
                                  16, -0.2, 0.2);
  fHistResidualLepBJet_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#varphi^{initial}}");
  fHistResidualLepBJet_phi->SetYTitle("#(Best Candidates)/0.025");



  // B-Jet Et
  fHistResidualHadBJet_Et = new TH1F(Form("h_residual_HadBJet_Et_%s", this->GetTitle()),
                                 "Residual of Fit on B-Jet E_{T}",
                                 16, -0.2, 0.2);
  fHistResidualHadBJet_Et->SetXTitle("#frac{E_{T}^{final}-E_{T}^{initial}}{E_{T}^{initial}}");
  fHistResidualHadBJet_Et->SetYTitle("#(Best Candidates)/0.025");

  // B-Jet pt
  fHistResidualHadBJet_pt = new TH1F(Form("h_residual_HadBJet_pt_%s", this->GetTitle()),
                                 "Residual of Fit on B-Jet p_{T}",
                                 16, -0.2, 0.2);
  fHistResidualHadBJet_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{p_{T}^{initial}}");
  fHistResidualHadBJet_pt->SetYTitle("#(Best Candidates)/0.025");

  // B-Jet eta
  fHistResidualHadBJet_eta = new TH1F(Form("h_residual_HadBJet_eta_%s", this->GetTitle()),
                                  "Residual of Fit on B-Jet #eta",
                                  16, -0.2, 0.2);
  fHistResidualHadBJet_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#eta^{initial}}");
  fHistResidualHadBJet_eta->SetYTitle("#(Best Candidates)/0.025");

  // B-Jet phi
  fHistResidualHadBJet_phi = new TH1F(Form("h_residual_HadBJet_phi_%s", this->GetTitle()),
                                  "Residual of Fit on B-Jet #varphi",
                                  16, -0.2, 0.2);
  fHistResidualHadBJet_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#varphi^{initial}}");
  fHistResidualHadBJet_phi->SetYTitle("#(Best Candidates)/0.025");


  gDirectory->cd("..");

  // Jets  
  gDirectory->mkdir("jet_residual","Residual histograms for Jets");
  gDirectory->cd("jet_residual");

  // B-Jet Et
  fHistResidualHadJet1_Et = new TH1F(Form("h_residual_HadJet1_Et_%s", this->GetTitle()),
                                 "Residual of Fit on Jet1 E_{T}",
                                 16, -0.4, 0.4);
  fHistResidualHadJet1_Et->SetXTitle("#frac{E_{T}^{final}-E_{T}^{initial}}{E_{T}^{initial}}");
  fHistResidualHadJet1_Et->SetYTitle("#(Best Candidates)/0.05");

  // B-Jet pt
  fHistResidualHadJet1_pt = new TH1F(Form("h_residual_HadJet1_pt_%s", this->GetTitle()),
                                 "Residual of Fit on Jet1 p_{T}",
                                 16, -0.4, 0.4);
  fHistResidualHadJet1_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{p_{T}^{initial}}");
  fHistResidualHadJet1_pt->SetYTitle("#(Best Candidates)/0.05");

  // B-Jet eta
  fHistResidualHadJet1_eta = new TH1F(Form("h_residual_HadJet1_eta_%s", this->GetTitle()),
                                  "Residual of Fit on Jet1 #eta",
                                  12, -0.3, 0.3);
  fHistResidualHadJet1_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#eta^{initial}}");
  fHistResidualHadJet1_eta->SetYTitle("#(Best Candidates)/0.05");

  // B-Jet phi
  fHistResidualHadJet1_phi = new TH1F(Form("h_residual_HadJet1_phi_%s", this->GetTitle()),
                                  "Residual of Fit on Jet1 #varphi",
                                  12, -0.3, 0.3);
  fHistResidualHadJet1_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#varphi^{initial}}");
  fHistResidualHadJet1_phi->SetYTitle("#(Best Candidates)/0.05");



  // B-Jet Et
  fHistResidualHadJet2_Et = new TH1F(Form("h_residual_HadJet2_Et_%s", this->GetTitle()),
                                 "Residual of Fit on Jet2 E_{T}",
                                 16, -0.4, 0.4);
  fHistResidualHadJet2_Et->SetXTitle("#frac{E_{T}^{final}-E_{T}^{initial}}{E_{T}^{initial}}");
  fHistResidualHadJet2_Et->SetYTitle("#(Best Candidates)/0.05");

  // B-Jet pt
  fHistResidualHadJet2_pt = new TH1F(Form("h_residual_HadJet2_pt_%s", this->GetTitle()),
                                 "Residual of Fit on Jet2 p_{T}",
                                 16, -0.4, 0.4);
  fHistResidualHadJet2_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{p_{T}^{initial}}");
  fHistResidualHadJet2_pt->SetYTitle("#(Best Candidates)/0.05");

  // B-Jet eta
  fHistResidualHadJet2_eta = new TH1F(Form("h_residual_HadJet2_eta_%s", this->GetTitle()),
                                  "Residual of Fit on Jet2 #eta",
                                  12, -0.3, 0.3);
  fHistResidualHadJet2_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#eta^{initial}}");
  fHistResidualHadJet2_eta->SetYTitle("#(Best Candidates)/0.05");

  // B-Jet phi
  fHistResidualHadJet2_phi = new TH1F(Form("h_residual_HadJet2_phi_%s", this->GetTitle()),
                                  "Residual of Fit on Jet2 #varphi",
                                  12, -0.3, 0.3);
  fHistResidualHadJet2_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#varphi^{initial}}");
  fHistResidualHadJet2_phi->SetYTitle("#(Best Candidates)/0.05");


  gDirectory->cd("..");


  // MET  
  gDirectory->mkdir("etmiss_Residual","Residual histograms for MET");
  gDirectory->cd("etmiss_Residual");

  // MET Magnitude
  fHistResidualEtmiss_Mag = new TH1F(Form("h_residual_Etmiss_Mag_%s", this->GetTitle()),
                                 "Residual of Fit on Magnitude of E_{T}^{miss}",
                                 15, -0.75, 0.75);
  fHistResidualEtmiss_Mag->SetXTitle("#frac{E_{T}^{final}-E_{T}^{initial}}{E_{T}^{initial}}");
  fHistResidualEtmiss_Mag->SetYTitle("#(Best Candidates)/0.1");

  // MET phi
  fHistResidualEtmiss_phi = new TH1F(Form("h_residual_Etmiss_phi_%s", this->GetTitle()),
                                 "Residual of Fit on #varphi of E_{T}^{miss}",
                                 15, -0.75, 0.75);
  fHistResidualEtmiss_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#varphi^{initial}}");
  fHistResidualEtmiss_phi->SetYTitle("#(Best Candidates)/0.1");

  gDirectory->cd("../..");
}

//___________________________________________________________

void AtlTopPairDocumenter::BookPullHistograms() {
   //
   // Pull distributions used for checking if the kinfitter works as intended
   //

  gDirectory->mkdir("Pulls","Pull histograms");
  gDirectory->cd("Pulls");

  // Lepton  
  gDirectory->mkdir("lepton_pull","Pull histograms for leptons");
  gDirectory->cd("lepton_pull");

  // Lepton pt
  fHistPullLepton_pt = new TH1F(Form("h_PullLepton_pt_%s", this->GetTitle()),
                                "Pull of Fit on Lepton p_{T}",
                                50, -5, 5);
  fHistPullLepton_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{#sigma_{#Delta p_{T}}}");
  fHistPullLepton_pt->SetYTitle("#(Best Candidates)/0.2");

  // Lepton eta
  fHistPullLepton_eta = new TH1F(Form("h_PullLepton_eta_%s", this->GetTitle()),
                                 "Pull of Fit on Lepton #eta",
                                 50, -5, 5);
  fHistPullLepton_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#sigma_{#Delta #eta}}");
  fHistPullLepton_eta->SetYTitle("#(Best Candidates)/0.2");

  // Lepton phi
  fHistPullLepton_phi = new TH1F(Form("h_PullLepton_phi_%s", this->GetTitle()),
                                 "Pull of Fit on Lepton #varphi",
                                 50, -5, 5);
  fHistPullLepton_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#sigma_{#Delta #varphi}}");
  fHistPullLepton_phi->SetYTitle("#(Best Candidates)/0.2");

  gDirectory->cd("..");



  // B-Jets  
  gDirectory->mkdir("bjet_pull","Pull histograms for B-Jets");
  gDirectory->cd("bjet_pull");

  // B-Jet pt
  fHistPullLepBJet_pt = new TH1F(Form("h_PullLepBJet_pt_%s", this->GetTitle()),
                                 "Pull of Fit on B-Jet p_{T}",
                                 50, -5, 5);
  fHistPullLepBJet_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{#sigma_{#Delta p_{T}}}");
  fHistPullLepBJet_pt->SetYTitle("#(Best Candidates)/0.2");

  // B-Jet eta
  fHistPullLepBJet_eta = new TH1F(Form("h_PullLepBJet_eta_%s", this->GetTitle()),
                                  "Pull of Fit on B-Jet #eta",
                                  50, -5, 5);
  fHistPullLepBJet_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#sigma_{#Delta #eta}}");
  fHistPullLepBJet_eta->SetYTitle("#(Best Candidates)/0.2");

  // B-Jet phi
  fHistPullLepBJet_phi = new TH1F(Form("h_PullLepBJet_phi_%s", this->GetTitle()),
                                  "Pull of Fit on B-Jet #varphi",
                                  50, -5, 5);
  fHistPullLepBJet_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#sigma_{#Delta #varphi}}");
  fHistPullLepBJet_phi->SetYTitle("#(Best Candidates)/0.2");


  // B-Jet pt
  fHistPullHadBJet_pt = new TH1F(Form("h_PullHadBJet_pt_%s", this->GetTitle()),
                                 "Pull of Fit on B-Jet p_{T}",
                                 50, -5, 5);
  fHistPullHadBJet_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{#sigma_{#Delta p_{T}}}");
  fHistPullHadBJet_pt->SetYTitle("#(Best Candidates)/0.2");

  // B-Jet eta
  fHistPullHadBJet_eta = new TH1F(Form("h_PullHadBJet_eta_%s", this->GetTitle()),
                                  "Pull of Fit on B-Jet #eta",
                                  50, -5, 5);
  fHistPullHadBJet_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#sigma_{#Delta #eta}}");
  fHistPullHadBJet_eta->SetYTitle("#(Best Candidates)/0.2");

  // B-Jet phi
  fHistPullHadBJet_phi = new TH1F(Form("h_PullHadBJet_phi_%s", this->GetTitle()),
                                  "Pull of Fit on B-Jet #varphi",
                                  50, -5, 5);
  fHistPullHadBJet_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#sigma_{#Delta #varphi}}");
  fHistPullHadBJet_phi->SetYTitle("#(Best Candidates)/0.2");


  gDirectory->cd("..");

  // Jets  
  gDirectory->mkdir("jet_pull","Pull histograms for Jets");
  gDirectory->cd("jet_pull");

  // B-Jet pt
  fHistPullHadJet1_pt = new TH1F(Form("h_PullHadJet1_pt_%s", this->GetTitle()),
                                 "Pull of Fit on Jet1 p_{T}",
                                 50, -5, 5);
  fHistPullHadJet1_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{#sigma_{#Delta p_{T}}}");
  fHistPullHadJet1_pt->SetYTitle("#(Best Candidates)/0.2");

  // B-Jet eta
  fHistPullHadJet1_eta = new TH1F(Form("h_PullHadJet1_eta_%s", this->GetTitle()),
                                  "Pull of Fit on Jet1 #eta",
                                  50, -5, 5);
  fHistPullHadJet1_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#sigma_{#Delta #eta}}");
  fHistPullHadJet1_eta->SetYTitle("#(Best Candidates)/0.2");

  // B-Jet phi
  fHistPullHadJet1_phi = new TH1F(Form("h_PullHadJet1_phi_%s", this->GetTitle()),
                                  "Pull of Fit on Jet1 #varphi",
                                  50, -5, 5);
  fHistPullHadJet1_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#sigma_{#Delta #varphi}}");
  fHistPullHadJet1_phi->SetYTitle("#(Best Candidates)/0.2");

  // B-Jet pt
  fHistPullHadJet2_pt = new TH1F(Form("h_PullHadJet2_pt_%s", this->GetTitle()),
                                 "Pull of Fit on Jet2 p_{T}",
                                 50, -5, 5);
  fHistPullHadJet2_pt->SetXTitle("#frac{p_{T}^{final}-p_{T}^{initial}}{#sigma_{#Delta p_{T}}}");
  fHistPullHadJet2_pt->SetYTitle("#(Best Candidates)/0.2");

  // B-Jet eta
  fHistPullHadJet2_eta = new TH1F(Form("h_PullHadJet2_eta_%s", this->GetTitle()),
                                  "Pull of Fit on Jet2 #eta",
                                  50, -5, 5);
  fHistPullHadJet2_eta->SetXTitle("#frac{#eta^{final}-#eta^{initial}}{#sigma_{#Delta #eta}}");
  fHistPullHadJet2_eta->SetYTitle("#(Best Candidates)/0.2");

  // B-Jet phi
  fHistPullHadJet2_phi = new TH1F(Form("h_PullHadJet2_phi_%s", this->GetTitle()),
                                  "Pull of Fit on Jet2 #varphi",
                                  50, -5, 5);
  fHistPullHadJet2_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#sigma_{#Delta #varphi}}");
  fHistPullHadJet2_phi->SetYTitle("#(Best Candidates)/0.2");


  gDirectory->cd("..");


  // MET  
  gDirectory->mkdir("etmiss_pull","Pull histograms for MET");
  gDirectory->cd("etmiss_pull");

  // MET Magnitude
  fHistPullEtmiss_Mag = new TH1F(Form("h_PullEtmiss_Mag_%s", this->GetTitle()),
                                 "Pull of Fit on Magnitude of E_{T}^{miss}",
                                 50, -5, 5);
  fHistPullEtmiss_Mag->SetXTitle("#frac{E_{T}^{miss,final}-E_{T}^{miss,initial}}{#sigma_{#Delta E_{T}^{miss}}}");
  fHistPullEtmiss_Mag->SetYTitle("#(Best Candidates)/0.2");

  // MET phi
  fHistPullEtmiss_phi = new TH1F(Form("h_PullEtmiss_phi_%s", this->GetTitle()),
                                 "Pull of Fit on #varphi of E_{T}^{miss}",
                                 50, -5, 5);
  fHistPullEtmiss_phi->SetXTitle("#frac{#varphi^{final}-#varphi^{initial}}{#sigma_{#Delta #varphi}");
  fHistPullEtmiss_phi->SetYTitle("#(Best Candidates)/0.2");

  gDirectory->cd("../..");
}


//____________________________________________________________________

void AtlTopPairDocumenter::Document(AtlTopPair *toppair, TVector2 *etmiss, Double_t weight) {

  //
  // Invocation method for the documentation of the given particles  
  //
  
  fTopPair = toppair;
  fEvtWeight = weight;
    
  fEtMissMag = etmiss->Mod();
  fEtMissPhi = TVector2::Phi_mpi_pi((Double_t)etmiss->Phi());
    
  FillHistograms();

}

//____________________________________________________________________

void AtlTopPairDocumenter::FillHistograms() {

  //
  // Method for filling histograms, only events that survive 
  // AnalyzeEvent() are taken into account
  //

  // Check if 2 top decays labeled as ttbar are available
  if ( fTopPair == 0 ) return;





  // Get lepton from reconstruction
  HepParticle* Lepton = 0;
  Lepton = ((AtlWDecayLNu*)((HepTopDecay*)fTopPair->GetLeptonicTop())->GetWDecay())->GetChargedLeptonOrig();



  // Invoking procedures for filling histograms

  FillLepHistograms();
  FillHadHistograms();
  FillResidualHistograms();
  FillPullHistograms();

}

//___________________________________________________________

void AtlTopPairDocumenter::FillLepHistograms() {
  //
  // Fill Leptonic histograms (after kinematic fit)
  //

  // Get appropriate W-bosons and top quarks
  HepTopDecay*  t = fTopPair->GetLeptonicTop();
  AtlWDecayLNu* W = (AtlWDecayLNu*)t->GetWDecay();

  HepJet* BJet        = t->GetBJetOrig();
  HepParticle* Lepton = W->GetChargedLeptonOrig();
  HepParticle* nu     = W->GetNeutrino();


  // 4-vectors derived from original data
  TLorentzVector P_W = Lepton->P() + nu->P();
  TLorentzVector P_Top = BJet->P() + P_W;

  // Fill inclusive diagrams
  fHistChi2[kInclusive]        ->Fill(W->GetChi2(), fEvtWeight);
  fHistChi2Prob[kInclusive]    ->Fill(W->GetProb(), fEvtWeight);


  // Filling inclusive top-reco diagrams

  fHistTopReco_M[kInclusive][kFitted]   ->Fill(t->M("REC"), fEvtWeight);
  fHistTopReco_phi[kInclusive][kFitted] ->Fill(t->Phi(), fEvtWeight);
  fHistTopReco_pt[kInclusive][kFitted]  ->Fill(t->Pt(), fEvtWeight);
  fHistTopReco_eta[kInclusive][kFitted] ->Fill(t->Eta(), fEvtWeight);

  fHistTopReco_M[kInclusive][kOriginal]   ->Fill(P_Top.M(), fEvtWeight);
  fHistTopReco_phi[kInclusive][kOriginal] ->Fill(P_Top.Phi(), fEvtWeight);
  fHistTopReco_pt[kInclusive][kOriginal]  ->Fill(P_Top.Pt(), fEvtWeight);
  fHistTopReco_eta[kInclusive][kOriginal] ->Fill(P_Top.Eta(), fEvtWeight);


  fHistTopMvsChi2[kInclusive][kFitted]      ->Fill(t->M("REC"), W->GetChi2(), fEvtWeight);
  fHistTopMvsChi2prob[kInclusive][kFitted]  ->Fill(t->M("REC"), W->GetProb(), fEvtWeight);
  fHistTopPtvsChi2[kInclusive][kFitted]     ->Fill(t->Pt(), W->GetChi2(), fEvtWeight);
  fHistTopPtvsChi2prob[kInclusive][kFitted] ->Fill(t->Pt(), W->GetProb(), fEvtWeight);

  fHistTopMvsChi2[kInclusive][kOriginal]      ->Fill(P_Top.M(), W->GetChi2(), fEvtWeight);
  fHistTopMvsChi2prob[kInclusive][kOriginal]  ->Fill(P_Top.M(), W->GetProb(), fEvtWeight);
  fHistTopPtvsChi2[kInclusive][kOriginal]     ->Fill(P_Top.Pt(), W->GetChi2(), fEvtWeight);
  fHistTopPtvsChi2prob[kInclusive][kOriginal] ->Fill(P_Top.Pt(), W->GetProb(), fEvtWeight);

  // Filling inclusive W-Reco diagrams
  fHistWreco_M[kInclusive][kFitted]   ->Fill(W->M("REC"), fEvtWeight);
  fHistWreco_phi[kInclusive][kFitted] ->Fill(W->Phi(), fEvtWeight);
  fHistWreco_pt[kInclusive][kFitted]  ->Fill(W->Pt(), fEvtWeight);
  fHistWreco_eta[kInclusive][kFitted] ->Fill(W->Eta(), fEvtWeight);

  fHistWreco_M[kInclusive][kOriginal]   ->Fill(P_W.M(), fEvtWeight);
  fHistWreco_phi[kInclusive][kOriginal] ->Fill(P_W.Phi(), fEvtWeight);
  fHistWreco_pt[kInclusive][kOriginal]  ->Fill(P_W.Pt(), fEvtWeight);
  fHistWreco_eta[kInclusive][kOriginal] ->Fill(P_W.Eta(), fEvtWeight);


  fHistChi2[kLeptonic]        ->Fill(W->GetChi2(), fEvtWeight);
  fHistChi2Prob[kLeptonic]    ->Fill(W->GetProb(), fEvtWeight);


  // Filling leptonic top-reco diagrams

  fHistTopReco_M[kLeptonic][kFitted]   ->Fill(t->M("REC"), fEvtWeight);
  fHistTopReco_phi[kLeptonic][kFitted] ->Fill(t->Phi(), fEvtWeight);
  fHistTopReco_pt[kLeptonic][kFitted]  ->Fill(t->Pt(), fEvtWeight);
  fHistTopReco_eta[kLeptonic][kFitted] ->Fill(t->Eta(), fEvtWeight);

  fHistTopReco_M[kLeptonic][kOriginal]   ->Fill(P_Top.M(), fEvtWeight);
  fHistTopReco_phi[kLeptonic][kOriginal] ->Fill(P_Top.Phi(), fEvtWeight);
  fHistTopReco_pt[kLeptonic][kOriginal]  ->Fill(P_Top.Pt(), fEvtWeight);
  fHistTopReco_eta[kLeptonic][kOriginal] ->Fill(P_Top.Eta(), fEvtWeight);


  fHistTopMvsChi2[kLeptonic][kFitted]      ->Fill(t->M("REC"), W->GetChi2(), fEvtWeight);
  fHistTopMvsChi2prob[kLeptonic][kFitted]  ->Fill(t->M("REC"), W->GetProb(), fEvtWeight);
  fHistTopPtvsChi2[kLeptonic][kFitted]     ->Fill(t->Pt(), W->GetChi2(), fEvtWeight);
  fHistTopPtvsChi2prob[kLeptonic][kFitted] ->Fill(t->Pt(), W->GetProb(), fEvtWeight);

  fHistTopMvsChi2[kLeptonic][kOriginal]      ->Fill(P_Top.M(), W->GetChi2(), fEvtWeight);
  fHistTopMvsChi2prob[kLeptonic][kOriginal]  ->Fill(P_Top.M(), W->GetProb(), fEvtWeight);
  fHistTopPtvsChi2[kLeptonic][kOriginal]     ->Fill(P_Top.Pt(), W->GetChi2(), fEvtWeight);
  fHistTopPtvsChi2prob[kLeptonic][kOriginal] ->Fill(P_Top.Pt(), W->GetProb(), fEvtWeight);


  // Filling leptonic W-Reco diagrams

  fHistWreco_M[kLeptonic][kFitted]   ->Fill(W->M("REC"), fEvtWeight);
  fHistWreco_phi[kLeptonic][kFitted] ->Fill(W->Phi(), fEvtWeight);
  fHistWreco_pt[kLeptonic][kFitted]  ->Fill(W->Pt(), fEvtWeight);
  fHistWreco_eta[kLeptonic][kFitted] ->Fill(W->Eta(), fEvtWeight);

  fHistWreco_M[kLeptonic][kOriginal]   ->Fill(P_W.M(), fEvtWeight);
  fHistWreco_phi[kLeptonic][kOriginal] ->Fill(P_W.Phi(), fEvtWeight);
  fHistWreco_pt[kLeptonic][kOriginal]  ->Fill(P_W.Pt(), fEvtWeight);
  fHistWreco_eta[kLeptonic][kOriginal] ->Fill(P_W.Eta(), fEvtWeight);

  // Lepton histograms
  fHistLepNuReco_phi  ->Fill(nu->Phi(), fEvtWeight);
  fHistLepNuReco_pt   ->Fill(nu->Pt(), fEvtWeight);
  fHistLepNuReco_eta  ->Fill(nu->Eta(), fEvtWeight);

}

//___________________________________________________________

void AtlTopPairDocumenter::FillHadHistograms() {
  //
  // Fill Hadronic histograms (after kinematic fit)
  //

  // Get appropriate W-bosons and top quarks
  HepTopDecay* t = fTopPair->GetHadronicTop();
  AtlWDecayJJ* W = (AtlWDecayJJ*)t->GetWDecay();

  HepJet* BJet  = t->GetBJetOrig();
  AtlJet* Jet1  = W->GetJet1_Orig();
  AtlJet* Jet2  = W->GetJet2_Orig();

  // 4-vectors derived from original data
  TLorentzVector P_W = Jet1->P() + Jet2->P();
  TLorentzVector P_Top = BJet->P() + P_W;


  // Fill inclusive diagrams
  fHistChi2[kInclusive]        ->Fill(W->GetChi2(), fEvtWeight);
  fHistChi2Prob[kInclusive]    ->Fill(W->GetProb(), fEvtWeight);

  // Filling inclusive top-reco diagrams
  fHistTopReco_M[kInclusive][kFitted]   ->Fill(t->M("REC"), fEvtWeight);
  fHistTopReco_phi[kInclusive][kFitted] ->Fill(t->Phi(), fEvtWeight);
  fHistTopReco_pt[kInclusive][kFitted]  ->Fill(t->Pt(), fEvtWeight);
  fHistTopReco_eta[kInclusive][kFitted] ->Fill(t->Eta(), fEvtWeight);

  fHistTopReco_M[kInclusive][kOriginal]   ->Fill(P_Top.M(), fEvtWeight);
  fHistTopReco_phi[kInclusive][kOriginal] ->Fill(P_Top.Phi(), fEvtWeight);
  fHistTopReco_pt[kInclusive][kOriginal]  ->Fill(P_Top.Pt(), fEvtWeight);
  fHistTopReco_eta[kInclusive][kOriginal] ->Fill(P_Top.Eta(), fEvtWeight);

  fHistTopMvsChi2[kInclusive][kFitted]      ->Fill(t->M("REC"), W->GetChi2(), fEvtWeight);
  fHistTopMvsChi2prob[kInclusive][kFitted]  ->Fill(t->M("REC"), W->GetProb(), fEvtWeight);
  fHistTopPtvsChi2[kInclusive][kFitted]     ->Fill(t->Pt(), W->GetChi2(), fEvtWeight);
  fHistTopPtvsChi2prob[kInclusive][kFitted] ->Fill(t->Pt(), W->GetProb(), fEvtWeight);

  fHistTopMvsChi2[kInclusive][kOriginal]      ->Fill(P_Top.M(), W->GetChi2(), fEvtWeight);
  fHistTopMvsChi2prob[kInclusive][kOriginal]  ->Fill(P_Top.M(), W->GetProb(), fEvtWeight);
  fHistTopPtvsChi2[kInclusive][kOriginal]     ->Fill(P_Top.Pt(), W->GetChi2(), fEvtWeight);
  fHistTopPtvsChi2prob[kInclusive][kOriginal] ->Fill(P_Top.Pt(), W->GetProb(), fEvtWeight);

  // Filling inclusive W-Reco diagrams
  fHistWreco_M[kInclusive][kFitted]   ->Fill(W->M("REC"), fEvtWeight);
  fHistWreco_phi[kInclusive][kFitted] ->Fill(W->Phi(), fEvtWeight);
  fHistWreco_pt[kInclusive][kFitted]  ->Fill(W->Pt(), fEvtWeight);
  fHistWreco_eta[kInclusive][kFitted] ->Fill(W->Eta(), fEvtWeight);

  fHistWreco_M[kInclusive][kOriginal]   ->Fill(P_W.M(), fEvtWeight);
  fHistWreco_phi[kInclusive][kOriginal] ->Fill(P_W.Phi(), fEvtWeight);
  fHistWreco_pt[kInclusive][kOriginal]  ->Fill(P_W.Pt(), fEvtWeight);
  fHistWreco_eta[kInclusive][kOriginal] ->Fill(P_W.Eta(), fEvtWeight);


  // Filling hadronic diagrams
  fHistChi2[kHadronic]     ->Fill(W->GetChi2(), fEvtWeight);
  fHistChi2Prob[kHadronic] ->Fill(W->GetProb(), fEvtWeight);

  // Filling hadronic top-reco diagrams
  fHistTopReco_M[kHadronic][kFitted]   ->Fill(t->M("REC"), fEvtWeight);
  fHistTopReco_phi[kHadronic][kFitted] ->Fill(t->Phi(), fEvtWeight);
  fHistTopReco_pt[kHadronic][kFitted]  ->Fill(t->Pt(), fEvtWeight);
  fHistTopReco_eta[kHadronic][kFitted] ->Fill(t->Eta(), fEvtWeight);

  fHistTopReco_M[kHadronic][kOriginal]   ->Fill(P_Top.M(), fEvtWeight);
  fHistTopReco_phi[kHadronic][kOriginal] ->Fill(P_Top.Phi(), fEvtWeight);
  fHistTopReco_pt[kHadronic][kOriginal]  ->Fill(P_Top.Pt(), fEvtWeight);
  fHistTopReco_eta[kHadronic][kOriginal] ->Fill(P_Top.Eta(), fEvtWeight);


  fHistTopMvsChi2[kHadronic][kFitted]      ->Fill(t->M("REC"), W->GetChi2(), fEvtWeight);
  fHistTopMvsChi2prob[kHadronic][kFitted]  ->Fill(t->M("REC"), W->GetProb(), fEvtWeight);
  fHistTopPtvsChi2[kHadronic][kFitted]     ->Fill(t->Pt(), W->GetChi2(), fEvtWeight);
  fHistTopPtvsChi2prob[kHadronic][kFitted] ->Fill(t->Pt(), W->GetProb(), fEvtWeight);

  fHistTopMvsChi2[kHadronic][kOriginal]      ->Fill(P_Top.M(), W->GetChi2(), fEvtWeight);
  fHistTopMvsChi2prob[kHadronic][kOriginal]  ->Fill(P_Top.M(), W->GetProb(), fEvtWeight);
  fHistTopPtvsChi2[kHadronic][kOriginal]     ->Fill(P_Top.Pt(), W->GetChi2(), fEvtWeight);
  fHistTopPtvsChi2prob[kHadronic][kOriginal] ->Fill(P_Top.Pt(), W->GetProb(), fEvtWeight);


  // Filling hadronic W-Reco diagrams
  fHistWreco_M[kHadronic][kFitted]   ->Fill(W->M("REC"), fEvtWeight);
  fHistWreco_phi[kHadronic][kFitted] ->Fill(W->Phi(), fEvtWeight);
  fHistWreco_pt[kHadronic][kFitted]  ->Fill(W->Pt(), fEvtWeight);
  fHistWreco_eta[kHadronic][kFitted] ->Fill(W->Eta(), fEvtWeight);

  fHistWreco_M[kHadronic][kOriginal]   ->Fill(P_W.M(), fEvtWeight);
  fHistWreco_phi[kHadronic][kOriginal] ->Fill(P_W.Phi(), fEvtWeight);
  fHistWreco_pt[kHadronic][kOriginal]  ->Fill(P_W.Pt(), fEvtWeight);
  fHistWreco_eta[kHadronic][kOriginal] ->Fill(P_W.Eta(), fEvtWeight);


}


//___________________________________________________________

void AtlTopPairDocumenter::FillResidualHistograms(){
  //
  // Filling the pull histograms in order to check if kinfitter is working as intended
  //

  // Get appropriate W-bosons and top quarks
  HepTopDecay*  tlep = fTopPair->GetLeptonicTop();
  AtlWDecayLNu* WLNu = (AtlWDecayLNu*)tlep->GetWDecay();


  // Before fit
  AtlJet *lepbjet_orig = (AtlJet*)tlep->GetBJetOrig();
  HepParticle* lepton_orig = WLNu->GetChargedLeptonOrig();

  // After fit
  HepParticle   *lepton_fit   = WLNu->GetChargedLepton();
  HepParticle   *neutrino_fit = WLNu->GetNeutrino();
  TLorentzVector p_lepbjet_fit   = tlep->GetP_BJet();

  // Pull distributions
  fHistResidualLepBJet_Et->Fill((p_lepbjet_fit.Et() - lepbjet_orig->Et())/lepbjet_orig->Et(), fEvtWeight);
  fHistResidualLepBJet_pt->Fill((p_lepbjet_fit.Pt() - lepbjet_orig->Pt())/lepbjet_orig->Pt(), fEvtWeight);
  fHistResidualLepBJet_eta->Fill((p_lepbjet_fit.Eta() - lepbjet_orig->Eta())/lepbjet_orig->Eta(), fEvtWeight);
  fHistResidualLepBJet_phi->Fill((p_lepbjet_fit.Phi() - lepbjet_orig->Phi())/lepbjet_orig->Phi(), fEvtWeight);

  fHistResidualLepton_pt->Fill((lepton_fit->Pt() - lepton_orig->Pt())/lepton_orig->Pt(), fEvtWeight);
  fHistResidualLepton_eta->Fill((lepton_fit->Eta() - lepton_orig->Eta())/lepton_orig->Eta(), fEvtWeight);
  fHistResidualLepton_phi->Fill((lepton_fit->Phi() - lepton_orig->Phi())/lepton_orig->Phi(), fEvtWeight);

  fHistResidualEtmiss_Mag->Fill((neutrino_fit->Et() - fEtMissMag)/fEtMissMag, fEvtWeight);
  fHistResidualEtmiss_phi->Fill((neutrino_fit->Phi() - fEtMissPhi)/fEtMissPhi, fEvtWeight);


  // Get appropriate W-bosons and top quarks  
  HepTopDecay*  thad = fTopPair->GetHadronicTop();
  AtlWDecayJJ* WJJ = (AtlWDecayJJ*)thad->GetWDecay();

  // Before fit
  AtlJet *hadbjet_orig = (AtlJet*)thad->GetBJetOrig();
  AtlJet *hadjet1_orig = (AtlJet*)WJJ->GetJet1_Orig();
  AtlJet *hadjet2_orig = (AtlJet*)WJJ->GetJet2_Orig();

  // After fit
  TLorentzVector p_hadbjet_fit = thad->GetP_BJet();
  HepJet *hadjet1_fit = (HepJet*)WJJ->GetJet1();
  HepJet *hadjet2_fit = (HepJet*)WJJ->GetJet2();

  // Pull distributions
  fHistResidualHadBJet_Et->Fill((p_hadbjet_fit.Et() - hadbjet_orig->Et())/hadbjet_orig->Et(), fEvtWeight);
  fHistResidualHadBJet_pt->Fill((p_hadbjet_fit.Pt() - hadbjet_orig->Pt())/hadbjet_orig->Pt(), fEvtWeight);
  fHistResidualHadBJet_eta->Fill((p_hadbjet_fit.Eta() - hadbjet_orig->Eta())/hadbjet_orig->Eta(), fEvtWeight);
  fHistResidualHadBJet_phi->Fill((p_hadbjet_fit.Phi() - hadbjet_orig->Phi())/hadbjet_orig->Phi(), fEvtWeight);

  fHistResidualHadJet1_Et->Fill((hadjet1_fit->Et() - hadjet1_orig->Et())/hadjet1_orig->Et(), fEvtWeight);
  fHistResidualHadJet1_pt->Fill((hadjet1_fit->Pt() - hadjet1_orig->Pt())/hadjet1_orig->Pt(), fEvtWeight);
  fHistResidualHadJet1_eta->Fill((hadjet1_fit->Eta() - hadjet1_orig->Eta())/hadjet1_orig->Eta(), fEvtWeight);
  fHistResidualHadJet1_phi->Fill((hadjet1_fit->Phi() - hadjet1_orig->Phi())/hadjet1_orig->Phi(), fEvtWeight);

  fHistResidualHadJet2_Et->Fill((hadjet2_fit->Et() - hadjet2_orig->Et())/hadjet2_orig->Et(), fEvtWeight);
  fHistResidualHadJet2_pt->Fill((hadjet2_fit->Pt() - hadjet2_orig->Pt())/hadjet2_orig->Pt(), fEvtWeight);
  fHistResidualHadJet2_eta->Fill((hadjet2_fit->Eta() - hadjet2_orig->Eta())/hadjet2_orig->Eta(), fEvtWeight);
  fHistResidualHadJet2_phi->Fill((hadjet2_fit->Phi() - hadjet2_orig->Phi())/hadjet2_orig->Phi(), fEvtWeight);
}

//___________________________________________________________

void AtlTopPairDocumenter::FillPullHistograms(){
  //
  // Filling the pull histograms in order to check if kinfitter is working as intended
  //



  TMatrixD LeptonPull   = fTopPair->GetLeptonPull();
  TMatrixD NeutrinoPull = fTopPair->GetNeutrinoPull();
  TMatrixD LepBJetPull  = fTopPair->GetLepBJetPull(); 
  TMatrixD HadJet1Pull  = fTopPair->GetHadJet1Pull(); 
  TMatrixD HadJet2Pull  = fTopPair->GetHadJet2Pull(); 
  TMatrixD HadBJetPull  = fTopPair->GetHadBJetPull(); 

  // Pull distributions
  fHistPullLepBJet_pt->Fill(LepBJetPull(0,0), fEvtWeight);
  fHistPullLepBJet_eta->Fill(LepBJetPull(1,0), fEvtWeight);
  fHistPullLepBJet_phi->Fill(LepBJetPull(2,0), fEvtWeight);

  fHistPullLepton_pt->Fill(LeptonPull(0,0), fEvtWeight);
  fHistPullLepton_eta->Fill(LeptonPull(1,0), fEvtWeight);
  fHistPullLepton_phi->Fill(LeptonPull(2,0), fEvtWeight);

  fHistPullEtmiss_Mag->Fill(NeutrinoPull(0,0), fEvtWeight);
  fHistPullEtmiss_phi->Fill(NeutrinoPull(2,0), fEvtWeight);

  fHistPullHadBJet_pt->Fill(HadBJetPull(0,0), fEvtWeight);
  fHistPullHadBJet_eta->Fill(HadBJetPull(1,0), fEvtWeight);
  fHistPullHadBJet_phi->Fill(HadBJetPull(2,0), fEvtWeight);

  fHistPullHadJet1_pt->Fill(HadJet1Pull(0,0), fEvtWeight);
  fHistPullHadJet1_eta->Fill(HadJet1Pull(1,0), fEvtWeight);
  fHistPullHadJet1_phi->Fill(HadJet1Pull(2,0), fEvtWeight);

  fHistPullHadJet2_pt->Fill(HadJet2Pull(0,0), fEvtWeight);
  fHistPullHadJet2_eta->Fill(HadJet2Pull(1,0), fEvtWeight);
  fHistPullHadJet2_phi->Fill(HadJet2Pull(2,0), fEvtWeight);
}




 AtlTopPairDocumenter.cxx:1
 AtlTopPairDocumenter.cxx:2
 AtlTopPairDocumenter.cxx:3
 AtlTopPairDocumenter.cxx:4
 AtlTopPairDocumenter.cxx:5
 AtlTopPairDocumenter.cxx:6
 AtlTopPairDocumenter.cxx:7
 AtlTopPairDocumenter.cxx:8
 AtlTopPairDocumenter.cxx:9
 AtlTopPairDocumenter.cxx:10
 AtlTopPairDocumenter.cxx:11
 AtlTopPairDocumenter.cxx:12
 AtlTopPairDocumenter.cxx:13
 AtlTopPairDocumenter.cxx:14
 AtlTopPairDocumenter.cxx:15
 AtlTopPairDocumenter.cxx:16
 AtlTopPairDocumenter.cxx:17
 AtlTopPairDocumenter.cxx:18
 AtlTopPairDocumenter.cxx:19
 AtlTopPairDocumenter.cxx:20
 AtlTopPairDocumenter.cxx:21
 AtlTopPairDocumenter.cxx:22
 AtlTopPairDocumenter.cxx:23
 AtlTopPairDocumenter.cxx:24
 AtlTopPairDocumenter.cxx:25
 AtlTopPairDocumenter.cxx:26
 AtlTopPairDocumenter.cxx:27
 AtlTopPairDocumenter.cxx:28
 AtlTopPairDocumenter.cxx:29
 AtlTopPairDocumenter.cxx:30
 AtlTopPairDocumenter.cxx:31
 AtlTopPairDocumenter.cxx:32
 AtlTopPairDocumenter.cxx:33
 AtlTopPairDocumenter.cxx:34
 AtlTopPairDocumenter.cxx:35
 AtlTopPairDocumenter.cxx:36
 AtlTopPairDocumenter.cxx:37
 AtlTopPairDocumenter.cxx:38
 AtlTopPairDocumenter.cxx:39
 AtlTopPairDocumenter.cxx:40
 AtlTopPairDocumenter.cxx:41
 AtlTopPairDocumenter.cxx:42
 AtlTopPairDocumenter.cxx:43
 AtlTopPairDocumenter.cxx:44
 AtlTopPairDocumenter.cxx:45
 AtlTopPairDocumenter.cxx:46
 AtlTopPairDocumenter.cxx:47
 AtlTopPairDocumenter.cxx:48
 AtlTopPairDocumenter.cxx:49
 AtlTopPairDocumenter.cxx:50
 AtlTopPairDocumenter.cxx:51
 AtlTopPairDocumenter.cxx:52
 AtlTopPairDocumenter.cxx:53
 AtlTopPairDocumenter.cxx:54
 AtlTopPairDocumenter.cxx:55
 AtlTopPairDocumenter.cxx:56
 AtlTopPairDocumenter.cxx:57
 AtlTopPairDocumenter.cxx:58
 AtlTopPairDocumenter.cxx:59
 AtlTopPairDocumenter.cxx:60
 AtlTopPairDocumenter.cxx:61
 AtlTopPairDocumenter.cxx:62
 AtlTopPairDocumenter.cxx:63
 AtlTopPairDocumenter.cxx:64
 AtlTopPairDocumenter.cxx:65
 AtlTopPairDocumenter.cxx:66
 AtlTopPairDocumenter.cxx:67
 AtlTopPairDocumenter.cxx:68
 AtlTopPairDocumenter.cxx:69
 AtlTopPairDocumenter.cxx:70
 AtlTopPairDocumenter.cxx:71
 AtlTopPairDocumenter.cxx:72
 AtlTopPairDocumenter.cxx:73
 AtlTopPairDocumenter.cxx:74
 AtlTopPairDocumenter.cxx:75
 AtlTopPairDocumenter.cxx:76
 AtlTopPairDocumenter.cxx:77
 AtlTopPairDocumenter.cxx:78
 AtlTopPairDocumenter.cxx:79
 AtlTopPairDocumenter.cxx:80
 AtlTopPairDocumenter.cxx:81
 AtlTopPairDocumenter.cxx:82
 AtlTopPairDocumenter.cxx:83
 AtlTopPairDocumenter.cxx:84
 AtlTopPairDocumenter.cxx:85
 AtlTopPairDocumenter.cxx:86
 AtlTopPairDocumenter.cxx:87
 AtlTopPairDocumenter.cxx:88
 AtlTopPairDocumenter.cxx:89
 AtlTopPairDocumenter.cxx:90
 AtlTopPairDocumenter.cxx:91
 AtlTopPairDocumenter.cxx:92
 AtlTopPairDocumenter.cxx:93
 AtlTopPairDocumenter.cxx:94
 AtlTopPairDocumenter.cxx:95
 AtlTopPairDocumenter.cxx:96
 AtlTopPairDocumenter.cxx:97
 AtlTopPairDocumenter.cxx:98
 AtlTopPairDocumenter.cxx:99
 AtlTopPairDocumenter.cxx:100
 AtlTopPairDocumenter.cxx:101
 AtlTopPairDocumenter.cxx:102
 AtlTopPairDocumenter.cxx:103
 AtlTopPairDocumenter.cxx:104
 AtlTopPairDocumenter.cxx:105
 AtlTopPairDocumenter.cxx:106
 AtlTopPairDocumenter.cxx:107
 AtlTopPairDocumenter.cxx:108
 AtlTopPairDocumenter.cxx:109
 AtlTopPairDocumenter.cxx:110
 AtlTopPairDocumenter.cxx:111
 AtlTopPairDocumenter.cxx:112
 AtlTopPairDocumenter.cxx:113
 AtlTopPairDocumenter.cxx:114
 AtlTopPairDocumenter.cxx:115
 AtlTopPairDocumenter.cxx:116
 AtlTopPairDocumenter.cxx:117
 AtlTopPairDocumenter.cxx:118
 AtlTopPairDocumenter.cxx:119
 AtlTopPairDocumenter.cxx:120
 AtlTopPairDocumenter.cxx:121
 AtlTopPairDocumenter.cxx:122
 AtlTopPairDocumenter.cxx:123
 AtlTopPairDocumenter.cxx:124
 AtlTopPairDocumenter.cxx:125
 AtlTopPairDocumenter.cxx:126
 AtlTopPairDocumenter.cxx:127
 AtlTopPairDocumenter.cxx:128
 AtlTopPairDocumenter.cxx:129
 AtlTopPairDocumenter.cxx:130
 AtlTopPairDocumenter.cxx:131
 AtlTopPairDocumenter.cxx:132
 AtlTopPairDocumenter.cxx:133
 AtlTopPairDocumenter.cxx:134
 AtlTopPairDocumenter.cxx:135
 AtlTopPairDocumenter.cxx:136
 AtlTopPairDocumenter.cxx:137
 AtlTopPairDocumenter.cxx:138
 AtlTopPairDocumenter.cxx:139
 AtlTopPairDocumenter.cxx:140
 AtlTopPairDocumenter.cxx:141
 AtlTopPairDocumenter.cxx:142
 AtlTopPairDocumenter.cxx:143
 AtlTopPairDocumenter.cxx:144
 AtlTopPairDocumenter.cxx:145
 AtlTopPairDocumenter.cxx:146
 AtlTopPairDocumenter.cxx:147
 AtlTopPairDocumenter.cxx:148
 AtlTopPairDocumenter.cxx:149
 AtlTopPairDocumenter.cxx:150
 AtlTopPairDocumenter.cxx:151
 AtlTopPairDocumenter.cxx:152
 AtlTopPairDocumenter.cxx:153
 AtlTopPairDocumenter.cxx:154
 AtlTopPairDocumenter.cxx:155
 AtlTopPairDocumenter.cxx:156
 AtlTopPairDocumenter.cxx:157
 AtlTopPairDocumenter.cxx:158
 AtlTopPairDocumenter.cxx:159
 AtlTopPairDocumenter.cxx:160
 AtlTopPairDocumenter.cxx:161
 AtlTopPairDocumenter.cxx:162
 AtlTopPairDocumenter.cxx:163
 AtlTopPairDocumenter.cxx:164
 AtlTopPairDocumenter.cxx:165
 AtlTopPairDocumenter.cxx:166
 AtlTopPairDocumenter.cxx:167
 AtlTopPairDocumenter.cxx:168
 AtlTopPairDocumenter.cxx:169
 AtlTopPairDocumenter.cxx:170
 AtlTopPairDocumenter.cxx:171
 AtlTopPairDocumenter.cxx:172
 AtlTopPairDocumenter.cxx:173
 AtlTopPairDocumenter.cxx:174
 AtlTopPairDocumenter.cxx:175
 AtlTopPairDocumenter.cxx:176
 AtlTopPairDocumenter.cxx:177
 AtlTopPairDocumenter.cxx:178
 AtlTopPairDocumenter.cxx:179
 AtlTopPairDocumenter.cxx:180
 AtlTopPairDocumenter.cxx:181
 AtlTopPairDocumenter.cxx:182
 AtlTopPairDocumenter.cxx:183
 AtlTopPairDocumenter.cxx:184
 AtlTopPairDocumenter.cxx:185
 AtlTopPairDocumenter.cxx:186
 AtlTopPairDocumenter.cxx:187
 AtlTopPairDocumenter.cxx:188
 AtlTopPairDocumenter.cxx:189
 AtlTopPairDocumenter.cxx:190
 AtlTopPairDocumenter.cxx:191
 AtlTopPairDocumenter.cxx:192
 AtlTopPairDocumenter.cxx:193
 AtlTopPairDocumenter.cxx:194
 AtlTopPairDocumenter.cxx:195
 AtlTopPairDocumenter.cxx:196
 AtlTopPairDocumenter.cxx:197
 AtlTopPairDocumenter.cxx:198
 AtlTopPairDocumenter.cxx:199
 AtlTopPairDocumenter.cxx:200
 AtlTopPairDocumenter.cxx:201
 AtlTopPairDocumenter.cxx:202
 AtlTopPairDocumenter.cxx:203
 AtlTopPairDocumenter.cxx:204
 AtlTopPairDocumenter.cxx:205
 AtlTopPairDocumenter.cxx:206
 AtlTopPairDocumenter.cxx:207
 AtlTopPairDocumenter.cxx:208
 AtlTopPairDocumenter.cxx:209
 AtlTopPairDocumenter.cxx:210
 AtlTopPairDocumenter.cxx:211
 AtlTopPairDocumenter.cxx:212
 AtlTopPairDocumenter.cxx:213
 AtlTopPairDocumenter.cxx:214
 AtlTopPairDocumenter.cxx:215
 AtlTopPairDocumenter.cxx:216
 AtlTopPairDocumenter.cxx:217
 AtlTopPairDocumenter.cxx:218
 AtlTopPairDocumenter.cxx:219
 AtlTopPairDocumenter.cxx:220
 AtlTopPairDocumenter.cxx:221
 AtlTopPairDocumenter.cxx:222
 AtlTopPairDocumenter.cxx:223
 AtlTopPairDocumenter.cxx:224
 AtlTopPairDocumenter.cxx:225
 AtlTopPairDocumenter.cxx:226
 AtlTopPairDocumenter.cxx:227
 AtlTopPairDocumenter.cxx:228
 AtlTopPairDocumenter.cxx:229
 AtlTopPairDocumenter.cxx:230
 AtlTopPairDocumenter.cxx:231
 AtlTopPairDocumenter.cxx:232
 AtlTopPairDocumenter.cxx:233
 AtlTopPairDocumenter.cxx:234
 AtlTopPairDocumenter.cxx:235
 AtlTopPairDocumenter.cxx:236
 AtlTopPairDocumenter.cxx:237
 AtlTopPairDocumenter.cxx:238
 AtlTopPairDocumenter.cxx:239
 AtlTopPairDocumenter.cxx:240
 AtlTopPairDocumenter.cxx:241
 AtlTopPairDocumenter.cxx:242
 AtlTopPairDocumenter.cxx:243
 AtlTopPairDocumenter.cxx:244
 AtlTopPairDocumenter.cxx:245
 AtlTopPairDocumenter.cxx:246
 AtlTopPairDocumenter.cxx:247
 AtlTopPairDocumenter.cxx:248
 AtlTopPairDocumenter.cxx:249
 AtlTopPairDocumenter.cxx:250
 AtlTopPairDocumenter.cxx:251
 AtlTopPairDocumenter.cxx:252
 AtlTopPairDocumenter.cxx:253
 AtlTopPairDocumenter.cxx:254
 AtlTopPairDocumenter.cxx:255
 AtlTopPairDocumenter.cxx:256
 AtlTopPairDocumenter.cxx:257
 AtlTopPairDocumenter.cxx:258
 AtlTopPairDocumenter.cxx:259
 AtlTopPairDocumenter.cxx:260
 AtlTopPairDocumenter.cxx:261
 AtlTopPairDocumenter.cxx:262
 AtlTopPairDocumenter.cxx:263
 AtlTopPairDocumenter.cxx:264
 AtlTopPairDocumenter.cxx:265
 AtlTopPairDocumenter.cxx:266
 AtlTopPairDocumenter.cxx:267
 AtlTopPairDocumenter.cxx:268
 AtlTopPairDocumenter.cxx:269
 AtlTopPairDocumenter.cxx:270
 AtlTopPairDocumenter.cxx:271
 AtlTopPairDocumenter.cxx:272
 AtlTopPairDocumenter.cxx:273
 AtlTopPairDocumenter.cxx:274
 AtlTopPairDocumenter.cxx:275
 AtlTopPairDocumenter.cxx:276
 AtlTopPairDocumenter.cxx:277
 AtlTopPairDocumenter.cxx:278
 AtlTopPairDocumenter.cxx:279
 AtlTopPairDocumenter.cxx:280
 AtlTopPairDocumenter.cxx:281
 AtlTopPairDocumenter.cxx:282
 AtlTopPairDocumenter.cxx:283
 AtlTopPairDocumenter.cxx:284
 AtlTopPairDocumenter.cxx:285
 AtlTopPairDocumenter.cxx:286
 AtlTopPairDocumenter.cxx:287
 AtlTopPairDocumenter.cxx:288
 AtlTopPairDocumenter.cxx:289
 AtlTopPairDocumenter.cxx:290
 AtlTopPairDocumenter.cxx:291
 AtlTopPairDocumenter.cxx:292
 AtlTopPairDocumenter.cxx:293
 AtlTopPairDocumenter.cxx:294
 AtlTopPairDocumenter.cxx:295
 AtlTopPairDocumenter.cxx:296
 AtlTopPairDocumenter.cxx:297
 AtlTopPairDocumenter.cxx:298
 AtlTopPairDocumenter.cxx:299
 AtlTopPairDocumenter.cxx:300
 AtlTopPairDocumenter.cxx:301
 AtlTopPairDocumenter.cxx:302
 AtlTopPairDocumenter.cxx:303
 AtlTopPairDocumenter.cxx:304
 AtlTopPairDocumenter.cxx:305
 AtlTopPairDocumenter.cxx:306
 AtlTopPairDocumenter.cxx:307
 AtlTopPairDocumenter.cxx:308
 AtlTopPairDocumenter.cxx:309
 AtlTopPairDocumenter.cxx:310
 AtlTopPairDocumenter.cxx:311
 AtlTopPairDocumenter.cxx:312
 AtlTopPairDocumenter.cxx:313
 AtlTopPairDocumenter.cxx:314
 AtlTopPairDocumenter.cxx:315
 AtlTopPairDocumenter.cxx:316
 AtlTopPairDocumenter.cxx:317
 AtlTopPairDocumenter.cxx:318
 AtlTopPairDocumenter.cxx:319
 AtlTopPairDocumenter.cxx:320
 AtlTopPairDocumenter.cxx:321
 AtlTopPairDocumenter.cxx:322
 AtlTopPairDocumenter.cxx:323
 AtlTopPairDocumenter.cxx:324
 AtlTopPairDocumenter.cxx:325
 AtlTopPairDocumenter.cxx:326
 AtlTopPairDocumenter.cxx:327
 AtlTopPairDocumenter.cxx:328
 AtlTopPairDocumenter.cxx:329
 AtlTopPairDocumenter.cxx:330
 AtlTopPairDocumenter.cxx:331
 AtlTopPairDocumenter.cxx:332
 AtlTopPairDocumenter.cxx:333
 AtlTopPairDocumenter.cxx:334
 AtlTopPairDocumenter.cxx:335
 AtlTopPairDocumenter.cxx:336
 AtlTopPairDocumenter.cxx:337
 AtlTopPairDocumenter.cxx:338
 AtlTopPairDocumenter.cxx:339
 AtlTopPairDocumenter.cxx:340
 AtlTopPairDocumenter.cxx:341
 AtlTopPairDocumenter.cxx:342
 AtlTopPairDocumenter.cxx:343
 AtlTopPairDocumenter.cxx:344
 AtlTopPairDocumenter.cxx:345
 AtlTopPairDocumenter.cxx:346
 AtlTopPairDocumenter.cxx:347
 AtlTopPairDocumenter.cxx:348
 AtlTopPairDocumenter.cxx:349
 AtlTopPairDocumenter.cxx:350
 AtlTopPairDocumenter.cxx:351
 AtlTopPairDocumenter.cxx:352
 AtlTopPairDocumenter.cxx:353
 AtlTopPairDocumenter.cxx:354
 AtlTopPairDocumenter.cxx:355
 AtlTopPairDocumenter.cxx:356
 AtlTopPairDocumenter.cxx:357
 AtlTopPairDocumenter.cxx:358
 AtlTopPairDocumenter.cxx:359
 AtlTopPairDocumenter.cxx:360
 AtlTopPairDocumenter.cxx:361
 AtlTopPairDocumenter.cxx:362
 AtlTopPairDocumenter.cxx:363
 AtlTopPairDocumenter.cxx:364
 AtlTopPairDocumenter.cxx:365
 AtlTopPairDocumenter.cxx:366
 AtlTopPairDocumenter.cxx:367
 AtlTopPairDocumenter.cxx:368
 AtlTopPairDocumenter.cxx:369
 AtlTopPairDocumenter.cxx:370
 AtlTopPairDocumenter.cxx:371
 AtlTopPairDocumenter.cxx:372
 AtlTopPairDocumenter.cxx:373
 AtlTopPairDocumenter.cxx:374
 AtlTopPairDocumenter.cxx:375
 AtlTopPairDocumenter.cxx:376
 AtlTopPairDocumenter.cxx:377
 AtlTopPairDocumenter.cxx:378
 AtlTopPairDocumenter.cxx:379
 AtlTopPairDocumenter.cxx:380
 AtlTopPairDocumenter.cxx:381
 AtlTopPairDocumenter.cxx:382
 AtlTopPairDocumenter.cxx:383
 AtlTopPairDocumenter.cxx:384
 AtlTopPairDocumenter.cxx:385
 AtlTopPairDocumenter.cxx:386
 AtlTopPairDocumenter.cxx:387
 AtlTopPairDocumenter.cxx:388
 AtlTopPairDocumenter.cxx:389
 AtlTopPairDocumenter.cxx:390
 AtlTopPairDocumenter.cxx:391
 AtlTopPairDocumenter.cxx:392
 AtlTopPairDocumenter.cxx:393
 AtlTopPairDocumenter.cxx:394
 AtlTopPairDocumenter.cxx:395
 AtlTopPairDocumenter.cxx:396
 AtlTopPairDocumenter.cxx:397
 AtlTopPairDocumenter.cxx:398
 AtlTopPairDocumenter.cxx:399
 AtlTopPairDocumenter.cxx:400
 AtlTopPairDocumenter.cxx:401
 AtlTopPairDocumenter.cxx:402
 AtlTopPairDocumenter.cxx:403
 AtlTopPairDocumenter.cxx:404
 AtlTopPairDocumenter.cxx:405
 AtlTopPairDocumenter.cxx:406
 AtlTopPairDocumenter.cxx:407
 AtlTopPairDocumenter.cxx:408
 AtlTopPairDocumenter.cxx:409
 AtlTopPairDocumenter.cxx:410
 AtlTopPairDocumenter.cxx:411
 AtlTopPairDocumenter.cxx:412
 AtlTopPairDocumenter.cxx:413
 AtlTopPairDocumenter.cxx:414
 AtlTopPairDocumenter.cxx:415
 AtlTopPairDocumenter.cxx:416
 AtlTopPairDocumenter.cxx:417
 AtlTopPairDocumenter.cxx:418
 AtlTopPairDocumenter.cxx:419
 AtlTopPairDocumenter.cxx:420
 AtlTopPairDocumenter.cxx:421
 AtlTopPairDocumenter.cxx:422
 AtlTopPairDocumenter.cxx:423
 AtlTopPairDocumenter.cxx:424
 AtlTopPairDocumenter.cxx:425
 AtlTopPairDocumenter.cxx:426
 AtlTopPairDocumenter.cxx:427
 AtlTopPairDocumenter.cxx:428
 AtlTopPairDocumenter.cxx:429
 AtlTopPairDocumenter.cxx:430
 AtlTopPairDocumenter.cxx:431
 AtlTopPairDocumenter.cxx:432
 AtlTopPairDocumenter.cxx:433
 AtlTopPairDocumenter.cxx:434
 AtlTopPairDocumenter.cxx:435
 AtlTopPairDocumenter.cxx:436
 AtlTopPairDocumenter.cxx:437
 AtlTopPairDocumenter.cxx:438
 AtlTopPairDocumenter.cxx:439
 AtlTopPairDocumenter.cxx:440
 AtlTopPairDocumenter.cxx:441
 AtlTopPairDocumenter.cxx:442
 AtlTopPairDocumenter.cxx:443
 AtlTopPairDocumenter.cxx:444
 AtlTopPairDocumenter.cxx:445
 AtlTopPairDocumenter.cxx:446
 AtlTopPairDocumenter.cxx:447
 AtlTopPairDocumenter.cxx:448
 AtlTopPairDocumenter.cxx:449
 AtlTopPairDocumenter.cxx:450
 AtlTopPairDocumenter.cxx:451
 AtlTopPairDocumenter.cxx:452
 AtlTopPairDocumenter.cxx:453
 AtlTopPairDocumenter.cxx:454
 AtlTopPairDocumenter.cxx:455
 AtlTopPairDocumenter.cxx:456
 AtlTopPairDocumenter.cxx:457
 AtlTopPairDocumenter.cxx:458
 AtlTopPairDocumenter.cxx:459
 AtlTopPairDocumenter.cxx:460
 AtlTopPairDocumenter.cxx:461
 AtlTopPairDocumenter.cxx:462
 AtlTopPairDocumenter.cxx:463
 AtlTopPairDocumenter.cxx:464
 AtlTopPairDocumenter.cxx:465
 AtlTopPairDocumenter.cxx:466
 AtlTopPairDocumenter.cxx:467
 AtlTopPairDocumenter.cxx:468
 AtlTopPairDocumenter.cxx:469
 AtlTopPairDocumenter.cxx:470
 AtlTopPairDocumenter.cxx:471
 AtlTopPairDocumenter.cxx:472
 AtlTopPairDocumenter.cxx:473
 AtlTopPairDocumenter.cxx:474
 AtlTopPairDocumenter.cxx:475
 AtlTopPairDocumenter.cxx:476
 AtlTopPairDocumenter.cxx:477
 AtlTopPairDocumenter.cxx:478
 AtlTopPairDocumenter.cxx:479
 AtlTopPairDocumenter.cxx:480
 AtlTopPairDocumenter.cxx:481
 AtlTopPairDocumenter.cxx:482
 AtlTopPairDocumenter.cxx:483
 AtlTopPairDocumenter.cxx:484
 AtlTopPairDocumenter.cxx:485
 AtlTopPairDocumenter.cxx:486
 AtlTopPairDocumenter.cxx:487
 AtlTopPairDocumenter.cxx:488
 AtlTopPairDocumenter.cxx:489
 AtlTopPairDocumenter.cxx:490
 AtlTopPairDocumenter.cxx:491
 AtlTopPairDocumenter.cxx:492
 AtlTopPairDocumenter.cxx:493
 AtlTopPairDocumenter.cxx:494
 AtlTopPairDocumenter.cxx:495
 AtlTopPairDocumenter.cxx:496
 AtlTopPairDocumenter.cxx:497
 AtlTopPairDocumenter.cxx:498
 AtlTopPairDocumenter.cxx:499
 AtlTopPairDocumenter.cxx:500
 AtlTopPairDocumenter.cxx:501
 AtlTopPairDocumenter.cxx:502
 AtlTopPairDocumenter.cxx:503
 AtlTopPairDocumenter.cxx:504
 AtlTopPairDocumenter.cxx:505
 AtlTopPairDocumenter.cxx:506
 AtlTopPairDocumenter.cxx:507
 AtlTopPairDocumenter.cxx:508
 AtlTopPairDocumenter.cxx:509
 AtlTopPairDocumenter.cxx:510
 AtlTopPairDocumenter.cxx:511
 AtlTopPairDocumenter.cxx:512
 AtlTopPairDocumenter.cxx:513
 AtlTopPairDocumenter.cxx:514
 AtlTopPairDocumenter.cxx:515
 AtlTopPairDocumenter.cxx:516
 AtlTopPairDocumenter.cxx:517
 AtlTopPairDocumenter.cxx:518
 AtlTopPairDocumenter.cxx:519
 AtlTopPairDocumenter.cxx:520
 AtlTopPairDocumenter.cxx:521
 AtlTopPairDocumenter.cxx:522
 AtlTopPairDocumenter.cxx:523
 AtlTopPairDocumenter.cxx:524
 AtlTopPairDocumenter.cxx:525
 AtlTopPairDocumenter.cxx:526
 AtlTopPairDocumenter.cxx:527
 AtlTopPairDocumenter.cxx:528
 AtlTopPairDocumenter.cxx:529
 AtlTopPairDocumenter.cxx:530
 AtlTopPairDocumenter.cxx:531
 AtlTopPairDocumenter.cxx:532
 AtlTopPairDocumenter.cxx:533
 AtlTopPairDocumenter.cxx:534
 AtlTopPairDocumenter.cxx:535
 AtlTopPairDocumenter.cxx:536
 AtlTopPairDocumenter.cxx:537
 AtlTopPairDocumenter.cxx:538
 AtlTopPairDocumenter.cxx:539
 AtlTopPairDocumenter.cxx:540
 AtlTopPairDocumenter.cxx:541
 AtlTopPairDocumenter.cxx:542
 AtlTopPairDocumenter.cxx:543
 AtlTopPairDocumenter.cxx:544
 AtlTopPairDocumenter.cxx:545
 AtlTopPairDocumenter.cxx:546
 AtlTopPairDocumenter.cxx:547
 AtlTopPairDocumenter.cxx:548
 AtlTopPairDocumenter.cxx:549
 AtlTopPairDocumenter.cxx:550
 AtlTopPairDocumenter.cxx:551
 AtlTopPairDocumenter.cxx:552
 AtlTopPairDocumenter.cxx:553
 AtlTopPairDocumenter.cxx:554
 AtlTopPairDocumenter.cxx:555
 AtlTopPairDocumenter.cxx:556
 AtlTopPairDocumenter.cxx:557
 AtlTopPairDocumenter.cxx:558
 AtlTopPairDocumenter.cxx:559
 AtlTopPairDocumenter.cxx:560
 AtlTopPairDocumenter.cxx:561
 AtlTopPairDocumenter.cxx:562
 AtlTopPairDocumenter.cxx:563
 AtlTopPairDocumenter.cxx:564
 AtlTopPairDocumenter.cxx:565
 AtlTopPairDocumenter.cxx:566
 AtlTopPairDocumenter.cxx:567
 AtlTopPairDocumenter.cxx:568
 AtlTopPairDocumenter.cxx:569
 AtlTopPairDocumenter.cxx:570
 AtlTopPairDocumenter.cxx:571
 AtlTopPairDocumenter.cxx:572
 AtlTopPairDocumenter.cxx:573
 AtlTopPairDocumenter.cxx:574
 AtlTopPairDocumenter.cxx:575
 AtlTopPairDocumenter.cxx:576
 AtlTopPairDocumenter.cxx:577
 AtlTopPairDocumenter.cxx:578
 AtlTopPairDocumenter.cxx:579
 AtlTopPairDocumenter.cxx:580
 AtlTopPairDocumenter.cxx:581
 AtlTopPairDocumenter.cxx:582
 AtlTopPairDocumenter.cxx:583
 AtlTopPairDocumenter.cxx:584
 AtlTopPairDocumenter.cxx:585
 AtlTopPairDocumenter.cxx:586
 AtlTopPairDocumenter.cxx:587
 AtlTopPairDocumenter.cxx:588
 AtlTopPairDocumenter.cxx:589
 AtlTopPairDocumenter.cxx:590
 AtlTopPairDocumenter.cxx:591
 AtlTopPairDocumenter.cxx:592
 AtlTopPairDocumenter.cxx:593
 AtlTopPairDocumenter.cxx:594
 AtlTopPairDocumenter.cxx:595
 AtlTopPairDocumenter.cxx:596
 AtlTopPairDocumenter.cxx:597
 AtlTopPairDocumenter.cxx:598
 AtlTopPairDocumenter.cxx:599
 AtlTopPairDocumenter.cxx:600
 AtlTopPairDocumenter.cxx:601
 AtlTopPairDocumenter.cxx:602
 AtlTopPairDocumenter.cxx:603
 AtlTopPairDocumenter.cxx:604
 AtlTopPairDocumenter.cxx:605
 AtlTopPairDocumenter.cxx:606
 AtlTopPairDocumenter.cxx:607
 AtlTopPairDocumenter.cxx:608
 AtlTopPairDocumenter.cxx:609
 AtlTopPairDocumenter.cxx:610
 AtlTopPairDocumenter.cxx:611
 AtlTopPairDocumenter.cxx:612
 AtlTopPairDocumenter.cxx:613
 AtlTopPairDocumenter.cxx:614
 AtlTopPairDocumenter.cxx:615
 AtlTopPairDocumenter.cxx:616
 AtlTopPairDocumenter.cxx:617
 AtlTopPairDocumenter.cxx:618
 AtlTopPairDocumenter.cxx:619
 AtlTopPairDocumenter.cxx:620
 AtlTopPairDocumenter.cxx:621
 AtlTopPairDocumenter.cxx:622
 AtlTopPairDocumenter.cxx:623
 AtlTopPairDocumenter.cxx:624
 AtlTopPairDocumenter.cxx:625
 AtlTopPairDocumenter.cxx:626
 AtlTopPairDocumenter.cxx:627
 AtlTopPairDocumenter.cxx:628
 AtlTopPairDocumenter.cxx:629
 AtlTopPairDocumenter.cxx:630
 AtlTopPairDocumenter.cxx:631
 AtlTopPairDocumenter.cxx:632
 AtlTopPairDocumenter.cxx:633
 AtlTopPairDocumenter.cxx:634
 AtlTopPairDocumenter.cxx:635
 AtlTopPairDocumenter.cxx:636
 AtlTopPairDocumenter.cxx:637
 AtlTopPairDocumenter.cxx:638
 AtlTopPairDocumenter.cxx:639
 AtlTopPairDocumenter.cxx:640
 AtlTopPairDocumenter.cxx:641
 AtlTopPairDocumenter.cxx:642
 AtlTopPairDocumenter.cxx:643
 AtlTopPairDocumenter.cxx:644
 AtlTopPairDocumenter.cxx:645
 AtlTopPairDocumenter.cxx:646
 AtlTopPairDocumenter.cxx:647
 AtlTopPairDocumenter.cxx:648
 AtlTopPairDocumenter.cxx:649
 AtlTopPairDocumenter.cxx:650
 AtlTopPairDocumenter.cxx:651
 AtlTopPairDocumenter.cxx:652
 AtlTopPairDocumenter.cxx:653
 AtlTopPairDocumenter.cxx:654
 AtlTopPairDocumenter.cxx:655
 AtlTopPairDocumenter.cxx:656
 AtlTopPairDocumenter.cxx:657
 AtlTopPairDocumenter.cxx:658
 AtlTopPairDocumenter.cxx:659
 AtlTopPairDocumenter.cxx:660
 AtlTopPairDocumenter.cxx:661
 AtlTopPairDocumenter.cxx:662
 AtlTopPairDocumenter.cxx:663
 AtlTopPairDocumenter.cxx:664
 AtlTopPairDocumenter.cxx:665
 AtlTopPairDocumenter.cxx:666
 AtlTopPairDocumenter.cxx:667
 AtlTopPairDocumenter.cxx:668
 AtlTopPairDocumenter.cxx:669
 AtlTopPairDocumenter.cxx:670
 AtlTopPairDocumenter.cxx:671
 AtlTopPairDocumenter.cxx:672
 AtlTopPairDocumenter.cxx:673
 AtlTopPairDocumenter.cxx:674
 AtlTopPairDocumenter.cxx:675
 AtlTopPairDocumenter.cxx:676
 AtlTopPairDocumenter.cxx:677
 AtlTopPairDocumenter.cxx:678
 AtlTopPairDocumenter.cxx:679
 AtlTopPairDocumenter.cxx:680
 AtlTopPairDocumenter.cxx:681
 AtlTopPairDocumenter.cxx:682
 AtlTopPairDocumenter.cxx:683
 AtlTopPairDocumenter.cxx:684
 AtlTopPairDocumenter.cxx:685
 AtlTopPairDocumenter.cxx:686
 AtlTopPairDocumenter.cxx:687
 AtlTopPairDocumenter.cxx:688
 AtlTopPairDocumenter.cxx:689
 AtlTopPairDocumenter.cxx:690
 AtlTopPairDocumenter.cxx:691
 AtlTopPairDocumenter.cxx:692
 AtlTopPairDocumenter.cxx:693
 AtlTopPairDocumenter.cxx:694
 AtlTopPairDocumenter.cxx:695
 AtlTopPairDocumenter.cxx:696
 AtlTopPairDocumenter.cxx:697
 AtlTopPairDocumenter.cxx:698
 AtlTopPairDocumenter.cxx:699
 AtlTopPairDocumenter.cxx:700
 AtlTopPairDocumenter.cxx:701
 AtlTopPairDocumenter.cxx:702
 AtlTopPairDocumenter.cxx:703
 AtlTopPairDocumenter.cxx:704
 AtlTopPairDocumenter.cxx:705
 AtlTopPairDocumenter.cxx:706
 AtlTopPairDocumenter.cxx:707
 AtlTopPairDocumenter.cxx:708
 AtlTopPairDocumenter.cxx:709
 AtlTopPairDocumenter.cxx:710
 AtlTopPairDocumenter.cxx:711
 AtlTopPairDocumenter.cxx:712
 AtlTopPairDocumenter.cxx:713
 AtlTopPairDocumenter.cxx:714
 AtlTopPairDocumenter.cxx:715
 AtlTopPairDocumenter.cxx:716
 AtlTopPairDocumenter.cxx:717
 AtlTopPairDocumenter.cxx:718
 AtlTopPairDocumenter.cxx:719
 AtlTopPairDocumenter.cxx:720
 AtlTopPairDocumenter.cxx:721
 AtlTopPairDocumenter.cxx:722
 AtlTopPairDocumenter.cxx:723
 AtlTopPairDocumenter.cxx:724
 AtlTopPairDocumenter.cxx:725
 AtlTopPairDocumenter.cxx:726
 AtlTopPairDocumenter.cxx:727
 AtlTopPairDocumenter.cxx:728
 AtlTopPairDocumenter.cxx:729
 AtlTopPairDocumenter.cxx:730
 AtlTopPairDocumenter.cxx:731
 AtlTopPairDocumenter.cxx:732
 AtlTopPairDocumenter.cxx:733
 AtlTopPairDocumenter.cxx:734
 AtlTopPairDocumenter.cxx:735
 AtlTopPairDocumenter.cxx:736
 AtlTopPairDocumenter.cxx:737
 AtlTopPairDocumenter.cxx:738
 AtlTopPairDocumenter.cxx:739
 AtlTopPairDocumenter.cxx:740
 AtlTopPairDocumenter.cxx:741
 AtlTopPairDocumenter.cxx:742
 AtlTopPairDocumenter.cxx:743
 AtlTopPairDocumenter.cxx:744
 AtlTopPairDocumenter.cxx:745
 AtlTopPairDocumenter.cxx:746
 AtlTopPairDocumenter.cxx:747
 AtlTopPairDocumenter.cxx:748
 AtlTopPairDocumenter.cxx:749
 AtlTopPairDocumenter.cxx:750
 AtlTopPairDocumenter.cxx:751
 AtlTopPairDocumenter.cxx:752
 AtlTopPairDocumenter.cxx:753
 AtlTopPairDocumenter.cxx:754
 AtlTopPairDocumenter.cxx:755
 AtlTopPairDocumenter.cxx:756
 AtlTopPairDocumenter.cxx:757
 AtlTopPairDocumenter.cxx:758
 AtlTopPairDocumenter.cxx:759
 AtlTopPairDocumenter.cxx:760
 AtlTopPairDocumenter.cxx:761
 AtlTopPairDocumenter.cxx:762
 AtlTopPairDocumenter.cxx:763
 AtlTopPairDocumenter.cxx:764
 AtlTopPairDocumenter.cxx:765
 AtlTopPairDocumenter.cxx:766
 AtlTopPairDocumenter.cxx:767
 AtlTopPairDocumenter.cxx:768
 AtlTopPairDocumenter.cxx:769
 AtlTopPairDocumenter.cxx:770
 AtlTopPairDocumenter.cxx:771
 AtlTopPairDocumenter.cxx:772
 AtlTopPairDocumenter.cxx:773
 AtlTopPairDocumenter.cxx:774
 AtlTopPairDocumenter.cxx:775
 AtlTopPairDocumenter.cxx:776
 AtlTopPairDocumenter.cxx:777
 AtlTopPairDocumenter.cxx:778
 AtlTopPairDocumenter.cxx:779
 AtlTopPairDocumenter.cxx:780
 AtlTopPairDocumenter.cxx:781
 AtlTopPairDocumenter.cxx:782
 AtlTopPairDocumenter.cxx:783
 AtlTopPairDocumenter.cxx:784
 AtlTopPairDocumenter.cxx:785
 AtlTopPairDocumenter.cxx:786
 AtlTopPairDocumenter.cxx:787
 AtlTopPairDocumenter.cxx:788
 AtlTopPairDocumenter.cxx:789
 AtlTopPairDocumenter.cxx:790
 AtlTopPairDocumenter.cxx:791
 AtlTopPairDocumenter.cxx:792
 AtlTopPairDocumenter.cxx:793
 AtlTopPairDocumenter.cxx:794
 AtlTopPairDocumenter.cxx:795
 AtlTopPairDocumenter.cxx:796
 AtlTopPairDocumenter.cxx:797
 AtlTopPairDocumenter.cxx:798
 AtlTopPairDocumenter.cxx:799
 AtlTopPairDocumenter.cxx:800
 AtlTopPairDocumenter.cxx:801
 AtlTopPairDocumenter.cxx:802
 AtlTopPairDocumenter.cxx:803
 AtlTopPairDocumenter.cxx:804
 AtlTopPairDocumenter.cxx:805
 AtlTopPairDocumenter.cxx:806
 AtlTopPairDocumenter.cxx:807
 AtlTopPairDocumenter.cxx:808
 AtlTopPairDocumenter.cxx:809
 AtlTopPairDocumenter.cxx:810
 AtlTopPairDocumenter.cxx:811
 AtlTopPairDocumenter.cxx:812
 AtlTopPairDocumenter.cxx:813
 AtlTopPairDocumenter.cxx:814
 AtlTopPairDocumenter.cxx:815
 AtlTopPairDocumenter.cxx:816
 AtlTopPairDocumenter.cxx:817
 AtlTopPairDocumenter.cxx:818
 AtlTopPairDocumenter.cxx:819
 AtlTopPairDocumenter.cxx:820
 AtlTopPairDocumenter.cxx:821
 AtlTopPairDocumenter.cxx:822
 AtlTopPairDocumenter.cxx:823
 AtlTopPairDocumenter.cxx:824
 AtlTopPairDocumenter.cxx:825
 AtlTopPairDocumenter.cxx:826
 AtlTopPairDocumenter.cxx:827
 AtlTopPairDocumenter.cxx:828
 AtlTopPairDocumenter.cxx:829
 AtlTopPairDocumenter.cxx:830
 AtlTopPairDocumenter.cxx:831
 AtlTopPairDocumenter.cxx:832
 AtlTopPairDocumenter.cxx:833
 AtlTopPairDocumenter.cxx:834
 AtlTopPairDocumenter.cxx:835
 AtlTopPairDocumenter.cxx:836
 AtlTopPairDocumenter.cxx:837
 AtlTopPairDocumenter.cxx:838
 AtlTopPairDocumenter.cxx:839
 AtlTopPairDocumenter.cxx:840
 AtlTopPairDocumenter.cxx:841
 AtlTopPairDocumenter.cxx:842
 AtlTopPairDocumenter.cxx:843
 AtlTopPairDocumenter.cxx:844
 AtlTopPairDocumenter.cxx:845
 AtlTopPairDocumenter.cxx:846
 AtlTopPairDocumenter.cxx:847
 AtlTopPairDocumenter.cxx:848
 AtlTopPairDocumenter.cxx:849
 AtlTopPairDocumenter.cxx:850
 AtlTopPairDocumenter.cxx:851
 AtlTopPairDocumenter.cxx:852
 AtlTopPairDocumenter.cxx:853
 AtlTopPairDocumenter.cxx:854
 AtlTopPairDocumenter.cxx:855
 AtlTopPairDocumenter.cxx:856
 AtlTopPairDocumenter.cxx:857
 AtlTopPairDocumenter.cxx:858
 AtlTopPairDocumenter.cxx:859
 AtlTopPairDocumenter.cxx:860
 AtlTopPairDocumenter.cxx:861
 AtlTopPairDocumenter.cxx:862
 AtlTopPairDocumenter.cxx:863
 AtlTopPairDocumenter.cxx:864
 AtlTopPairDocumenter.cxx:865
 AtlTopPairDocumenter.cxx:866
 AtlTopPairDocumenter.cxx:867
 AtlTopPairDocumenter.cxx:868
 AtlTopPairDocumenter.cxx:869
 AtlTopPairDocumenter.cxx:870
 AtlTopPairDocumenter.cxx:871
 AtlTopPairDocumenter.cxx:872
 AtlTopPairDocumenter.cxx:873
 AtlTopPairDocumenter.cxx:874
 AtlTopPairDocumenter.cxx:875
 AtlTopPairDocumenter.cxx:876
 AtlTopPairDocumenter.cxx:877
 AtlTopPairDocumenter.cxx:878
 AtlTopPairDocumenter.cxx:879
 AtlTopPairDocumenter.cxx:880
 AtlTopPairDocumenter.cxx:881
 AtlTopPairDocumenter.cxx:882
 AtlTopPairDocumenter.cxx:883
 AtlTopPairDocumenter.cxx:884
 AtlTopPairDocumenter.cxx:885
 AtlTopPairDocumenter.cxx:886
 AtlTopPairDocumenter.cxx:887
 AtlTopPairDocumenter.cxx:888
 AtlTopPairDocumenter.cxx:889
 AtlTopPairDocumenter.cxx:890
 AtlTopPairDocumenter.cxx:891
 AtlTopPairDocumenter.cxx:892
 AtlTopPairDocumenter.cxx:893
 AtlTopPairDocumenter.cxx:894
 AtlTopPairDocumenter.cxx:895
 AtlTopPairDocumenter.cxx:896
 AtlTopPairDocumenter.cxx:897
 AtlTopPairDocumenter.cxx:898
 AtlTopPairDocumenter.cxx:899
 AtlTopPairDocumenter.cxx:900
 AtlTopPairDocumenter.cxx:901
 AtlTopPairDocumenter.cxx:902
 AtlTopPairDocumenter.cxx:903
 AtlTopPairDocumenter.cxx:904
 AtlTopPairDocumenter.cxx:905
 AtlTopPairDocumenter.cxx:906
 AtlTopPairDocumenter.cxx:907
 AtlTopPairDocumenter.cxx:908
 AtlTopPairDocumenter.cxx:909
 AtlTopPairDocumenter.cxx:910
 AtlTopPairDocumenter.cxx:911
 AtlTopPairDocumenter.cxx:912
 AtlTopPairDocumenter.cxx:913
 AtlTopPairDocumenter.cxx:914
 AtlTopPairDocumenter.cxx:915
 AtlTopPairDocumenter.cxx:916
 AtlTopPairDocumenter.cxx:917
 AtlTopPairDocumenter.cxx:918
 AtlTopPairDocumenter.cxx:919
 AtlTopPairDocumenter.cxx:920
 AtlTopPairDocumenter.cxx:921
 AtlTopPairDocumenter.cxx:922
 AtlTopPairDocumenter.cxx:923
 AtlTopPairDocumenter.cxx:924
 AtlTopPairDocumenter.cxx:925
 AtlTopPairDocumenter.cxx:926
 AtlTopPairDocumenter.cxx:927
 AtlTopPairDocumenter.cxx:928
 AtlTopPairDocumenter.cxx:929
 AtlTopPairDocumenter.cxx:930
 AtlTopPairDocumenter.cxx:931
 AtlTopPairDocumenter.cxx:932
 AtlTopPairDocumenter.cxx:933
 AtlTopPairDocumenter.cxx:934
 AtlTopPairDocumenter.cxx:935
 AtlTopPairDocumenter.cxx:936
 AtlTopPairDocumenter.cxx:937
 AtlTopPairDocumenter.cxx:938
 AtlTopPairDocumenter.cxx:939
 AtlTopPairDocumenter.cxx:940
 AtlTopPairDocumenter.cxx:941
 AtlTopPairDocumenter.cxx:942
 AtlTopPairDocumenter.cxx:943
 AtlTopPairDocumenter.cxx:944
 AtlTopPairDocumenter.cxx:945
 AtlTopPairDocumenter.cxx:946
 AtlTopPairDocumenter.cxx:947
 AtlTopPairDocumenter.cxx:948
 AtlTopPairDocumenter.cxx:949