Program Listing for File JetHists.h

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

#ifndef xAODAnaHelpers_JetHists_H
#define xAODAnaHelpers_JetHists_H

#include "xAODAnaHelpers/IParticleHists.h"
#include "xAODAnaHelpers/HelperClasses.h"
#include "xAODAnaHelpers/TracksInJetHists.h"
#include <xAODJet/JetContainer.h>
#include "xAODAnaHelpers/Jet.h"
#include "xAODAnaHelpers/EventInfo.h"
#include "xAODAnaHelpers/OnlineBeamSpotTool.h"

ANA_MSG_HEADER(msgJetHists)

class JetHists : public IParticleHists
{
  public:


  JetHists(std::string name, std::string detailStr, const std::string& prefix="jet", const std::string& titleprefix="jet");
    virtual ~JetHists() ;

    virtual StatusCode initialize();
    virtual StatusCode execute( const xAOD::Jet* jet, float eventWeight, const xAOD::EventInfo* eventInfo = 0 );
    virtual StatusCode execute( const xAH::Jet* jet,  float eventWeight, const xAH::EventInfo* eventInfo = 0);
    virtual StatusCode finalize();

    using HistogramManager::book; // make other overloaded version of book() to show up in subclass
    using IParticleHists::execute; // overload
    virtual void record(EL::IWorker* wk);

  protected:

    virtual StatusCode execute( const xAOD::IParticle* particle, float eventWeight, const xAOD::EventInfo* eventInfo = 0 );
    virtual StatusCode execute( const xAH::Particle* particle,   float eventWeight, const xAH::EventInfo* eventInfo = 0 );

    // holds bools that control which histograms are filled
    HelperClasses::JetInfoSwitch* m_infoSwitch;

  private:

    std::string m_titlePrefix;
    xAH::OnlineBeamSpotTool      m_onlineBSTool;

    // clean
    TH1F* m_jetTime;
    TH1F* m_LArQuality;
    TH1F* m_hecq;
    TH1F* m_negE;
    TH1F* m_avLArQF;
    TH1F* m_bchCorrCell;
    TH1F* m_N90Const;
    //TH1F* m_LArQmean;
    //TH1F* m_LArBadHVEFrac;
    //TH1F* m_LArBadHVNCell;
    TH1F* m_ChargedFraction;
    //TH1F* m_OotFracClusters5;
    //TH1F* m_OotFracClusters10;
    //TH1F* m_LeadingClusterPt;
    //TH1F* m_LeadingClusterSecondLambda;
    //TH1F* m_LeadingClusterCenterLambda;
    //TH1F* m_LeadingClusterSecondR;
    //TH1F* m_clean_passLooseBad;
    //TH1F* m_clean_passLooseBadUgly;
    //TH1F* m_clean_passTightBad;
    //TH1F* m_clean_passTightBadUgly;


    //layer
    TH1F* m_PreSamplerB;
    TH1F* m_EMB1;
    TH1F* m_EMB2;
    TH1F* m_EMB3;
    TH1F* m_PreSamplerE;
    TH1F* m_EME1;
    TH1F* m_EME2;
    TH1F* m_EME3;
    TH1F* m_HEC0;
    TH1F* m_HEC1;
    TH1F* m_HEC2;
    TH1F* m_HEC3;
    TH1F* m_TileBar0;
    TH1F* m_TileBar1;
    TH1F* m_TileBar2;
    TH1F* m_TileGap1;
    TH1F* m_TileGap2;
    TH1F* m_TileGap3;
    TH1F* m_TileExt0;
    TH1F* m_TileExt1;
    TH1F* m_TileExt2;
    TH1F* m_FCAL0;
    TH1F* m_FCAL1;
    TH1F* m_FCAL2;

    // area
    TH1F* m_actArea;


    TH1F* m_chf;

