Program Listing for File TrackHists.h

Return to documentation for file (xAODAnaHelpers/TrackHists.h)

#ifndef xAODAnaHelpers_TrackHists_H
#define xAODAnaHelpers_TrackHists_H

#include "xAODAnaHelpers/HistogramManager.h"
#include <xAODTracking/TrackParticleContainer.h>
#include <xAODTracking/Vertex.h>
#include <xAODEventInfo/EventInfo.h>

ANA_MSG_HEADER(msgTrackHists)

class TrackHists : public HistogramManager
{
  public:
    TrackHists(std::string name, std::string detailStr );
    ~TrackHists();

    StatusCode initialize();
    StatusCode execute( const xAOD::TrackParticleContainer* tracks,  const xAOD::Vertex *pvx, float eventWeight,  const xAOD::EventInfo* eventInfo = 0 );
    StatusCode execute( const xAOD::TrackParticle* track,            const xAOD::Vertex *pvx, float eventWeight,  const xAOD::EventInfo* eventInfo = 0);
    using HistogramManager::book; // make other overloaded versions of book() to show up in subclass
    using HistogramManager::execute; // overload

  protected:
    // bools to control which histograms are filled
    bool m_fill2D;
    bool m_fillIPDetails;
    bool m_fillHitCounts;
    bool m_fillChi2Details;
    bool m_fillTPErrors;
    bool m_fillDebugging;
    bool m_fillVsLumi;

  private:
    // Histograms
    TH1F* m_trk_n;
    TH1F* m_trk_n_l;
    TH1F* m_trk_Pt;
    TH1F* m_trk_Pt_l;
    TH1F* m_trk_P;
    TH1F* m_trk_P_l;
    TH1F* m_trk_Eta;
    TH1F* m_trk_Phi;
    TH1F* m_trk_d0;
    TH1F* m_trk_d0_s;
    TH1F* m_trk_d0_ss;
    TH1F* m_trk_z0;
    TH1F* m_trk_z0_s;
    TH1F* m_trk_chi2Prob;
    TH1F* m_trk_charge;
    TH1F* m_trk_d0_l;
    TH1F* m_trk_d0Err;
    TH1F* m_trk_d0Sig;
    TH1F* m_trk_z0Err;
    TH1F* m_trk_z0_l;
    TH1F* m_trk_z0Sig;
    TH1F* m_trk_z0sinT;
    TH1F* m_trk_z0sinT_l;
    TH1F* m_trk_z0SigsinT;
    TH1F* m_trk_chi2Prob_l;
    TH1F* m_trk_chi2Prob_s;
    TH1F* m_trk_chi2Prob_ss;
    TH1F* m_trk_chi2ndof;
    TH1F* m_trk_chi2ndof_l;
    TH1F* m_trk_nSi;
    TH1F* m_trk_nSiAndDead;
    TH1F* m_trk_nSiDead;
    TH1F* m_trk_nSCT;
    TH1F* m_trk_nPix;
    TH1F* m_trk_nPixHoles;
    TH1F* m_trk_nPixDead;
    TH1F* m_trk_nTRT;
    // TH1F* m_trk_nTRTHoles; //!
    // TH1F* m_trk_nTRTDead; //!
    TH1F* m_trk_nBL;
    TH1F* m_trk_phiErr;
    TH1F* m_trk_thetaErr;
    TH1F* m_trk_qOpErr;
    TH1F* m_trk_mc_prob;
    TH1F* m_trk_mc_barcode;
    TH1F* m_trk_mc_barcode_s;
    TH1F* m_trk_eta_vl;
    TH1F* m_trk_z0_vl;
    TH1F* m_trk_z0_m;
    TH1F* m_trk_z0_raw_m;
    TH1F* m_trk_vz;
    TH1F* m_trk_z0_atlas_m;
    TH1F* m_trk_d0_vl;
    TH1F* m_trk_pt_ss;
    TH1F* m_trk_phiManyBins;

    TH1F*     m_lBlock;
    TProfile* m_trk_z0_vs_lBlock;
    TProfile* m_trk_z0_raw_vs_lBlock;
    TProfile* m_trk_z0_atlas_vs_lBlock;
    TProfile* m_trk_vz_vs_lBlock;
    TProfile* m_pvz_vs_lBlock;
    TProfile* m_pv_valid_vs_lBlock;

    TProfile* m_bsX_vs_lBlock;
    TProfile* m_bsY_vs_lBlock;
    TProfile* m_bsZ_vs_lBlock;
    TH1F*    m_bsX;
    TH1F*    m_bsY;
    TH1F*    m_bsZ;

    TH2F* m_trk_Eta_vs_trk_P;
    TH2F* m_trk_Eta_vs_trk_P_l;
    TH2F* m_trk_Phi_vs_trk_P;
    TH2F* m_trk_Phi_vs_trk_P_l;
    TH2F* m_trk_Eta_vs_trk_Phi;
    TH2F* m_trk_d0_vs_trk_P;
    TH2F* m_trk_d0_vs_trk_P_l;
    TH2F* m_trk_z0_vs_trk_P;
    TH2F* m_trk_z0_vs_trk_P_l;
    TH2F* m_trk_z0sinT_vs_trk_P;
    TH2F* m_trk_z0sinT_vs_trk_P_l;
};


#endif