VtxHists

class VtxHists

Inherits from HistogramManager

Public Functions

VtxHists(std::string name, std::string detailStr)
~VtxHists()
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::VertexContainer *vtxs, float eventWeight)
StatusCode execute(const xAOD::Vertex *vtx, float eventWeight)
StatusCode execute(const xAOD::VertexContainer *vtxs, const xAOD::TrackParticleContainer *trks, float eventWeight)
StatusCode execute(const xAOD::Vertex *vtx, const xAOD::TrackParticleContainer *trks, float eventWeight)
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;
}

virtual 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.

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.

void record(EL::Worker *wk)

record all histograms from HistogramManager::m_allHists to the worker

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

Protected Attributes

bool m_fillTrkDetails
bool m_fillIsoTrkDetails
bool m_fillDebugging
bool m_fillTrkPtDetails
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 Functions

float getIso(const xAOD::TrackParticle *inTrack, const xAOD::TrackParticleContainer *trks, float z0_cut = 2, float cone_size = 0.2)

Private Members

TH1F *h_type
TH1F *h_nTrks
TH1F *h_nTrks_l
TH1F *h_trk_Pt
TH1F *h_trk_Pt_l
TH1F *h_nTrks1GeV
TH1F *h_nTrks2GeV
TH1F *h_nTrks5GeV
TH1F *h_nTrks10GeV
TH1F *h_nTrks15GeV
TH1F *h_nTrks20GeV
TH1F *h_nTrks25GeV
TH1F *h_nTrks30GeV
TH1F *h_pt_miss_x
TH1F *h_pt_miss_x_l
TH1F *h_pt_miss_y
TH1F *h_pt_miss_y_l
TH1F *h_pt_miss
TH1F *h_pt_miss_l
unsigned int m_nLeadTrackPts
std::vector<TH1F *> h_trk_max_Pt
std::vector<TH1F *> h_trk_max_Pt_l
TH1F *h_trkIsoAll
TH1F *h_trkIso
TH1F *h_nIsoTrks
TH1F *h_nIsoTrks_l
TH1F *h_IsoTrk_Pt
TH1F *h_IsoTrk_Pt_l
TH1F *h_nIsoTrks1GeV
TH1F *h_nIsoTrks2GeV
TH1F *h_nIsoTrks5GeV
TH1F *h_nIsoTrks10GeV
TH1F *h_nIsoTrks15GeV
TH1F *h_nIsoTrks20GeV
TH1F *h_nIsoTrks25GeV
TH1F *h_nIsoTrks30GeV
TH1F *h_dZ0Before
TH1F *h_pt_miss_iso_x
TH1F *h_pt_miss_iso_x_l
TH1F *h_pt_miss_iso_y
TH1F *h_pt_miss_iso_y_l
TH1F *h_pt_miss_iso
TH1F *h_pt_miss_iso_l
unsigned int m_nLeadIsoTrackPts
std::vector<TH1F *> h_IsoTrk_max_Pt
std::vector<TH1F *> h_IsoTrk_max_Pt_l