    //energy
    TH1F* m_HECf;
    TH1F* m_EMf;
    TH1F* m_centroidR;
    TH1F* m_fracSampMax;
    TH1F* m_fracSampMaxIdx;
    TH1F* m_lowEtFrac;
    //TH1F* m_GhostMuonSegmentCount;
    //TH1F* m_Width;


    // resolution
    TH1F* m_jetGhostTruthPt;
    TH2F* m_jetPt_vs_resolution;
    TH2F* m_jetGhostTruthPt_vs_resolution;

    // truth jets
    TH1F* m_truthLabelID;
    TH1F* m_hadronConeExclTruthLabelID;
    TH1F* m_partonTruthLabelID;
    TH1F* m_truthCount;
    TH1F* m_truthPt;
    TH1F* m_truthPt_m;
    TH1F* m_truthPt_l;
    TH1F* m_truthEta;
    TH1F* m_truthPhi;
    TH1F* m_truthDr_B;
    TH1F* m_truthDr_C;
    TH1F* m_truthDr_T;
    //TH1F *m_GhostTruthAssociationFraction;

    // Detailed truth jet plots
    TH1F* m_truthCount_BhadFinal;
    TH1F* m_truthCount_BhadInit ;
    TH1F* m_truthCount_BQFinal  ;
    TH1F* m_truthPt_BhadFinal;
    TH1F* m_truthPt_BhadInit ;
    TH1F* m_truthPt_BQFinal  ;

    TH1F* m_truthCount_ChadFinal;
    TH1F* m_truthCount_ChadInit ;
    TH1F* m_truthCount_CQFinal  ;
    TH1F* m_truthPt_ChadFinal;
    TH1F* m_truthPt_ChadInit ;
    TH1F* m_truthPt_CQFinal  ;


    TH1F* m_truthCount_TausFinal;
    TH1F* m_truthPt_TausFinal   ;

    // JVC
    TH1F* m_JVC;

    // Flavor Tag
    TH1F* m_COMB   ;
    TH1F* m_SV0             ;
    TH1F* m_JetFitter       ;

    TProfile* m_vtxClass_vs_lBlock;
    TProfile* m_vtxEff10_vs_lBlock;
    TProfile* m_vtxEff1_vs_lBlock;
    TProfile* m_vtxEff10_raw_vs_lBlock;
    TProfile* m_vtxEff1_raw_vs_lBlock;
    TProfile* m_vtxEff10_noDummy_vs_lBlock;
    TProfile* m_vtxEff1_noDummy_vs_lBlock;

    TH1F* m_trkSum_ntrk     ;
    TH1F* m_trkSum_sPt      ;
    TH1F* m_trkSum_vPt      ;
    TH1F* m_trkSum_vAbsEta  ;
    TH1F* m_width           ;
    TH1F* m_n_trk_sigd0cut  ;
    TH1F* m_trk3_d0sig      ;
    TH1F* m_trk3_z0sig      ;
    TH1F* m_sv_scaled_efc   ;
    TH1F* m_jf_scaled_efc   ;

    TH1F* m_jf_nVTX           ;
    TH1F* m_jf_nSingleTracks  ;
    TH1F* m_jf_nTracksAtVtx   ;
    TH1F* m_jf_mass           ;
    TH1F* m_jf_energyFraction ;
    TH1F* m_jf_significance3d ;
    TH1F* m_jf_deltaeta       ;
    TH1F* m_jf_deltaeta_l     ;
    TH1F* m_jf_deltaphi       ;
    TH1F* m_jf_deltaphi_l     ;
    TH1F* m_jf_deltaR         ;
    TH1F* m_jf_N2Tpar         ;
    TH1F* m_jf_pb             ;
    TH1F* m_jf_pc             ;
    TH1F* m_jf_pu             ;
    TH1F* m_jf_mass_unco      ;
    TH1F* m_jf_dR_flight      ;

