TrackHists

class TrackHists

Inherits from HistogramManager

Public Functions

TrackHists(std::string name, std::string detailStr)
~TrackHists()
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::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)
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_fill2D
bool m_fillIPDetails
bool m_fillHitCounts
bool m_fillChi2Details
bool m_fillTPErrors
bool m_fillDebugging
bool m_fillVsLumi
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

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_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