|
ATLAS Offline Software
|
Tool to book and fill inner detector histograms for physics validation.
More...
#include <InDetPhysValMonitoringTool.h>
|
enum | Interval_t {
file = 0,
eventsBlock,
lumiBlock,
lowStat,
medStat,
higStat,
run,
fill,
all
} |
| An enumeration describing how detailed a particular monitoring object is. More...
|
|
enum | MgmtAttr_t { ATTRIB_MANAGED = 0,
ATTRIB_UNMANAGED = 1,
ATTRIB_X_VS_LB = 2
} |
| An enumeration describing how the class handles the histogram. More...
|
|
|
| InDetPhysValMonitoringTool (const std::string &type, const std::string &name, const IInterface *parent) |
| Constructor with parameters. More...
|
|
virtual | ~InDetPhysValMonitoringTool () |
| Destructor. More...
|
|
virtual StreamNameFcn * | streamNameFunction () |
| Returns the function object that converts logical paramters into a physical stream name. More...
|
|
virtual StatusCode | bookHists () |
| Calls bookHists( true, true, true ) and initializes lumiBlock and run numbers. More...
|
|
virtual StatusCode | fillHists () |
| Calls fillHists( bool, bool, bool ); if an eventBlock,lumiBlock, or run has turned over, calls procHists( bool, bool, bool ) and bookHists( bool, bool, bool ). More...
|
|
virtual StatusCode | finalHists () |
| Calls procHists( true, true, true ). More...
|
|
virtual StatusCode | convertLWHists () |
| Deal with the LW histograms. More...
|
|
virtual StatusCode | bookHistogramsRecurrent () |
| An inheriting class should either override this function, bookHists() or bookHistograms(). More...
|
|
virtual void | setMonManager (AthenaMonManager *manager) |
| Takes a pointer to a managing object to get information from it when needed. More...
|
|
virtual StatusCode | regHist (TH1 *h, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="") |
| Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram. More...
|
|
virtual StatusCode | regHist (TH1 *h, const MonGroup &group) |
| Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram. More...
|
|
virtual StatusCode | regHist (LWHist *h, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="") |
| Support for lightweight histograms: More...
|
|
virtual StatusCode | regHist (LWHist *h, const MonGroup &group) |
|
virtual StatusCode | getHist (TH1 *&h, const std::string &hName, const std::string &system, Interval_t interval) |
| Returns a TH1 via the pointer passed as the first argument. More...
|
|
virtual StatusCode | getHist (TH1 *&h, const std::string &hName, const MonGroup &group) |
| Returns a TH1 via the pointer passed as the first argument. More...
|
|
virtual StatusCode | getHist (TH2 *&h, const std::string &hName, const std::string &system, Interval_t interval) |
| Returns a TH2 via the pointer passed as the first argument. More...
|
|
virtual StatusCode | getHist (TH2 *&h, const std::string &hName, const MonGroup &group) |
| Returns a TH2 via the pointer passed as the first argument. More...
|
|
virtual StatusCode | getHist (LWHist *&h, const std::string &hName, const std::string &system, Interval_t interval) |
|
virtual StatusCode | getHist (LWHist *&h, const std::string &hName, const MonGroup &group) |
|
virtual StatusCode | regEfficiency (TEfficiency *e, const MonGroup &group) |
| Registers a TEfficiency to be included in the output stream using logical parameters that describe the plot. More...
|
|
virtual StatusCode | regGraph (TGraph *g, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="") |
| Registers a TGraph to be included in the output stream using logical parameters that describe the graph. More...
|
|
virtual StatusCode | regGraph (TGraph *g, const MonGroup &group) |
| Registers a TGraph to be included in the output stream using logical parameters that describe the graph. More...
|
|
virtual StatusCode | regTree (TTree *t, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="") |
| Registers a TTree to be included in the output stream using logical parameters that describe it. More...
|
|
virtual StatusCode | regTree (TTree *t, const MonGroup &group) |
| Registers a TTree to be included in the output stream using logical parameters that describe it. More...
|
|
virtual StatusCode | deregHist (LWHist *h) |
|
virtual StatusCode | deregHist (TH1 *h) |
| De-registers a TH1 from the THistSvc, but does NOT delete the object. More...
|
|
virtual StatusCode | writeAndDelete (TH1 *h, const MonGroup &group) |
| Write out histogram and delete it. More...
|
|
virtual StatusCode | deregGraph (TGraph *g) |
| De-registers a TGraph from the THistSvc, but does NOT delete the object. More...
|
|
virtual StatusCode | deregObject (const std::string &objName, const std::string &system, Interval_t interval) |
| De-registers a TObject from the THistSvc, but does NOT delete the object. More...
|
|
virtual StatusCode | deregObject (const std::string &objName, const MonGroup &group) |
| De-registers a TObject from the THistSvc, but does NOT delete the object. More...
|
|
virtual StatusCode | setupOutputStreams (std::vector< std::string > Mapping=std::vector< std::string >()) |
| This implementation does nothing—streams in this class should be managed by the AthenaMonManager. More...
|
|
virtual StatusCode | runStat () |
| This implementation does nothing; equivalent functionality may be provided by procHists( true, true, true ). More...
|
|
virtual StatusCode | checkHists (bool calledFromFinalize) |
| This implementation does nothing; equivalent functionality may be provided by procHists(...) with appropriate arguments. More...
|
|
virtual bool | preSelector () |
|
virtual float | lbAverageInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Average mu, i.e. More...
|
|
virtual float | lbInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Instantaneous number of interactions, i.e. More...
|
|
virtual float | lbAverageLuminosity (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1) More...
|
|
virtual float | lbLuminosityPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Instantaneous luminosity. More...
|
|
virtual double | lbDuration (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Luminosity block time (in seconds) More...
|
|
virtual float | lbAverageLivefraction (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Average luminosity livefraction. More...
|
|
virtual float | livefractionPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Livefraction per bunch crossing ID. More...
|
|
virtual double | lbLumiWeight (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Average Integrated Luminosity Live Fraction. More...
|
|
| MMTB_DEPRECATED (newLowStatInterval) |
|
| MMTB_DEPRECATED (newMedStatInterval) |
|
| MMTB_DEPRECATED (newHigStatInterval) |
|
| MMTB_DEPRECATED (newLowStat) |
|
| MMTB_DEPRECATED (newLumiBlock) |
|
| MMTB_DEPRECATED (newRun) |
|
| MMTB_DEPRECATED (newEventsBlock) |
|
| MMTB_DEPRECATED (endOfEventsBlock) |
|
| MMTB_DEPRECATED (endOfLowStat) |
|
| MMTB_DEPRECATED (endOfLumiBlock) |
|
| MMTB_DEPRECATED (endOfRun) |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
StatusCode | regManagedHistograms (std::vector< MgmtParams< TH1 > > &templateHistograms) |
|
StatusCode | regManagedGraphs (std::vector< MgmtParams< TGraph > > &templateGraphs) |
|
StatusCode | regManagedTrees (std::vector< MgmtParams< TTree > > &templateTrees) |
|
StatusCode | regManagedLWHistograms (std::vector< MgmtParams< LWHist > > &templateLWHistograms) |
|
StatusCode | regManagedEfficiencies (std::vector< MgmtParams< TEfficiency > > &templateEfficiencies) |
|
StatusCode | parseList (const std::string &, std::vector< std::string > &) |
|
void | updateTriggersForGroups (std::vector< std::string > &) |
|
StatusCode | registerMetadata (const std::string &streamName, const std::string &hName, const MonGroup &group) |
|
StatusCode | THistSvc_deReg_fixTGraph (TFile *file, TGraph *theGraph, std::string &directoryName) |
| Fixes THistSvc->deReg(obj) when obj is TGraph instance. More...
|
|
unsigned int | get_nEvents () const |
|
long | get_procNEventsProp () const |
|
virtual bool | trigChainsArePassed (std::vector< std::string > &) |
|
virtual StreamNameFcn * | getNewStreamNameFcn () const |
|
bool | newLowStatIntervalFlag () const |
| Flag functions allowing clients to determine when to book new and process old histograms; values are updated by fillHists() based on counting lumiBlocks, and are correctly set when fillHistograms(), bookHistograms() and procHistograms() are called. More...
|
|
bool | newMedStatIntervalFlag () const |
|
bool | newHigStatIntervalFlag () const |
|
bool | newLowStatFlag () const |
|
bool | newLumiBlockFlag () const |
|
bool | newRunFlag () const |
|
bool | newEventsBlockFlag () const |
|
bool | endOfEventsBlockFlag () const |
|
bool | endOfLowStatFlag () const |
|
bool | endOfLumiBlockFlag () const |
|
bool | endOfRunFlag () const |
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
|
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. More...
|
|
|
std::map< Interval_t, std::vector< MgmtParams< TH1 > > > | m_templateHistograms |
|
std::map< Interval_t, std::vector< MgmtParams< TGraph > > > | m_templateGraphs |
|
std::map< Interval_t, std::vector< MgmtParams< TTree > > > | m_templateTrees |
|
std::map< Interval_t, std::vector< MgmtParams< LWHist > > > | m_templateLWHistograms |
|
std::map< Interval_t, std::vector< MgmtParams< TEfficiency > > > | m_templateEfficiencies |
|
std::vector< std::string > | m_vTrigChainNames |
|
std::vector< std::string > | m_vTrigGroupNames |
|
MDMap_t | m_metadataMap |
|
std::set< LWHist * > | m_lwhists |
|
AthenaMonManager * | m_manager |
|
std::string | m_managerNameProp |
|
std::string | m_fileKey |
|
std::string | m_dataTypeStr |
|
std::string | m_environmentStr |
|
unsigned int | m_detailLevel |
|
AthenaMonManager::DataType_t | m_dataType |
|
AthenaMonManager::Environment_t | m_environment |
|
StreamNameFcn * | m_streamNameFcn |
|
ServiceHandle< ITHistSvc > | m_THistSvc |
|
PublicToolHandle< Trig::ITrigDecisionTool > | m_trigDecTool {this, "TrigDecisionTool",""} |
|
PublicToolHandle< ITriggerTranslatorTool > | m_trigTranslator {this,"TriggerTranslatorTool",""} |
|
ToolHandleArray< IDQFilterTool > | m_DQFilterTools {this,"FilterTools",{}} |
|
long | m_procNEventsProp |
|
std::string | m_path |
|
long | m_preScaleProp |
|
std::string | m_triggerChainProp |
|
std::string | m_triggerGroupProp |
|
bool | m_useTrigger |
|
unsigned int | m_lastLumiBlock |
|
unsigned int | m_lastRun |
|
int | m_lastLowStatInterval |
|
int | m_lastMedStatInterval |
|
int | m_lastHigStatInterval |
|
unsigned int | m_nEvents |
|
unsigned int | m_nEventsIgnoreTrigger |
|
unsigned int | m_nLumiBlocks |
|
bool | m_haveClearedLastEventBlock |
|
|
}
|
SG::AuxElement::Accessor< bool > | m_acc_hasTruthFilled {"hasTruthFilled"} |
|
SG::AuxElement::Decorator< bool > | m_dec_hasTruthFilled {"hasTruthFilled"} |
|
SG::AuxElement::Decorator< bool > | m_dec_passedTruthSelection {"passedTruthSelection"} |
|
SG::AuxElement::Decorator< bool > | m_dec_passedTrackSelection {"passedTrackSelection"} |
|
SG::AuxElement::Accessor< bool > | m_acc_selectedByPileupSwitch {"selectedByPileupSwitch"} |
|
SG::AuxElement::Decorator< bool > | m_dec_selectedByPileupSwitch {"selectedByPileupSwitch"} |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_trkParticleName {this,"TrackParticleContainerName", "InDetTrackParticles"} |
| TrackParticle container's name. More...
|
|
SG::ReadHandleKey< xAOD::TruthParticleContainer > | m_truthParticleName {this, "TruthParticleContainerName", "TruthParticles", ""} |
| TruthParticle container's name. More...
|
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_vertexContainerName {this,"VertexContainerName", "PrimaryVertices", ""} |
| Primary vertex container's name. More...
|
|
SG::ReadHandleKey< xAOD::TruthVertexContainer > | m_truthVertexContainerName {this,"TruthVertexContainerName", "TruthVertices",""} |
| Truth vertex container's name. More...
|
|
SG::ReadHandleKey< xAOD::EventInfo > | m_eventInfoContainerName {this,"EventInfoContainerName", "EventInfo", ""} |
| EventInfo container name. More...
|
|
SG::ReadHandleKey< xAOD::TruthEventContainer > | m_truthEventName {this, "TruthEvents", "TruthEvents","Name of the truth events container probably either TruthEvent or TruthEvents"} |
|
SG::ReadHandleKey< xAOD::TruthPileupEventContainer > | m_truthPileUpEventName {this, "TruthPileupEvents", "TruthPileupEvents","Name of the truth pileup events container probably TruthPileupEvent(s)"} |
|
SG::ReadHandleKey< xAOD::JetContainer > | m_jetContainerName {this, "JetContainerName", "AntiKt4LCTopoJets" , ""} |
|
std::vector< SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > > | m_floatTrkDecor |
|
std::vector< SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > > | m_intTrkDecor |
|
std::vector< SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > > | m_floatTruthDecor |
|
std::vector< SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > > | m_intTruthDecor |
|
std::vector< SG::ReadDecorHandleKey< xAOD::JetContainer > > | m_intJetDecor |
|
std::unique_ptr< InDetRttPlots > | m_monPlots |
| histograms More...
|
|
BooleanProperty | m_useTrackSelection {this, "useTrackSelection", false, "plot only tracks accepted by selection tool"} |
| Properties to fine-tune the tool behaviour. More...
|
|
BooleanProperty | m_doTruthOriginPlots {this, "doTruthOriginPlots", false, "do plots split by track truth origin"} |
|
BooleanProperty | m_doDuplicatePlots {this, "doDuplicatePlots", false, "Fill duplicate=multi-track per particle plots"} |
|
BooleanProperty | m_doPerAuthorPlots {this, "doPerAuthorPlots", false, "do plots split by track author"} |
|
BooleanProperty | m_doTrackInJetPlots {this, "FillTrackInJetPlots", true, "Fill plots for tracks in jets"} |
|
BooleanProperty | m_doHitLevelPlots {this, "doHitLevelPlots", false, "Fill hit efficiency and residual plots"} |
|
BooleanProperty | m_doBjetPlots {this, "FillTrackInBJetPlots", false, "Fill plots for tracks in truth-b-tagged jets"} |
|
BooleanProperty | m_fillTruthToRecoNtuple {this, "FillTruthToRecoNtuple", false, "Fill an ntuple with truth and matching reco info for more detailed stuidies"} |
|
BooleanProperty | m_useVertexTruthMatchTool {this, "useVertexTruthMatchTool", false, "Use the vertex truth matching tool"} |
|
BooleanProperty | m_onlyFillMatched {this, "onlyFillTruthMatched", false, "Only fill truth-to-reco (eff, reso, matched hit) plots"} |
|
BooleanProperty | m_doTRTExtensionPlots {this, "doTRTExtensionPlots", true, "do TRT extension plots"} |
|
BooleanProperty | m_useGRL {this, "useGRL", false, "Apply GRL selection or not when running on data"} |
|
BooleanProperty | m_doIDTIDEPlots {this, "doIDTIDEPlots", false, "do ID TIDE derivation plots"} |
|
BooleanProperty | m_fillTechnicalEfficiency {this, "fillTechnicalEfficiency", false, "Fill the technical efficiency plot. Requires additional sihit information in input file"} |
|
BooleanProperty | m_doPRW {this,"doPRW",false,"apply pileup reweight"} |
|
FloatProperty | m_maxTrkJetDR {this,"maxTrkJetDR",0.4,"the maximum dR to jets to allow for track-in-jet plots"} |
|
StringProperty | m_dirName {this, "DirName", "SquirrelPlots/", "Top level directory to write histograms into"} |
|
StringProperty | m_folder {this, "SubFolder", "", "Subfolder to add for plots if desired. Used when working with multiple IDPVM tool instances."} |
|
StringProperty | m_pileupSwitch {this, "PileupSwitch", "HardScatter", "Pileup truth strategy to use. May be \"All\", \"HardScatter\", or \"PileUp\""} |
|
FloatProperty | m_lowProb {this,"LowProb",0.5,"Truth match prob. cutoff for efficiency (lower bound) and fake (upper bound) classification."} |
|
FloatProperty | m_highProb {this,"HighProb",0.8,"Truth match prob. cutoff - currently unused"} |
|
Gaudi::Property< std::vector< double > > | m_etaBins {this, "EtaBins", {}} |
|
Gaudi::Property< std::vector< int > > | m_minHits {this, "MinNumberClusters", {}} |
|
Gaudi::Property< float > | m_jetAbsEtaMin |
|
Gaudi::Property< float > | m_jetAbsEtaMax |
|
Gaudi::Property< float > | m_jetPtMin |
|
Gaudi::Property< float > | m_jetPtMax |
|
ToolHandle< InDet::IInDetTrackSelectionTool > | m_trackSelectionTool {this, "TrackSelectionTool", "InDet::InDetTrackSelectionTool/TrackSelectionTool", "Track selection tool to use"} |
|
ToolHandle< IInDetVertexTruthMatchTool > | m_vtxValidTool {this, "VertexTruthMatchTool", "InDetVertexTruthMatchTool/VtxTruthMatchTool", "Vertex truth matching tool to use"} |
|
ToolHandle< IAthSelectionTool > | m_truthSelectionTool {this, "TruthSelectionTool","AthTruthSelectionTool", "Truth selection tool (for efficiencies and resolutions)"} |
|
ToolHandle< InDet::IInDetTrackTruthOriginTool > | m_trackTruthOriginTool {this, "trackTruthOriginTool", "InDet::InDetTrackTruthOriginTool","truth track origin tool"} |
|
ToolHandle< InDet::IInDetHardScatterSelectionTool > | m_hardScatterSelectionTool {this, "hardScatterSelectionTool", "InDet::InDetHardScatterSelectionTool","tool to select the hard scatter reco vertex"} |
|
ToolHandle< IGoodRunsListSelectionTool > | m_grlTool {this, "GoodRunsListSelectionTool", "GoodRunsListSelectionTool/GoodRunsListSelectionTool", "GRL selection tool"} |
|
SG::ReadDecorHandleKey< xAOD::EventInfo > | m_weight_pileup_key {this, "PileupWeight_NOSYS", "EventInfo.PileupWeight_NOSYS"} |
|
std::mutex | m_mutex |
|
CutFlow m_truthCutFlow | ATLAS_THREAD_SAFE |
|
std::vector< int > | m_prospectsMatched |
|
int | m_truthCounter = 0 |
|
std::vector< std::string > | m_trackCutflowNames |
|
std::vector< int > | m_trackCutflow |
|
bool | m_usingSpecialPileupSwitch {false} |
|
virtual StatusCode | initialize () |
|
virtual StatusCode | bookHistograms () |
| An inheriting class should either override this function or bookHists(). More...
|
|
virtual StatusCode | fillHistograms () |
| An inheriting class should either override this function or fillHists(). More...
|
|
virtual StatusCode | procHistograms () |
| An inheriting class should either override this function or finalHists(). More...
|
|
| InDetPhysValMonitoringTool () |
| prevent default construction More...
|
|
void | fillTrackCutFlow (const asg::AcceptData &accept) |
|
const std::vector< const xAOD::TruthParticle * > | getTruthParticles (const EventContext &ctx) const |
|
std::pair< const std::vector< const xAOD::TruthVertex * >, const std::vector< const xAOD::TruthVertex * > > | getTruthVertices (const EventContext &ctx) const |
|
InDetRttPlotConfig | getFilledPlotConfig () const |
| Generate an Rtt config struct based on the user-passed properties. More...
|
|
int | getIndexByEta (const xAOD::TruthParticle &truth) const |
| Utility function for evaluation of technical efficiency. More...
|
|
const Trk::TrackParameters * | getUnbiasedTrackParameters (const Trk::TrackParameters *trkParameters, const Trk::MeasurementBase *measurement) |
|
StatusCode | fillHistogramsTrackingInDenseEnvironment (const EventContext &ctx, IDPVM::CachedGetAssocTruth &getAsTruth, const std::vector< const xAOD::TruthParticle * > &truthParticles, const xAOD::TrackParticleContainer &tracks, const xAOD::Vertex *primaryvertex, float beamSpotWeight) |
|
void | decorateTrackParticle (const xAOD::TrackParticle &track, const asg::AcceptData &passed) const |
|
void | decorateTruthParticle (const xAOD::TruthParticle &truth, const IAthSelectionTool::CutResult &passed) const |
|
bool | hasTruthFilled (const xAOD::TruthParticle &truth) const |
|
bool | isSelectedByPileupSwitch (const xAOD::TruthParticle &truth) const |
|
void | markSelectedByPileupSwitch (const std::vector< const xAOD::TruthParticle * > &truthParticles) const |
|
bool | passJetCuts (const xAOD::Jet &jet) const |
|
static void | fillCutFlow (const asg::AcceptData &accept, std::vector< std::string > &names, std::vector< int > &cutFlow) |
|
Tool to book and fill inner detector histograms for physics validation.
Definition at line 63 of file InDetPhysValMonitoringTool.h.
◆ MDMap_t
◆ StoreGateSvc_t
◆ Interval_t
An enumeration describing how detailed a particular monitoring object is.
summary: used to summarize the state of the system
runstat: same as summary
shift: used to flag potential problems
expert: essential for diagnosing problems identified by shift-level objects
debug: useful for standalone debugging, but not for routine monitoring; not essential for diagnosing problems during normal running
transient: too detailed to ever be written; always summarized by the user by means of another object An enumeration describing the interval over which a particular monitoring object is filled (i.e., interval over which the method Fill(...) is called). This information may be stored with the monitoring object if an application is only able to partially fill the object (i.e., a job sees only part of a run or fill). This information may be ignored in some running Environments. The 'fill' interval corresponds to a fill of the LHC. The 'all' interval corresponds to all available data. The 'lumiBlock' and 'fill' intervals are only valid for the 'collisions' DataType_t.
Enumerator |
---|
file | |
eventsBlock | |
lumiBlock | |
lowStat | |
medStat | |
higStat | |
run | |
fill | |
all | |
Definition at line 114 of file ManagedMonitorToolBase.h.
◆ MgmtAttr_t
An enumeration describing how the class handles the histogram.
attrib_unmanaged: histograms with this attribute will not be rebooked automatically and must be managed by the user code.
attrib_x_is_lb: indicates that the x-axis of the histogram is the luminosity block number and that the histogram should be rebooked as necessary if the current LB exceeds the range.
Enumerator |
---|
ATTRIB_MANAGED | |
ATTRIB_UNMANAGED | |
ATTRIB_X_VS_LB | |
Definition at line 131 of file ManagedMonitorToolBase.h.
◆ InDetPhysValMonitoringTool() [1/2]
InDetPhysValMonitoringTool::InDetPhysValMonitoringTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~InDetPhysValMonitoringTool()
InDetPhysValMonitoringTool::~InDetPhysValMonitoringTool |
( |
| ) |
|
|
virtualdefault |
◆ InDetPhysValMonitoringTool() [2/2]
InDetPhysValMonitoringTool::InDetPhysValMonitoringTool |
( |
| ) |
|
|
private |
prevent default construction
◆ bookHistograms()
StatusCode InDetPhysValMonitoringTool::bookHistograms |
( |
| ) |
|
|
virtual |
◆ bookHistogramsRecurrent()
StatusCode ManagedMonitorToolBase::bookHistogramsRecurrent |
( |
| ) |
|
|
virtualinherited |
An inheriting class should either override this function, bookHists() or bookHistograms().
Reimplemented in SCTHitEffMonTool, SCTHitsNoiseMonTool, SCTErrMonTool, SCTTracksMonTool, SCTLorentzMonTool, AFPHitsMonitorTool, InDetGlobalBCMTool, DQTDataFlowMonTool, RpcLv1RawDataEfficiency, LVL1::CalorimeterL1CaloMon, LVL1::L1CaloCTPMon, LVL1::L1CaloLevel2Mon, LVL1::L1CaloPMTScoresMon, MdtRawDataValAlg, InDetGlobalTrackMonTool, InDetGlobalHitsMonTool, TRT_Monitoring_Tool, LVL1::L1CaloL1TopoMon, CaloTowerVecMon, DQTGlobalWZFinderTool, InDetGlobalTopBottomMonTool, DataQualityFatherMonTool, InDetGlobalNoiseOccupancyMonTool, RpcLv1RawDataValAlg, CaloClusterVecMon, RpcLv1RawDataSectorLogic, CaloTransverseBalanceVecMon, InDetGlobalBeamSpotMonTool, MdtVsTgcRawDataValAlg, MdtVsRpcRawDataValAlg, InDetGlobalErrorMonTool, ManagedMonitorToolTest, InDetGlobalPrimaryVertexMonTool, HIMonitoringEventShapeTool, AFPTechnicalMonitorTool, HIMonitoringZdcTool, HIMonitoringElectronsTool, HIMonitoringPhotonsTool, and HIMonitoringMuonsTool.
Definition at line 1394 of file ManagedMonitorToolBase.cxx.
1401 return StatusCode::SUCCESS;
◆ bookHists()
StatusCode ManagedMonitorToolBase::bookHists |
( |
| ) |
|
|
virtualinherited |
◆ checkHists()
StatusCode ManagedMonitorToolBase::checkHists |
( |
bool |
calledFromFinalize | ) |
|
|
virtualinherited |
This implementation does nothing; equivalent functionality may be provided by procHists(...) with appropriate arguments.
Implements IMonitorToolBase.
Reimplemented in SCTHitsNoiseMonTool, SCTTracksMonTool, SCTLorentzMonTool, TileRawChannelMonTool, TileDigitsMonTool, DQTDataFlowMonTool, DQTNonCollBkg_ZDC, DQTGlobalWZFinderTool, DataQualityFatherMonTool, DQTDetSynchMonTool, DQTMuonIDTrackTool, TileCellNoiseMonTool, CscCalibMonToolBase, CscPrdValAlg, and CscRdoValAlg.
Definition at line 1901 of file ManagedMonitorToolBase.cxx.
1906 return StatusCode::SUCCESS;
◆ convertLWHists()
StatusCode ManagedMonitorToolBase::convertLWHists |
( |
| ) |
|
|
virtualinherited |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ decorateTrackParticle()
◆ decorateTruthParticle()
◆ deregGraph()
StatusCode ManagedMonitorToolBase::deregGraph |
( |
TGraph * |
g | ) |
|
|
virtualinherited |
◆ deregHist() [1/2]
StatusCode ManagedMonitorToolBase::deregHist |
( |
LWHist * |
h | ) |
|
|
virtualinherited |
Definition at line 1826 of file ManagedMonitorToolBase.cxx.
1830 return StatusCode::FAILURE;
1833 if (
h->usingROOTBackend()) {
1834 h->setOwnsROOTHisto(
true);
1838 return StatusCode::SUCCESS;
◆ deregHist() [2/2]
StatusCode ManagedMonitorToolBase::deregHist |
( |
TH1 * |
h | ) |
|
|
virtualinherited |
◆ deregObject() [1/2]
StatusCode ManagedMonitorToolBase::deregObject |
( |
const std::string & |
objName, |
|
|
const MonGroup & |
group |
|
) |
| |
|
virtualinherited |
De-registers a TObject from the THistSvc, but does NOT delete the object.
(NB: LightWeight histograms are not even registered until readout).
Definition at line 1861 of file ManagedMonitorToolBase.cxx.
1874 return StatusCode::SUCCESS;
◆ deregObject() [2/2]
StatusCode ManagedMonitorToolBase::deregObject |
( |
const std::string & |
objName, |
|
|
const std::string & |
system, |
|
|
Interval_t |
interval |
|
) |
| |
|
virtualinherited |
De-registers a TObject from the THistSvc, but does NOT delete the object.
(NB: LightWeight histograms are not even registered until readout).
Definition at line 1851 of file ManagedMonitorToolBase.cxx.
◆ detStore()
◆ endOfEventsBlockFlag()
bool ManagedMonitorToolBase::endOfEventsBlockFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ endOfLowStatFlag()
bool ManagedMonitorToolBase::endOfLowStatFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ endOfLumiBlockFlag()
bool ManagedMonitorToolBase::endOfLumiBlockFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ endOfRunFlag()
bool ManagedMonitorToolBase::endOfRunFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ fillCutFlow()
void InDetPhysValMonitoringTool::fillCutFlow |
( |
const asg::AcceptData & |
accept, |
|
|
std::vector< std::string > & |
names, |
|
|
std::vector< int > & |
cutFlow |
|
) |
| |
|
staticprivate |
Definition at line 878 of file InDetPhysValMonitoringTool.cxx.
881 if (cutFlow.empty()) {
882 names.emplace_back(
"preCut");
883 cutFlow.push_back(0);
884 for (
unsigned int i = 0;
i !=
accept.getNCuts(); ++
i) {
885 cutFlow.push_back(0);
891 bool cutPositive =
true;
892 for (
unsigned int i = 0;
i != (
accept.getNCuts() + 1); ++
i) {
◆ fillHistograms()
StatusCode InDetPhysValMonitoringTool::fillHistograms |
( |
| ) |
|
|
virtual |
An inheriting class should either override this function or fillHists().
In case of no HS, print a debug message - no warning since this is expected in single particle MC. The downstream code is able to handle the absence of a HS vertex.
Reimplemented from ManagedMonitorToolBase.
Definition at line 298 of file InDetPhysValMonitoringTool.cxx.
303 const EventContext& ctx = Gaudi::Hive::currentContext();
307 if (not trackHandle.isValid()) {
309 return StatusCode::FAILURE;
320 ATH_MSG_WARNING(
"Shouldn't happen - EventInfo is buggy, setting mu to 0");
328 return StatusCode::SUCCESS;
332 std::vector<const xAOD::TruthParticle*> truthParticlesVec =
getTruthParticles(ctx);
340 unsigned int truthMu = 0;
343 truthMu =
static_cast<int>( truthPileupEventContainer->
size() );
348 float puEvents = truthMu>0 ? truthMu : actualMu;
352 float beamSpotWeight = 1;
355 ATH_MSG_DEBUG(
"Getting number of pu interactings per event");
361 nVertices = not vertices->empty() ? vertices->size() : 0;
363 ATH_MSG_DEBUG(
"beamSpotWeight is equal to " << beamSpotWeight);
367 if(readDecorHandle.isAvailable()) prwWeight = readDecorHandle(*pie);
368 ATH_MSG_DEBUG(
"Applying pileup weight equal to " << prwWeight);
369 beamSpotWeight *= prwWeight;
372 if (vertices.isValid() and not vertices->empty()) {
373 ATH_MSG_DEBUG(
"Number of vertices retrieved for this event " << vertices->size());
379 ATH_MSG_DEBUG(
"Failed to find a hard scatter vertex in this event.");
385 std::pair<std::vector<const xAOD::TruthVertex*>, std::vector<const xAOD::TruthVertex*>> truthVertices =
getTruthVertices(ctx);
386 std::vector<const xAOD::TruthVertex*> truthHSVertices = truthVertices.first;
387 std::vector<const xAOD::TruthVertex*> truthPUVertices = truthVertices.second;
394 m_monPlots->fill(*vertices, primaryvertex, truthHSVertices, truthPUVertices, beamSpotWeight);
398 m_monPlots->fill(*vertices, truthMu, actualMu, beamSpotWeight);
416 const auto& stdVertexContainer = truthVrt->
stdcont();
418 auto findVtx = std::find_if(stdVertexContainer.rbegin(), stdVertexContainer.rend(), acceptTruthVertex);
419 truthVertex = (findVtx == stdVertexContainer.rend()) ?
nullptr : *findVtx;
423 if (not truthVertex)
ATH_MSG_INFO (
"Truth vertex did not pass cuts");
428 unsigned int nSelectedTruthTracks(0), nSelectedRecoTracks(0), nSelectedMatchedTracks(0), nAssociatedTruth(0), nMissingAssociatedTruth(0), nTruths(0);
437 std::map<const xAOD::TruthParticle*, std::vector<const xAOD::TrackParticle*>> cacheTruthMatching {};
439 std::vector<const xAOD::TrackParticle*> selectedTracks {};
440 selectedTracks.reserve(tracks->
size());
441 unsigned int nTrackTOT = 0;
442 for (
const auto *
const thisTrack: *tracks) {
448 selectedTracks.push_back(thisTrack);
450 nSelectedRecoTracks++;
460 if (associatedTruth) {
467 tmp_truth_cutflow.update(
passed.missingCuts() );
471 nSelectedMatchedTracks++;
472 bool truthIsFromB =
false;
476 m_monPlots->fill(*thisTrack, *associatedTruth, truthIsFromB, puEvents, beamSpotWeight);
480 const bool isAssociatedTruth = associatedTruth !=
nullptr;
483 if(!isAssociatedTruth) nMissingAssociatedTruth++;
484 m_monPlots->fillFakeRate(*thisTrack,
isFake, isAssociatedTruth, puEvents, beamSpotWeight);
490 if (isAssociatedTruth) {
495 auto cachedAssoc = cacheTruthMatching.find(associatedTruth);
497 if (cachedAssoc == cacheTruthMatching.end()) {
499 cacheTruthMatching[associatedTruth] = {thisTrack};
503 cachedAssoc->second.push_back(thisTrack);
508 m_monPlots->fillNtuple(*thisTrack, primaryvertex);
516 for (
auto& cachedAssoc: cacheTruthMatching) {
523 std::sort(cachedAssoc.second.begin(), cachedAssoc.second.end(),
529 for (
int itrack = 0; itrack < (
int) cachedAssoc.second.size(); itrack++) {
533 m_monPlots->fillNtuple(*thisTrack, *thisTruth, primaryvertex, itrack);
544 std::lock_guard<std::mutex> lock(
m_mutex);
545 m_truthCutFlow.merge(std::move(tmp_truth_cutflow));
551 for (
int itruth = 0; itruth < (
int) truthParticlesVec.size(); itruth++) {
558 ++nSelectedTruthTracks;
559 bool isEfficient(
false);
563 auto cachedAssoc = cacheTruthMatching.find(thisTruth);
565 if (cachedAssoc == cacheTruthMatching.end()) {
567 cacheTruthMatching[thisTruth] = {};
569 m_monPlots->fillDuplicate(*thisTruth, cacheTruthMatching[thisTruth], beamSpotWeight);
576 for (
const auto& thisTrack: selectedTracks) {
578 if (associatedTruth && associatedTruth == thisTruth) {
582 matchedTrack = thisTrack;
588 ATH_MSG_ERROR(
"An error occurred: Truth particle for tracking efficiency calculation is a nullptr");
590 else if (isEfficient && !matchedTrack){
591 ATH_MSG_ERROR(
"Something went wrong - we log a truth particle as reconstructed, but the reco track is a nullptr! Bailing out... ");
594 ATH_MSG_DEBUG(
"Filling efficiency plots info monitoring plots");
595 m_monPlots->fillEfficiency(*thisTruth, matchedTrack, isEfficient, truthMu, actualMu, beamSpotWeight);
597 ATH_MSG_DEBUG(
"Filling technical efficiency plots info monitoring plots");
599 if (nSilHitsAcc.isAvailable(*thisTruth)) {
601 m_monPlots->fillTechnicalEfficiency(*thisTruth, isEfficient,
602 truthMu, actualMu, beamSpotWeight);
605 ATH_MSG_DEBUG(
"Cannot fill technical efficiency. Missing si hit information for truth particle.");
623 if (nSelectedRecoTracks == nMissingAssociatedTruth) {
628 ATH_MSG_DEBUG(nAssociatedTruth <<
" tracks out of " << tracks->size() <<
" had associated truth.");
647 return StatusCode::SUCCESS;
◆ fillHistogramsTrackingInDenseEnvironment()
Definition at line 918 of file InDetPhysValMonitoringTool.cxx.
928 if (truthParticles.empty()) {
929 ATH_MSG_WARNING(
"No entries in TruthParticles truth particle container. Skipping jet plots.");
930 return StatusCode::SUCCESS;
934 if (not jetHandle.isValid()) {
936 return StatusCode::SUCCESS;
946 if (not btagLabel.isAvailable(*thisJet)){
949 isBjet = (btagLabel(*thisJet) == 5);
953 if(not ghosttruth.isAvailable(*thisJet)) {
957 if (not
el.isValid())
continue;
968 bool isEfficient(
false);
970 for (
const auto *thisTrack: tracks) {
976 if (associatedTruth and associatedTruth == truth) {
985 bool truthIsFromB =
false;
989 m_monPlots->fillEfficiency(*truth, *thisJet, isEfficient, isBjet, truthIsFromB, beamSpotWeight);
1007 const bool unlinked = (associatedTruth==
nullptr);
1009 bool truthIsFromB =
false;
1011 truthIsFromB =
true;
1013 m_monPlots->fill(*thisTrack, *thisJet, isBjet,
isFake, unlinked, truthIsFromB, beamSpotWeight);
1014 if (associatedTruth){
1015 m_monPlots->fillFakeRate(*thisTrack, *thisJet,
isFake, isBjet, truthIsFromB, beamSpotWeight);
1021 return StatusCode::SUCCESS;
◆ fillHists()
StatusCode ManagedMonitorToolBase::fillHists |
( |
| ) |
|
|
virtualinherited |
Calls fillHists( bool, bool, bool ); if an eventBlock,lumiBlock, or run has turned over, calls procHists( bool, bool, bool ) and bookHists( bool, bool, bool ).
Implements IMonitorToolBase.
Reimplemented in TileRawChannelMonTool, and TileDigitsMonTool.
Definition at line 792 of file ManagedMonitorToolBase.cxx.
798 msg(MSG::WARNING) <<
"ManagedMonitorToolBase::initialize() never called from reimplementation!" <<
endmsg;
809 newLumiBlock =
false;
815 newLowStatInterval =
false;
816 newMedStatInterval =
false;
817 newHigStatInterval =
false;
830 isNewEventsBlock =
true;
845 if( LBsLowStat*LBsMedStat*LBsHigStat == 0) {
846 msg(MSG::WARNING) <<
"zero LBs requested for interval" <<
endmsg;
898 std::vector<Interval_t> intervals_to_process;
903 for (
const auto interval: intervals_to_process) {
916 it.m_templateHist->LabelsInflate(
"X");
923 TH1* passedHist =
it.m_templateHist->GetCopyPassedHisto();
924 TH1* totalHist =
it.m_templateHist->GetCopyTotalHisto();
927 passedHist->LabelsInflate(
"X");
928 totalHist->LabelsInflate(
"X");
933 it.m_templateHist->SetPassedHistogram(*passedHist,
"f");
934 it.m_templateHist->SetTotalHistogram(*totalHist,
" ");
942 streamname->updateRunLB();
958 bool filterresult(
true);
961 for (; filterresult && (ifilter != filterend);
963 filterresult = (filterresult && (*ifilter)->accept());
993 if( LBsLowStat*LBsMedStat*LBsHigStat > 0) {
1001 return StatusCode::SUCCESS;
◆ fillTrackCutFlow()
◆ finalHists()
StatusCode ManagedMonitorToolBase::finalHists |
( |
| ) |
|
|
virtualinherited |
◆ get_nEvents()
unsigned int ManagedMonitorToolBase::get_nEvents |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ get_procNEventsProp()
long ManagedMonitorToolBase::get_procNEventsProp |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ getFilledPlotConfig()
Generate an Rtt config struct based on the user-passed properties.
turn off truth if none is present
allow to disable non-truth-matched
account for detail level
Definition at line 171 of file InDetPhysValMonitoringTool.cxx.
◆ getHist() [1/6]
◆ getHist() [2/6]
StatusCode ManagedMonitorToolBase::getHist |
( |
LWHist *& |
h, |
|
|
const std::string & |
hName, |
|
|
const std::string & |
system, |
|
|
Interval_t |
interval |
|
) |
| |
|
virtualinherited |
◆ getHist() [3/6]
StatusCode ManagedMonitorToolBase::getHist |
( |
TH1 *& |
h, |
|
|
const std::string & |
hName, |
|
|
const MonGroup & |
group |
|
) |
| |
|
virtualinherited |
Returns a TH1 via the pointer passed as the first argument.
The histogram name, without the leading path or stream name, must be given as the second argument.
Definition at line 1598 of file ManagedMonitorToolBase.cxx.
◆ getHist() [4/6]
StatusCode ManagedMonitorToolBase::getHist |
( |
TH1 *& |
h, |
|
|
const std::string & |
hName, |
|
|
const std::string & |
system, |
|
|
Interval_t |
interval |
|
) |
| |
|
virtualinherited |
Returns a TH1 via the pointer passed as the first argument.
The histogram name, without the leading path or stream name, must be given as the second argument.
Definition at line 1588 of file ManagedMonitorToolBase.cxx.
◆ getHist() [5/6]
StatusCode ManagedMonitorToolBase::getHist |
( |
TH2 *& |
h, |
|
|
const std::string & |
hName, |
|
|
const MonGroup & |
group |
|
) |
| |
|
virtualinherited |
Returns a TH2 via the pointer passed as the first argument.
The histogram name, without the leading path or stream name, must be given as the second argument.
Definition at line 1640 of file ManagedMonitorToolBase.cxx.
◆ getHist() [6/6]
StatusCode ManagedMonitorToolBase::getHist |
( |
TH2 *& |
h, |
|
|
const std::string & |
hName, |
|
|
const std::string & |
system, |
|
|
Interval_t |
interval |
|
) |
| |
|
virtualinherited |
Returns a TH2 via the pointer passed as the first argument.
The histogram name, without the leading path or stream name, must be given as the second argument.
Definition at line 1630 of file ManagedMonitorToolBase.cxx.
◆ getIndexByEta()
◆ getNewStreamNameFcn()
|
protectedvirtualinherited |
◆ getTruthParticles()
Definition at line 737 of file InDetPhysValMonitoringTool.cxx.
739 std::vector<const xAOD::TruthParticle*> tempVec {};
746 if (not truthParticleContainer.isValid()) {
749 tempVec.insert(tempVec.begin(), truthParticleContainer->begin(), truthParticleContainer->end());
755 const xAOD::TruthEvent*
event = (truthEventContainer.isValid()) ? truthEventContainer->at(0) :
nullptr;
759 const auto&
links =
event->truthParticleLinks();
760 tempVec.reserve(
event->nTruthParticles());
761 for (
const auto& link :
links) {
763 tempVec.push_back(*link);
772 if (truthPileupEventContainer.isValid()) {
773 const unsigned int nPileup = truthPileupEventContainer->size();
774 tempVec.reserve(nPileup * 200);
775 for (
unsigned int i(0);
i != nPileup; ++
i) {
776 const auto *eventPileup = truthPileupEventContainer->at(
i);
778 int ntruth = eventPileup->nTruthParticles();
779 ATH_MSG_VERBOSE(
"Adding " << ntruth <<
" truth particles from TruthPileupEvents container");
780 const auto&
links = eventPileup->truthParticleLinks();
781 for (
const auto& link :
links) {
783 tempVec.push_back(*link);
◆ getTruthVertices()
Definition at line 799 of file InDetPhysValMonitoringTool.cxx.
801 std::vector<const xAOD::TruthVertex*> truthHSVertices = {};
802 truthHSVertices.reserve(5);
803 std::vector<const xAOD::TruthVertex*> truthPUVertices = {};
804 truthPUVertices.reserve(100);
827 if (truthEventContainer.isValid()) {
828 for (
const auto *
const evt : *truthEventContainer) {
829 truthVtx =
evt->signalProcessVertex();
831 truthHSVertices.push_back(truthVtx);
845 if (truthPileupEventContainer.isValid()) {
846 for (
const auto *
const evt : *truthPileupEventContainer) {
851 size_t i_vtx = 0;
size_t n_vtx =
evt->nTruthVertices();
852 while(!truthVtx && i_vtx<n_vtx){
853 truthVtx =
evt->truthVertex(i_vtx);
858 truthPUVertices.push_back(truthVtx);
868 return std::make_pair<const std::vector<const xAOD::TruthVertex*>,
const std::vector<const xAOD::TruthVertex*>>((
const std::vector<const xAOD::TruthVertex*>)truthHSVertices, (
const std::vector<const xAOD::TruthVertex*>)truthPUVertices);
◆ getUnbiasedTrackParameters()
◆ hasTruthFilled()
◆ initialize()
StatusCode InDetPhysValMonitoringTool::initialize |
( |
| ) |
|
|
virtual |
Reimplemented from ManagedMonitorToolBase.
Definition at line 116 of file InDetPhysValMonitoringTool.cxx.
134 (
nullptr,
static_cast<std::string
>(
m_dirName) +
static_cast<std::string
>(
m_folder),
147 std::vector<std::string> required_float_track_decorations {
"d0",
"hitResiduals_residualLocX",
"d0err"};
148 std::vector<std::string> required_int_track_decorations {};
149 std::vector<std::string> required_float_truth_decorations {
"d0"};
150 std::vector<std::string> required_int_truth_decorations {};
151 std::vector<std::string> required_int_jet_decorations {
"HadronConeExclTruthLabelID"};
153 std::string empty_prefix;
167 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ interfaceID()
static const InterfaceID& IMonitorToolBase::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ intervalEnumToString()
std::string ManagedMonitorToolBase::intervalEnumToString |
( |
Interval_t |
interval | ) |
|
|
staticinherited |
Converts a LevelOfDetail_t to a string of the same name.
Converts a string to the corresponding LevelOfDetail_t. Converts a Interval_t to a string of the same name.
Definition at line 587 of file ManagedMonitorToolBase.cxx.
590 std::string
str(
"file");
◆ intervalStringToEnum()
Converts a string to the corresponding Interval_t.
Definition at line 629 of file ManagedMonitorToolBase.cxx.
632 std::string lcstr( strToLower(
str) );
636 else if( lcstr ==
"fill" )
638 else if( lcstr ==
"run" )
640 else if( lcstr ==
"lowStat" )
642 else if( lcstr ==
"medStat" )
644 else if( lcstr ==
"higStat" )
646 else if( lcstr ==
"lumiBlock" )
648 else if( lcstr ==
"eventsBlock" )
650 else if( lcstr ==
"file" )
656 if(
sc.isSuccess() ) {
657 MsgStream
log(
ms,
"ManagedMonitorToolBase::intervalStringToEnum()" );
658 log << MSG::WARNING <<
"Unknown ManagedMonitorToolBase::Interval_t \""
659 <<
str <<
"\", returning \"file\"" <<
endmsg;
◆ isSelectedByPileupSwitch()
◆ lbAverageInteractionsPerCrossing()
float ManagedMonitorToolBase::lbAverageInteractionsPerCrossing |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
virtualinherited |
Average mu, i.e.
<mu>
Definition at line 1923 of file ManagedMonitorToolBase.cxx.
1928 return lumi->lbAverageInteractionsPerCrossing();
1931 ATH_MSG_DEBUG(
"Warning: lbAverageInteractionsPerCrossing() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
◆ lbAverageLivefraction()
float ManagedMonitorToolBase::lbAverageLivefraction |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
virtualinherited |
Average luminosity livefraction.
Definition at line 1992 of file ManagedMonitorToolBase.cxx.
2000 return live->lbAverageLiveFraction();
2003 ATH_MSG_DEBUG(
"Warning: lbAverageLivefraction() - luminosity not availble (i.e. EnableLumi = False)");
◆ lbAverageLuminosity()
float ManagedMonitorToolBase::lbAverageLuminosity |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
virtualinherited |
Average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1)
Definition at line 1959 of file ManagedMonitorToolBase.cxx.
1964 return lumi->lbAverageLuminosity();
1967 ATH_MSG_DEBUG(
"Warning: lbAverageLuminosity() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
◆ lbDuration()
double ManagedMonitorToolBase::lbDuration |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
virtualinherited |
Luminosity block time (in seconds)
Definition at line 2046 of file ManagedMonitorToolBase.cxx.
2054 return dur->lbDuration();
2057 ATH_MSG_DEBUG(
"Warning: lbDuration() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
◆ lbInteractionsPerCrossing()
float ManagedMonitorToolBase::lbInteractionsPerCrossing |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
virtualinherited |
Instantaneous number of interactions, i.e.
mu
Definition at line 1939 of file ManagedMonitorToolBase.cxx.
1944 float muToLumi =
lumi->muToLumi();
1946 return lumi->lbLuminosityPerBCIDVector().at (ctx.eventID().bunch_crossing_id()) / muToLumi;
1951 ATH_MSG_DEBUG(
"Warning: lbInteractionsPerCrossing() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
◆ lbLuminosityPerBCID()
float ManagedMonitorToolBase::lbLuminosityPerBCID |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
virtualinherited |
Instantaneous luminosity.
Definition at line 1975 of file ManagedMonitorToolBase.cxx.
1980 return lumi->lbLuminosityPerBCIDVector().at (ctx.eventID().bunch_crossing_id());
1983 ATH_MSG_DEBUG(
"Warning: lbLuminosityPerBCID() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
◆ lbLumiWeight()
double ManagedMonitorToolBase::lbLumiWeight |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
virtualinherited |
Average Integrated Luminosity Live Fraction.
Definition at line 2030 of file ManagedMonitorToolBase.cxx.
2037 ATH_MSG_DEBUG(
"Warning: lbLumiWeight() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
◆ livefractionPerBCID()
float ManagedMonitorToolBase::livefractionPerBCID |
( |
const EventContext & |
ctx = Gaudi::Hive::currentContext() | ) |
const |
|
virtualinherited |
Livefraction per bunch crossing ID.
Definition at line 2011 of file ManagedMonitorToolBase.cxx.
2019 return live->l1LiveFractionVector().at (ctx.eventID().bunch_crossing_id());
2022 ATH_MSG_DEBUG(
"Warning: livefractionPerBCID() - luminosity retrieved available (i.e. EnableLumi = False)");
◆ markSelectedByPileupSwitch()
◆ MMTB_DEPRECATED() [1/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
endOfEventsBlock |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [2/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
endOfLowStat |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [3/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
endOfLumiBlock |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [4/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
endOfRun |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [5/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
newEventsBlock |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [6/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
newHigStatInterval |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [7/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
newLowStat |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [8/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
newLowStatInterval |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [9/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
newLumiBlock |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [10/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
newMedStatInterval |
| ) |
|
|
inherited |
◆ MMTB_DEPRECATED() [11/11]
ManagedMonitorToolBase::MMTB_DEPRECATED |
( |
newRun |
| ) |
|
|
inherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ newEventsBlockFlag()
bool ManagedMonitorToolBase::newEventsBlockFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ newHigStatIntervalFlag()
bool ManagedMonitorToolBase::newHigStatIntervalFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ newLowStatFlag()
bool ManagedMonitorToolBase::newLowStatFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ newLowStatIntervalFlag()
bool ManagedMonitorToolBase::newLowStatIntervalFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ newLumiBlockFlag()
bool ManagedMonitorToolBase::newLumiBlockFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ newMedStatIntervalFlag()
bool ManagedMonitorToolBase::newMedStatIntervalFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ newRunFlag()
bool ManagedMonitorToolBase::newRunFlag |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ parseList()
StatusCode ManagedMonitorToolBase::parseList |
( |
const std::string & |
line, |
|
|
std::vector< std::string > & |
result |
|
) |
| |
|
protectedinherited |
◆ passJetCuts()
bool InDetPhysValMonitoringTool::passJetCuts |
( |
const xAOD::Jet & |
jet | ) |
const |
|
private |
◆ preSelector()
bool ManagedMonitorToolBase::preSelector |
( |
| ) |
|
|
virtualinherited |
◆ procHistograms()
StatusCode InDetPhysValMonitoringTool::procHistograms |
( |
| ) |
|
|
virtual |
◆ regEfficiency()
StatusCode ManagedMonitorToolBase::regEfficiency |
( |
TEfficiency * |
e, |
|
|
const MonGroup & |
group |
|
) |
| |
|
virtualinherited |
Registers a TEfficiency to be included in the output stream using logical parameters that describe the plot.
Definition at line 1648 of file ManagedMonitorToolBase.cxx.
1650 return StatusCode::FAILURE;
1652 TGraph*
g =
reinterpret_cast<TGraph*
>(
e);
1653 std::string
name =
e->GetName();
1659 ATH_MSG_WARNING(
"HEY! Attempting to register "<<
name<<
" as a per-LB histogram, but not setting the merge algorithm! Use \"merge\", at least.");
1666 return StatusCode::FAILURE;
1676 std::string genericName = NoOutputStream().getStreamName(
this,
group,
name );
1683 if (
smd != StatusCode::SUCCESS)
1684 return StatusCode::FAILURE;
◆ regGraph() [1/2]
StatusCode ManagedMonitorToolBase::regGraph |
( |
TGraph * |
g, |
|
|
const MonGroup & |
group |
|
) |
| |
|
virtualinherited |
Registers a TGraph to be included in the output stream using logical parameters that describe the graph.
Definition at line 1702 of file ManagedMonitorToolBase.cxx.
1706 return StatusCode::FAILURE;
1719 return StatusCode::FAILURE;
1722 std::string
name =
g->GetName();
1730 std::string gName =
g->GetName();
1733 std::string genericName = NoOutputStream().getStreamName(
this,
group, gName );
1741 if (
smd != StatusCode::SUCCESS)
return StatusCode::FAILURE;
◆ regGraph() [2/2]
Registers a TGraph to be included in the output stream using logical parameters that describe the graph.
Definition at line 1692 of file ManagedMonitorToolBase.cxx.
◆ regHist() [1/4]
Definition at line 1522 of file ManagedMonitorToolBase.cxx.
1528 return StatusCode::FAILURE;
1540 return StatusCode::FAILURE;
1547 std::string hName =
h->GetName();
1551 std::string genericName = NoOutputStream().getStreamName(
this,
group, hName );
1577 if (
h->usingROOTBackend())
1579 h->setOwnsROOTHisto(
false);
1583 return StatusCode::SUCCESS;
◆ regHist() [2/4]
◆ regHist() [3/4]
Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram.
A histogram is passed via reference to a pointer.
Definition at line 1462 of file ManagedMonitorToolBase.cxx.
1468 return StatusCode::FAILURE;
1481 ATH_MSG_WARNING(
"HEY! You're attempting to register " <<
h->GetName() <<
" as a per-LB histogram, but you're not setting the merge algorithm! This is a SUPER-BAD idea! Use \"merge\", at least.");
1488 return StatusCode::FAILURE;
1491 std::string hName =
h->GetName();
1499 std::string hName =
h->GetName();
1502 std::string genericName = NoOutputStream().getStreamName(
this,
group, hName );
1510 if (
smd != StatusCode::SUCCESS)
return StatusCode::FAILURE;
◆ regHist() [4/4]
◆ registerMetadata()
StatusCode ManagedMonitorToolBase::registerMetadata |
( |
const std::string & |
streamName, |
|
|
const std::string & |
hName, |
|
|
const MonGroup & |
group |
|
) |
| |
|
protectedinherited |
Definition at line 1005 of file ManagedMonitorToolBase.cxx.
1011 size_t found=mdStreamName.rfind(
'/');
1013 if (
found != std::string::npos )
1014 mdStreamName.replace(
found, mdStreamName.length(),
"/metadata" );
1018 metadata =
new TTree(
"metadata",
"Monitoring Metadata" );
1019 if (!
metadata)
return StatusCode::FAILURE;
1021 if (scmd == StatusCode::FAILURE)
return StatusCode::FAILURE;
1022 MDMap_t::value_type valToInsert( mdStreamName,
new OutputMetadata(
metadata) );
1028 return StatusCode::SUCCESS;
◆ regManagedEfficiencies()
StatusCode ManagedMonitorToolBase::regManagedEfficiencies |
( |
std::vector< MgmtParams< TEfficiency > > & |
templateEfficiencies | ) |
|
|
protectedinherited |
Definition at line 1200 of file ManagedMonitorToolBase.cxx.
1201 bool allIsOk =
true;
1202 for(
auto&
it : templateEfficiencies ) {
1205 TEfficiency* theEfficiency =
it.m_templateHist;
1206 TEfficiency*
e =
static_cast<TEfficiency*
>(theEfficiency->Clone());
1207 int nbins = theEfficiency->GetTotalHistogram()->GetNbinsX();
1208 int xlow = theEfficiency->GetTotalHistogram()->GetXaxis()->GetXmin();
1209 int xhigh = theEfficiency->GetTotalHistogram()->GetXaxis()->GetXmax();
1210 e->SetBins(
nbins,xlow,xhigh);
1211 std::string
name =
e->GetName();
1214 TGraph* theGraph =
reinterpret_cast<TGraph*
>(theEfficiency);
1215 TGraph*
g =
reinterpret_cast<TGraph*
>(
e);
1223 if (sc1 == StatusCode::FAILURE) allIsOk =
false;
1225 bool doneCleaning =
false;
1227 TSeqCollection *
filelist=gROOT->GetListOfFiles();
1232 if (sc2 == StatusCode::SUCCESS) doneCleaning =
true;
1235 if (!doneCleaning) {
1236 ATH_MSG_ERROR(
"THistSvc_deReg_fixTGraph: failed to apply TGraph fix for the THist Svc!");
1241 if (sc3 == StatusCode::FAILURE)
1248 if (
smd != StatusCode::SUCCESS) allIsOk =
false;
1251 if (sc4 == StatusCode::FAILURE) allIsOk =
false;
1254 if (!allIsOk)
return StatusCode::FAILURE;
1255 return StatusCode::SUCCESS;
◆ regManagedGraphs()
StatusCode ManagedMonitorToolBase::regManagedGraphs |
( |
std::vector< MgmtParams< TGraph > > & |
templateGraphs | ) |
|
|
protectedinherited |
Definition at line 1129 of file ManagedMonitorToolBase.cxx.
1133 bool allIsOk =
true;
1135 for( std::vector< MgmtParams<TGraph> >::
iterator it = templateGraphs.begin();
it != templateGraphs.end(); ++
it ) {
1136 MonGroup
group = (*it).m_group;
1139 TGraph* theGraph = (*it).m_templateHist;
1142 TGraph*
g =
static_cast<TGraph*
>(theGraph->Clone());
1146 std::string gName =
g->GetName();
1153 if (sc1 == StatusCode::FAILURE)
1158 bool doneCleaning =
false;
1160 TSeqCollection *
filelist=gROOT->GetListOfFiles();
1165 if (sc2 == StatusCode::SUCCESS)
1166 doneCleaning =
true;
1170 if (!doneCleaning) {
1171 ATH_MSG_ERROR(
"THistSvc_deReg_fixTGraph: failed to apply TGraph fix for the THist Svc!");
1178 if (sc3 == StatusCode::FAILURE)
1185 if (
smd != StatusCode::SUCCESS)
1190 if (sc4 == StatusCode::FAILURE)
1195 if (!allIsOk)
return StatusCode::FAILURE;
1197 return StatusCode::SUCCESS;
◆ regManagedHistograms()
StatusCode ManagedMonitorToolBase::regManagedHistograms |
( |
std::vector< MgmtParams< TH1 > > & |
templateHistograms | ) |
|
|
protectedinherited |
Definition at line 1032 of file ManagedMonitorToolBase.cxx.
1047 bool allIsOk =
true;
1049 for( std::vector< MgmtParams<TH1> >::
iterator it = templateHistograms.begin();
it != templateHistograms.end(); ++
it ) {
1050 MonGroup&
group = (*it).m_group;
1053 TH1* theHist = (*it).m_templateHist;
1056 TH1*
h =
static_cast<TH1*
>(theHist->Clone());
1060 std::string hName =
h->GetName();
1067 if (sc1 == StatusCode::FAILURE) allIsOk =
false;
1071 if (sc2 == StatusCode::FAILURE) allIsOk =
false;
1074 std::string genericName = NoOutputStream().getStreamName(
this,
group, hName );
1083 if (
smd != StatusCode::SUCCESS) allIsOk =
false;
1087 if (sc3 == StatusCode::FAILURE) allIsOk =
false;
1091 if (!allIsOk)
return StatusCode::FAILURE;
1093 return StatusCode::SUCCESS;
◆ regManagedLWHistograms()
StatusCode ManagedMonitorToolBase::regManagedLWHistograms |
( |
std::vector< MgmtParams< LWHist > > & |
templateLWHistograms | ) |
|
|
protectedinherited |
◆ regManagedTrees()
StatusCode ManagedMonitorToolBase::regManagedTrees |
( |
std::vector< MgmtParams< TTree > > & |
templateTrees | ) |
|
|
protectedinherited |
Definition at line 1260 of file ManagedMonitorToolBase.cxx.
1264 bool allIsOk =
true;
1266 for( std::vector< MgmtParams<TTree> >::
iterator it = templateTrees.begin();
it != templateTrees.end(); ++
it ) {
1267 MonGroup
group = (*it).m_group;
1270 TTree* theTree = (*it).m_templateHist;
1273 TTree*
t =
static_cast<TTree*
>(theTree->Clone());
1277 std::string
name =
t->GetName();
1284 if (sc1 == StatusCode::FAILURE) allIsOk =
false;
1288 if (sc2 == StatusCode::FAILURE) allIsOk =
false;
1291 std::string genericName = NoOutputStream().getStreamName(
this,
group,
name );
1300 if (
smd != StatusCode::SUCCESS) allIsOk =
false;
1304 if (sc3 == StatusCode::FAILURE) allIsOk =
false;
1308 if (!allIsOk)
return StatusCode::FAILURE;
1310 return StatusCode::SUCCESS;
◆ regTree() [1/2]
StatusCode ManagedMonitorToolBase::regTree |
( |
TTree * |
t, |
|
|
const MonGroup & |
group |
|
) |
| |
|
virtualinherited |
Registers a TTree to be included in the output stream using logical parameters that describe it.
Definition at line 1758 of file ManagedMonitorToolBase.cxx.
1773 return StatusCode::FAILURE;
1776 std::string
name =
t->GetName();
1777 std::string genericName = NoOutputStream().getStreamName(
this, group_unmanaged,
name );
1785 std::string tName =
t->GetName();
1788 std::string genericName = NoOutputStream().getStreamName(
this,
group, tName );
1796 if (
smd != StatusCode::SUCCESS)
return StatusCode::FAILURE;
◆ regTree() [2/2]
Registers a TTree to be included in the output stream using logical parameters that describe it.
Definition at line 1748 of file ManagedMonitorToolBase.cxx.
◆ renounce()
◆ renounceArray()
◆ runStat()
StatusCode ManagedMonitorToolBase::runStat |
( |
| ) |
|
|
virtualinherited |
This implementation does nothing; equivalent functionality may be provided by procHists( true, true, true ).
Implements IMonitorToolBase.
Definition at line 1893 of file ManagedMonitorToolBase.cxx.
1896 return StatusCode::SUCCESS;
◆ setMonManager()
◆ setupOutputStreams()
StatusCode ManagedMonitorToolBase::setupOutputStreams |
( |
std::vector< std::string > |
Mapping = std::vector<std::string>() | ) |
|
|
virtualinherited |
◆ streamNameFunction()
Returns the function object that converts logical paramters into a physical stream name.
Definition at line 502 of file ManagedMonitorToolBase.cxx.
506 msg(MSG::ERROR) <<
"!! streamNameFunction() has not been initialized !!" <<
endmsg;
507 msg(MSG::ERROR) <<
" --> neither ManagedMonitorToolBase::initialize() nor" <<
endmsg;
508 msg(MSG::ERROR) <<
" --> ManagedMonitorToolBase::setMonManager() has been called." <<
endmsg;
509 msg(MSG::ERROR) <<
" --> Correct configuration cannot be guaranteed from this point." <<
endmsg;
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ THistSvc_deReg_fixTGraph()
StatusCode ManagedMonitorToolBase::THistSvc_deReg_fixTGraph |
( |
TFile * |
file, |
|
|
TGraph * |
theGraph, |
|
|
std::string & |
directoryName |
|
) |
| |
|
protectedinherited |
Fixes THistSvc->deReg(obj) when obj is TGraph instance.
Read more in source file about this bug.
Definition at line 1097 of file ManagedMonitorToolBase.cxx.
1107 GlobalDirectoryRestore restore;
1110 bool graphRemoved =
false;
1113 TDirectory*
dir =
file->GetDirectory(directoryName.c_str());
1116 TObject*
obj =
dir->Remove(theGraph);
1118 graphRemoved =
true;
1121 if (!graphRemoved) {
1122 return StatusCode::FAILURE;
1125 return StatusCode::SUCCESS;
◆ trigChainsArePassed()
bool ManagedMonitorToolBase::trigChainsArePassed |
( |
std::vector< std::string > & |
vTrigNames | ) |
|
|
protectedvirtualinherited |
◆ updateTriggersForGroups()
void ManagedMonitorToolBase::updateTriggersForGroups |
( |
std::vector< std::string > & |
vTrigChainNames | ) |
|
|
protectedinherited |
Definition at line 2362 of file ManagedMonitorToolBase.cxx.
2364 for (
size_t i = 0;
i < vTrigChainNames.size(); ++
i) {
2365 std::string& thisName = vTrigChainNames[
i];
2366 if (thisName.compare(0, 9,
"CATEGORY_") ==0) {
2367 ATH_MSG_DEBUG(
"Found a trigger category: " << thisName <<
". We will unpack it.");
2369 std::ostringstream oss;
2371 for (
size_t itrig = 0; itrig <
triggers.size(); ++itrig) {
2379 std::string newval = oss.str();
2381 vTrigChainNames[
i] = newval;
◆ updateVHKA()
◆ writeAndDelete()
StatusCode ManagedMonitorToolBase::writeAndDelete |
( |
TH1 * |
h, |
|
|
const MonGroup & |
group |
|
) |
| |
|
virtualinherited |
Write out histogram and delete it.
Definition at line 1803 of file ManagedMonitorToolBase.cxx.
1806 return StatusCode::FAILURE;
1808 std::string hName =
h->GetName();
1811 std::string genericName = NoOutputStream().getStreamName(
this,
group, hName );
1814 return StatusCode::SUCCESS;
◆ ATLAS_THREAD_SAFE
CutFlow m_truthCutFlow InDetPhysValMonitoringTool::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ m_acc_hasTruthFilled
◆ m_acc_selectedByPileupSwitch
◆ m_bookHistogramsInitial
bool ManagedMonitorToolBase::m_bookHistogramsInitial |
|
privateinherited |
◆ m_d
Imp* ManagedMonitorToolBase::m_d |
|
privateinherited |
◆ m_dataType
◆ m_dataTypeStr
std::string ManagedMonitorToolBase::m_dataTypeStr |
|
protectedinherited |
◆ m_dec_hasTruthFilled
◆ m_dec_passedTrackSelection
◆ m_dec_passedTruthSelection
◆ m_dec_selectedByPileupSwitch
◆ m_defaultLBDuration
float ManagedMonitorToolBase::m_defaultLBDuration |
|
privateinherited |
◆ m_detailLevel
unsigned int ManagedMonitorToolBase::m_detailLevel |
|
protectedinherited |
◆ m_detStore
◆ m_dirName
StringProperty InDetPhysValMonitoringTool::m_dirName {this, "DirName", "SquirrelPlots/", "Top level directory to write histograms into"} |
|
private |
◆ m_doBjetPlots
BooleanProperty InDetPhysValMonitoringTool::m_doBjetPlots {this, "FillTrackInBJetPlots", false, "Fill plots for tracks in truth-b-tagged jets"} |
|
private |
◆ m_doDuplicatePlots
BooleanProperty InDetPhysValMonitoringTool::m_doDuplicatePlots {this, "doDuplicatePlots", false, "Fill duplicate=multi-track per particle plots"} |
|
private |
◆ m_doHitLevelPlots
BooleanProperty InDetPhysValMonitoringTool::m_doHitLevelPlots {this, "doHitLevelPlots", false, "Fill hit efficiency and residual plots"} |
|
private |
◆ m_doIDTIDEPlots
BooleanProperty InDetPhysValMonitoringTool::m_doIDTIDEPlots {this, "doIDTIDEPlots", false, "do ID TIDE derivation plots"} |
|
private |
◆ m_doPerAuthorPlots
BooleanProperty InDetPhysValMonitoringTool::m_doPerAuthorPlots {this, "doPerAuthorPlots", false, "do plots split by track author"} |
|
private |
◆ m_doPRW
BooleanProperty InDetPhysValMonitoringTool::m_doPRW {this,"doPRW",false,"apply pileup reweight"} |
|
private |
◆ m_doTrackInJetPlots
BooleanProperty InDetPhysValMonitoringTool::m_doTrackInJetPlots {this, "FillTrackInJetPlots", true, "Fill plots for tracks in jets"} |
|
private |
◆ m_doTRTExtensionPlots
BooleanProperty InDetPhysValMonitoringTool::m_doTRTExtensionPlots {this, "doTRTExtensionPlots", true, "do TRT extension plots"} |
|
private |
◆ m_doTruthOriginPlots
BooleanProperty InDetPhysValMonitoringTool::m_doTruthOriginPlots {this, "doTruthOriginPlots", false, "do plots split by track truth origin"} |
|
private |
◆ m_DQFilterTools
ToolHandleArray<IDQFilterTool> ManagedMonitorToolBase::m_DQFilterTools {this,"FilterTools",{}} |
|
protectedinherited |
◆ m_endOfEventsBlock
bool ManagedMonitorToolBase::m_endOfEventsBlock |
|
privateinherited |
◆ m_endOfLowStat
bool ManagedMonitorToolBase::m_endOfLowStat |
|
privateinherited |
◆ m_endOfLumiBlock
bool ManagedMonitorToolBase::m_endOfLumiBlock |
|
privateinherited |
◆ m_endOfRun
bool ManagedMonitorToolBase::m_endOfRun |
|
privateinherited |
◆ m_environment
◆ m_environmentStr
std::string ManagedMonitorToolBase::m_environmentStr |
|
protectedinherited |
◆ m_etaBins
Gaudi::Property<std::vector<double> > InDetPhysValMonitoringTool::m_etaBins {this, "EtaBins", {}} |
|
private |
◆ m_eventInfoContainerName
◆ m_evtStore
◆ m_fileKey
std::string ManagedMonitorToolBase::m_fileKey |
|
protectedinherited |
◆ m_fillTechnicalEfficiency
BooleanProperty InDetPhysValMonitoringTool::m_fillTechnicalEfficiency {this, "fillTechnicalEfficiency", false, "Fill the technical efficiency plot. Requires additional sihit information in input file"} |
|
private |
◆ m_fillTruthToRecoNtuple
BooleanProperty InDetPhysValMonitoringTool::m_fillTruthToRecoNtuple {this, "FillTruthToRecoNtuple", false, "Fill an ntuple with truth and matching reco info for more detailed stuidies"} |
|
private |
◆ m_floatTrkDecor
◆ m_floatTruthDecor
◆ m_folder
StringProperty InDetPhysValMonitoringTool::m_folder {this, "SubFolder", "", "Subfolder to add for plots if desired. Used when working with multiple IDPVM tool instances."} |
|
private |
◆ m_grlTool
◆ m_hardScatterSelectionTool
◆ m_haveClearedLastEventBlock
bool ManagedMonitorToolBase::m_haveClearedLastEventBlock |
|
protectedinherited |
◆ m_highProb
FloatProperty InDetPhysValMonitoringTool::m_highProb {this,"HighProb",0.8,"Truth match prob. cutoff - currently unused"} |
|
private |
◆ m_intJetDecor
◆ m_intTrkDecor
◆ m_intTruthDecor
◆ m_jetAbsEtaMax
Gaudi::Property<float> InDetPhysValMonitoringTool::m_jetAbsEtaMax |
|
private |
◆ m_jetAbsEtaMin
Gaudi::Property<float> InDetPhysValMonitoringTool::m_jetAbsEtaMin |
|
private |
◆ m_jetContainerName
◆ m_jetPtMax
Gaudi::Property<float> InDetPhysValMonitoringTool::m_jetPtMax |
|
private |
◆ m_jetPtMin
Gaudi::Property<float> InDetPhysValMonitoringTool::m_jetPtMin |
|
private |
◆ m_lastHigStatInterval
int ManagedMonitorToolBase::m_lastHigStatInterval |
|
protectedinherited |
◆ m_lastLowStatInterval
int ManagedMonitorToolBase::m_lastLowStatInterval |
|
protectedinherited |
◆ m_lastLumiBlock
unsigned int ManagedMonitorToolBase::m_lastLumiBlock |
|
protectedinherited |
◆ m_lastMedStatInterval
int ManagedMonitorToolBase::m_lastMedStatInterval |
|
protectedinherited |
◆ m_lastRun
unsigned int ManagedMonitorToolBase::m_lastRun |
|
protectedinherited |
◆ m_lbDurationDataKey
◆ m_lowProb
FloatProperty InDetPhysValMonitoringTool::m_lowProb {this,"LowProb",0.5,"Truth match prob. cutoff for efficiency (lower bound) and fake (upper bound) classification."} |
|
private |
◆ m_lumiDataKey
◆ m_lwhists
std::set<LWHist*> ManagedMonitorToolBase::m_lwhists |
|
protectedinherited |
◆ m_manager
◆ m_managerNameProp
std::string ManagedMonitorToolBase::m_managerNameProp |
|
protectedinherited |
◆ m_maxTrkJetDR
FloatProperty InDetPhysValMonitoringTool::m_maxTrkJetDR {this,"maxTrkJetDR",0.4,"the maximum dR to jets to allow for track-in-jet plots"} |
|
private |
◆ m_metadataMap
MDMap_t ManagedMonitorToolBase::m_metadataMap |
|
protectedinherited |
◆ m_minHits
Gaudi::Property<std::vector<int> > InDetPhysValMonitoringTool::m_minHits {this, "MinNumberClusters", {}} |
|
private |
◆ m_monPlots
std::unique_ptr< InDetRttPlots > InDetPhysValMonitoringTool::m_monPlots |
|
private |
◆ m_mutex
std::mutex InDetPhysValMonitoringTool::m_mutex |
|
mutableprivate |
◆ m_nEvents
unsigned int ManagedMonitorToolBase::m_nEvents |
|
protectedinherited |
◆ m_nEventsIgnoreTrigger
unsigned int ManagedMonitorToolBase::m_nEventsIgnoreTrigger |
|
protectedinherited |
◆ m_newEventsBlock
bool ManagedMonitorToolBase::m_newEventsBlock |
|
privateinherited |
◆ m_newHigStatInterval
bool ManagedMonitorToolBase::m_newHigStatInterval |
|
privateinherited |
◆ m_newLowStat
bool ManagedMonitorToolBase::m_newLowStat |
|
privateinherited |
◆ m_newLowStatInterval
bool ManagedMonitorToolBase::m_newLowStatInterval |
|
privateinherited |
◆ m_newLumiBlock
bool ManagedMonitorToolBase::m_newLumiBlock |
|
privateinherited |
◆ m_newMedStatInterval
bool ManagedMonitorToolBase::m_newMedStatInterval |
|
privateinherited |
◆ m_newRun
bool ManagedMonitorToolBase::m_newRun |
|
privateinherited |
◆ m_nLumiBlocks
unsigned int ManagedMonitorToolBase::m_nLumiBlocks |
|
protectedinherited |
◆ m_onlyFillMatched
BooleanProperty InDetPhysValMonitoringTool::m_onlyFillMatched {this, "onlyFillTruthMatched", false, "Only fill truth-to-reco (eff, reso, matched hit) plots"} |
|
private |
◆ m_path
std::string ManagedMonitorToolBase::m_path |
|
protectedinherited |
◆ m_pileupSwitch
StringProperty InDetPhysValMonitoringTool::m_pileupSwitch {this, "PileupSwitch", "HardScatter", "Pileup truth strategy to use. May be \"All\", \"HardScatter\", or \"PileUp\""} |
|
private |
◆ m_preScaleProp
long ManagedMonitorToolBase::m_preScaleProp |
|
protectedinherited |
◆ m_procNEventsProp
long ManagedMonitorToolBase::m_procNEventsProp |
|
protectedinherited |
◆ m_prospectsMatched
std::vector<int> InDetPhysValMonitoringTool::m_prospectsMatched |
|
private |
◆ m_streamNameFcn
◆ m_supportedIntervalsForRebooking
std::set<Interval_t> ManagedMonitorToolBase::m_supportedIntervalsForRebooking |
|
privateinherited |
◆ m_templateEfficiencies
std::map< Interval_t, std::vector< MgmtParams<TEfficiency> > > ManagedMonitorToolBase::m_templateEfficiencies |
|
protectedinherited |
◆ m_templateGraphs
◆ m_templateHistograms
◆ m_templateLWHistograms
◆ m_templateTrees
◆ m_THistSvc
◆ m_trackCutflow
std::vector<int> InDetPhysValMonitoringTool::m_trackCutflow |
|
private |
◆ m_trackCutflowNames
std::vector<std::string> InDetPhysValMonitoringTool::m_trackCutflowNames |
|
private |
◆ m_trackSelectionTool
◆ m_trackTruthOriginTool
◆ m_trigDecTool
◆ m_triggerChainProp
std::string ManagedMonitorToolBase::m_triggerChainProp |
|
protectedinherited |
◆ m_triggerGroupProp
std::string ManagedMonitorToolBase::m_triggerGroupProp |
|
protectedinherited |
◆ m_trigLiveFractionDataKey
◆ m_trigTranslator
PublicToolHandle<ITriggerTranslatorTool> ManagedMonitorToolBase::m_trigTranslator {this,"TriggerTranslatorTool",""} |
|
protectedinherited |
◆ m_trkParticleName
◆ m_truthCounter
int InDetPhysValMonitoringTool::m_truthCounter = 0 |
|
private |
◆ m_truthEventName
◆ m_truthParticleName
◆ m_truthPileUpEventName
◆ m_truthSelectionTool
◆ m_truthVertexContainerName
◆ m_useGRL
BooleanProperty InDetPhysValMonitoringTool::m_useGRL {this, "useGRL", false, "Apply GRL selection or not when running on data"} |
|
private |
◆ m_useLumi
bool ManagedMonitorToolBase::m_useLumi |
|
privateinherited |
◆ m_useTrackSelection
BooleanProperty InDetPhysValMonitoringTool::m_useTrackSelection {this, "useTrackSelection", false, "plot only tracks accepted by selection tool"} |
|
private |
◆ m_useTrigger
bool ManagedMonitorToolBase::m_useTrigger |
|
protectedinherited |
◆ m_useVertexTruthMatchTool
BooleanProperty InDetPhysValMonitoringTool::m_useVertexTruthMatchTool {this, "useVertexTruthMatchTool", false, "Use the vertex truth matching tool"} |
|
private |
◆ m_usingSpecialPileupSwitch
bool InDetPhysValMonitoringTool::m_usingSpecialPileupSwitch {false} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vertexContainerName
◆ m_vhka
◆ m_vTrigChainNames
std::vector<std::string> ManagedMonitorToolBase::m_vTrigChainNames |
|
protectedinherited |
◆ m_vTrigGroupNames
std::vector<std::string> ManagedMonitorToolBase::m_vTrigGroupNames |
|
protectedinherited |
◆ m_vtxValidTool
◆ m_weight_pileup_key
The documentation for this class was generated from the following files:
virtual LWHist * ownedLWHistOfKey(const std::string &key) const
JetConstituentVector::iterator iterator
virtual LWHist * writeAndDeleteLWHist(const std::string &key, const std::string &streamName)
int nVertices(const Polygon &p)
bool doResolutionsPerAuthor
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
bool isFake(int matchInfo)
bool doTrkInJetPlots_matched_bjets
bool doResolutionPlotSecd
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual LWHist * writeAndResetLWHist(const std::string &key, const std::string &streamName)
bool doHitsUnlinkedTracksPlots
bool doHardScatterVertexTruthMatchingPlots
static unsigned int runNumber()
bool doHardScatterVertexPlots
virtual std::string fileKey() const
StatusCode accept(const xAOD::Muon *mu)
virtual void passOwnership(TObject *h, const std::string &key)
Pass ownership of a TObject/LWHist to this manager so that it will be deleted appropriately.
std::vector< ALFA_RawDataCollection_p1 > t1
HardScatterType classifyHardScatter(const xAOD::VertexContainer &vxContainer)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
static void setStreamName(LWHist *, const std::string &streamName)
bool doTrkInJetPlots_unlinked_bjets
bool doTrkInJetPlots_truthFromB
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool empty() const
Test if the key is blank.
bool doTrkInJetPlots
Plots for tracks in jets.
bool doTrkInJetPlots_matched
@ IS_SIMULATION
true: simulation, false: data
static unsigned int getLBsLowStat()
void addReadDecoratorHandleKeys(T_Parent &parent, const SG::ReadHandleKey< T_Cont > &container_key, const std::string &prefix, const std::vector< std::string > &decor_names, std::vector< SG::ReadDecorHandleKey< T_Cont > > &decor_out)
virtual void setOwner(IDataHandleHolder *o)=0
static Environment_t environment()
Returns the running environment of the monitoring application to help ManagedMonitorToolBase objects ...
static const std::string & streamName(LWHist *)
static unsigned int getLBsMedStat()
bool usingROOTBackend() const
static void removeCustomData(LWHist *)
static DataType_t dataType()
Returns the data type that the monitoring application is running over to help ManagedMonitorToolBase ...
Handle class for reading a decoration on an object.
bool doTrkInJetPlots_bjets
float getMatchingProbability(const xAOD::TrackParticle &trackParticle)
static const std::string & key(LWHist *)
POOL::TEvent event(POOL::TEvent::kClassAccess)
::StatusCode StatusCode
StatusCode definition for legacy code.
helper struct - steer the configuration from the parent tool's side
bool doResolutionPlotPrim_truthFromB
bool doFakePlots
Fake plots (and unlinked)
Class describing a truth particle in the MC record.
virtual void writeAndDelete(const std::string &key)
If the TObject is owned by this manager, its Write() method is called and it is deleted.
Class describing a signal truth event in the MC record.
const xAOD::TruthParticle * getTruth(const xAOD::TrackParticle *const trackParticle)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
bool doTrkInJetPlots_fake_bjets
void fcn(int &, double *, double &result, double par[], int)
this is where we write out chi2
virtual bool isValid() override final
Can the handle be successfully dereferenced?
bool doEfficienciesPerAuthor
per author plots
bool doNtupleTruthToReco
Ntuple functionality.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Class describing a truth vertex in the MC record.
bool doHitsMatchedTracksPlots
bool doResolutionPlotPrim
Resolution and "matched track" plots - filled if both reco and truth exist.
static unsigned int getLBsHigStat()
bool doVertexTruthMatchingPlots
Vertexing plots - truth requirement.
static void setKey(LWHist *, const std::string &key)
bool doMissingTruthFakePlots
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
void setOwnsROOTHisto(bool b)
const PtrVector & stdcont() const
Return the underlying std::vector of the container.
bool doHitsRecoTracksPlots
std::vector< ALFA_RawDataContainer_p1 > t2
bool doEffPlots
Efficiency and duplicate plots - require truth, optionally matching reco
Class describing a Vertex.
bool doTrkInJetPlots_fake
int detailLevel
detail level (kept for compatibility)
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
bool doTrackParameters
Plots for (selected) tracks, not necessarily truth matched.
filelist
print ("Checking files %s..." % fullfile)
bool absEta(const xAOD::TauJet &tau, double &out)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
static unsigned int lumiBlockNumber()
Class describing a TrackParticle.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
setBGCode setTAP setLVL2ErrorBits bool
virtual TH1 * getROOTHistBase()=0
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
bool doVertexPlots
Vertexing plots - no truth requirement.
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
float beamSpotWeight() const
Weight for beam spot size reweighting.
bool doHitsFakeTracksPlots
bool doTrackParametersPerAuthor
bool eventType(EventType type) const
Check for one particular bitmask value.
float actualInteractionsPerCrossing() const
Average interactions per crossing for the current BCID - for in-time pile-up.
bool doTrkInJetPlots_unlinked