    TH1F* m_sv0_NGTinSvx ;
    TH1F* m_sv0_N2Tpair  ;
    TH1F* m_sv0_massvx   ;
    TH1F* m_sv0_efracsvx ;
    TH1F* m_sv0_normdist ;

    TH1F* m_SV1_pu       ;
    TH1F* m_SV1_pb       ;
    TH1F* m_SV1_pc       ;
    TH1F* m_SV1          ;
    TH1F* m_SV1_c        ;
    TH1F* m_SV1_cu       ;
    TH1F* m_sv1_NGTinSvx ;
    TH1F* m_sv1_N2Tpair  ;
    TH1F* m_sv1_massvx   ;
    TH1F* m_sv1_efracsvx ;
    TH1F* m_sv1_normdist ;
    TH1F* m_SV1_Lxy        ;
    TH1F* m_SV1_sig3d        ;
    TH1F* m_SV1_L3d        ;
    TH1F* m_SV1_distmatlay ;
    TH1F* m_SV1_dR         ;

    TH1F* m_nIP2DTracks              ;
    TH1F* m_IP2D_gradeOfTracks       ;
    TH1F* m_IP2D_flagFromV0ofTracks  ;
    TH1F* m_IP2D_valD0wrtPVofTracks  ;
    TH1F* m_IP2D_sigD0wrtPVofTracks  ;
    TH1F* m_IP2D_sigD0wrtPVofTracks_l;
    TH1F* m_IP2D_errD0wrtPVofTracks  ;
    TH1F* m_IP2D_weightBofTracks     ;
    TH1F* m_IP2D_weightCofTracks     ;
    TH1F* m_IP2D_weightUofTracks     ;
    TH1F* m_IP2D_pu                  ;
    TH1F* m_IP2D_pb                  ;
    TH1F* m_IP2D_pc                  ;
    TH1F* m_IP2D                     ;
    TH1F* m_IP2D_c                   ;
    TH1F* m_IP2D_cu                  ;

    TH1F* m_nIP3DTracks              ;
    TH1F* m_IP3D_gradeOfTracks       ;
    TH1F* m_IP3D_flagFromV0ofTracks  ;
    TH1F* m_IP3D_valD0wrtPVofTracks  ;
    TH1F* m_IP3D_sigD0wrtPVofTracks  ;
    TH1F* m_IP3D_sigD0wrtPVofTracks_l;
    TH1F* m_IP3D_errD0wrtPVofTracks  ;
    TH1F* m_IP3D_valZ0wrtPVofTracks  ;
    TH1F* m_IP3D_sigZ0wrtPVofTracks  ;
    TH1F* m_IP3D_sigZ0wrtPVofTracks_l;
    TH1F* m_IP3D_errZ0wrtPVofTracks  ;
    TH1F* m_IP3D_weightBofTracks     ;
    TH1F* m_IP3D_weightCofTracks     ;
    TH1F* m_IP3D_weightUofTracks     ;
    TH1F* m_IP3D_pu                  ;
    TH1F* m_IP3D_pb                  ;
    TH1F* m_IP3D_pc                  ;
    TH1F* m_IP3D                     ;
    TH1F* m_IP3D_c                   ;
    TH1F* m_IP3D_cu                  ;

    // substructure
    TH1F* m_tau1;
    TH1F* m_tau2;
    TH1F* m_tau3;
    TH1F* m_tau21;
    TH1F* m_tau32;
    TH1F* m_tau1_wta;
    TH1F* m_tau2_wta;
    TH1F* m_tau3_wta;
    TH1F* m_tau21_wta;
    TH1F* m_tau32_wta;
    TH1F* m_numConstituents;

    // Tracks in Jets
    TH1F* m_nTrk;
    TracksInJetHists* m_tracksInJet;

    // By eta
    TH1F* m_jetPt_eta_0_1;
    TH1F* m_jetPt_eta_1_2;
    TH1F* m_jetPt_eta_2_2p5;
    TH1F* m_jetPt_eta_1_2p5;

