JetHists

class JetHists

Inherits from IParticleHists

Public Functions

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

Initialize and book all histograms.

Note

This should call the overloaded functions HistogramManager::book() to create the histograms so that the user can call hists->record(wk()) to record all histograms to the EventLoop worker.

Example implementation:

StatusCode JetHists::initialize() {
  m_jetPt          = book(m_name, "jetPt",  "jet p_{T} [GeV]", 120, 0, 3000.);
  return StatusCode::SUCCESS;
}

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

Finalize anything that needs to be finalized.

Warning

This should rarely be used. There is not a good use case for this functionality but it needs to exist in the off-chance that a user comes along and needs it for their histogram class.

void record(EL::Worker *wk)
StatusCode execute(const xAOD::IParticleContainer *particles, float eventWeight, const xAOD::EventInfo *eventInfo = 0)
template <class T_PARTICLE, class T_INFOSWITCH>
StatusCode execute(const xAH::ParticleContainer<T_PARTICLE, T_INFOSWITCH> *particles, float eventWeight, const xAH::EventInfo *eventInfo = 0)
virtual StatusCode execute()

Execute by filling in the histograms.

Example implementation:

StatusCode JetHists::execute( const xAOD::JetContainer* jets, float eventWeight ){
  for(const auto& jet: *jets)
    m_jetPt->Fill( jet->pt()/1.e3, eventWeight );
  return StatusCode::SUCCESS;
}

TH1F *book(std::string name, std::string title, std::string xlabel, int xbins, double xlow, double xhigh)

record a histogram and call various functions

Note
This is an overloaded function. It will build the right histogram given the correct number of input arguments.
Parameters
  • name: name of histogram, access it in ROOT file like h_jetPt->Draw()
  • title: usually pointless,put a description of the histogram in here
  • xlabel: label to put on the x-axis
  • xbins: number of xbins to use
  • xlow: lower bound on xbins
  • xhigh: upper bound on xbins
  • xbinsArr: variable xbins, test math \((x_1,y_1)\) and \((x_2,y_2)\)
  • ylabel: label to put on the y-axis
  • ylow: lower bound on ybins
  • yhigh: upper bound on ybins
  • ybinsArr: variable ybins
  • zlabel: label to put on the z-axix
  • zlow: lower bound on zbins
  • zhigh: upper bound on zbins
  • zbinsArr: variable zbins

TH2F *book(std::string name, std::string title, std::string xlabel, int xbins, double xlow, double xhigh, std::string xyabel, int ybins, double ylow, double yhigh)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

TH3F *book(std::string name, std::string title, std::string xlabel, int xbins, double xlow, double xhigh, std::string ylabel, int ybins, double ylow, double yhigh, std::string zlabel, int zbins, double zlow, double zhigh)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

TH1F *book(std::string name, std::string title, std::string xlabel, int xbins, const Double_t *xbinsArr)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

TH2F *book(std::string name, std::string title, std::string xlabel, int xbins, const Double_t *xbinsArr, std::string ylabel, int ybins, double ylow, double yhigh)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

TH2F *book(std::string name, std::string title, std::string xyabel, int xbins, double xlow, double xhigh, std::string ylabel, int ybins, const Double_t *ybinsArr)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

TH2F *book(std::string name, std::string title, std::string xyabel, int xbins, const Double_t *xbinsArr, std::string ylabel, int ybins, const Double_t *ybinsArr)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

TH3F *book(std::string name, std::string title, std::string xlabel, int xbins, const Double_t *xbinsArr, std::string ylabel, int ybins, const Double_t *ybinsArr, std::string zlabel, int zbins, const Double_t *zbinsArr)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

TProfile *book(std::string name, std::string title, std::string xlabel, int xbins, double xlow, double xhigh, std::string ylabel, double ylow, double yhigh, std::string option = "")

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

MsgStream &msg() const

the standard message stream for this algorithm

MsgStream &msg(int level) const

allow ANA_MSG_XXXX macros to be used within algorithms for a given level

Public Members

bool m_debug

Protected Functions

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

Protected Attributes

HelperClasses::JetInfoSwitch *m_infoSwitch
std::string m_name

generically the main name assigned to all histograms

std::string m_detailStr

a detail level in the form of a string

std::vector<TH1 *> m_allHists

a container holding all generated histograms

MsgStream m_msg

hold the MsgStream object

Private Members

std::string m_titlePrefix
xAH::OnlineBeamSpotTool m_onlineBSTool
TH1F *m_jetTime
TH1F *m_LArQuality
TH1F *m_hecq
TH1F *m_negE
TH1F *m_avLArQF
TH1F *m_bchCorrCell
TH1F *m_N90Const
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
TH1F *m_actArea
TH1F *m_chf
TH1F *m_HECf
TH1F *m_EMf
TH1F *m_centroidR
TH1F *m_fracSampMax
TH1F *m_fracSampMaxIdx
TH1F *m_lowEtFrac
TH1F *m_jetGhostTruthPt
TH2F *m_jetPt_vs_resolution
TH2F *m_jetGhostTruthPt_vs_resolution
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_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
TH1F *m_JVC
TH1F *m_MV1
TH1F *m_MV2c00
TH1F *m_MV2c10
TH1F *m_MV2c20
TH1F *m_MV2c20_l
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
TProfile *m_frac_MV240_vs_actMu
TProfile *m_frac_MV250_vs_actMu
TProfile *m_frac_MV260_vs_actMu
TProfile *m_frac_MV270_vs_actMu
TProfile *m_frac_MV277_vs_actMu
TProfile *m_frac_MV285_vs_actMu
TProfile *m_frac_MV240_vs_lBlock
TProfile *m_frac_MV250_vs_lBlock
TProfile *m_frac_MV260_vs_lBlock
TProfile *m_frac_MV270_vs_lBlock
TProfile *m_frac_MV277_vs_lBlock
TProfile *m_frac_MV285_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
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
TH1F *m_nTrk
TracksInJetHists *m_tracksInJet
TH1F *m_jetPt_eta_0_1
TH1F *m_jetPt_eta_1_2
TH1F *m_jetPt_eta_2_2p5
TH1F *m_jetPt_eta_1_2p5
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
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
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
TH2F *m_etaPhi
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
TH2F *m_vtxClass_vs_jetPt