    // bs information
    TH1F* m_bs_online_vx;
    TH1F* m_bs_online_vy;
    TH1F* m_bs_online_vz;
    TH1F* m_bs_online_vz_l;

    TH1F* m_eta_bs_online_vz_0_1  ;
    TH1F* m_eta_bs_online_vz_1_1p5;
    TH1F* m_eta_bs_online_vz_1p5_2;

    // HLT Vertex Comp
    TH1F*     m_vtx_offline_x0;
    TH1F*     m_vtx_offline_y0;
    TH1F*     m_vtx_offline_z0;
    TH1F*     m_vtx_offline_z0_s;
    TH1F*     m_vtx_online_x0;
    TH1F*     m_vtx_online_y0;
    TH1F*     m_vtx_online_z0;
    TH1F*     m_vtx_online_z0_s;
    TH1F*     m_vtx_online_x0_raw;
    TH1F*     m_vtx_online_y0_raw;
    TH1F*     m_vtx_online_z0_raw;

    TH1F* m_vtxOnlineValid;
    TH1F* m_vtxOfflineValid;
    TH1F* m_vtxDiffz0;
    TH1F* m_vtxDiffz0_m;
    TH1F* m_vtxDiffz0_s;

    TH1F* m_vtxBkgDiffz0;
    TH1F* m_vtxBkgDiffz0_m;
    TH1F* m_vtxBkgDiffz0_s;

    TH1F* m_vtxDiffx0;
    TH1F* m_vtxDiffx0_l;

    TH1F* m_vtxDiffy0;
    TH1F* m_vtxDiffy0_l;

    TH1F* m_vtxClass;
    TProfile*   m_vtxDiffx0_vs_lBlock    ;
    TProfile*   m_vtxDiffy0_vs_lBlock    ;
    TProfile*   m_vtxDiffz0_vs_lBlock    ;

    TH2F* m_lumiB_runN;
    TH2F* m_lumiB_runN_vtxClass     ;
    TH2F* m_lumiB_runN_vtxDiffz0    ;
    TH2F* m_lumiB_runN_lumiB        ;
    TH2F* m_lumiB_runN_bs_online_vz ;
    TH2F* m_lumiB_runN_bs_den       ;

    TProfile*   m_vtx_online_x0_vs_vtx_online_z0;
    TProfile*   m_vtx_online_y0_vs_vtx_online_z0;

    // trackPV
    //TH1F* m_NumTrkPt1000PV;
    //TH1F* m_SumPtTrkPt1000PV;
    //TH1F* m_TrackWidthPt1000PV;
    //TH1F* m_NumTrkPt500PV;
    //TH1F* m_SumPtTrkPt500PV;
    //TH1F* m_TrackWidthPt500PV;
    //TH1F* m_JVFPV;

    // trackAll or trackPV
    //TH1F* m_Jvt;
    //TH1F* m_JvtJvfcorr;
    //TH1F* m_JvtRpt;


    // charge
    //TH1F *m_charge;

    TH1F* m_actualMu;                   // !
    TH1F* m_avgMu;
    TH1F* m_jetPt_avgMu_00_15;
    TH1F* m_jetPt_avgMu_15_25;
    TH1F* m_jetPt_avgMu_25;
    TH2F* m_avgMu_vs_jetPt;

    // Eta-phi map
    TH2F* m_etaPhi;

    // Some other 2D plots
    TH2F* m_vtxDiffz0_vs_vtx_offline_z0;
    TH2F* m_vtxDiffz0_s_vs_vtx_offline_z0;
    TH2F* m_vtxDiffz0_s_vs_vtxDiffx0;
    TH2F* m_vtxDiffz0_s_vs_vtxDiffy0;

    // TProfile in prep for showing it is flat
    TH2F*  m_vtxClass_vs_jetPt;

};

#endif