ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
MuonPhysValMonitoring::MuonPhysValMonitoringTool Class Reference

#include <MuonPhysValMonitoringTool.h>

Inheritance diagram for MuonPhysValMonitoring::MuonPhysValMonitoringTool:
Collaboration diagram for MuonPhysValMonitoring::MuonPhysValMonitoringTool:

Public Types

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

Public Member Functions

 MuonPhysValMonitoringTool (const std::string &type, const std::string &name, const IInterface *parent)
 Constructor with parameters: More...
 
virtual ~MuonPhysValMonitoringTool ()=default
 Destructor: More...
 
virtual StatusCode initialize () override
 
virtual StatusCode bookHistograms () override
 An inheriting class should either override this function or bookHists(). More...
 
virtual StatusCode fillHistograms () override
 An inheriting class should either override this function or fillHists(). More...
 
virtual StatusCode procHistograms () override
 An inheriting class should either override this function or finalHists(). More...
 
virtual StreamNameFcnstreamNameFunction ()
 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
 

Static Public Member Functions

static std::string intervalEnumToString (Interval_t interval)
 Converts a LevelOfDetail_t to a string of the same name. More...
 
static Interval_t intervalStringToEnum (const std::string &str)
 Converts a string to the corresponding Interval_t. More...
 
static const InterfaceID & interfaceID ()
 

Protected Types

typedef std::map< std::string, OutputMetadata * > MDMap_t
 

Protected Member Functions

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 StreamNameFcngetNewStreamNameFcn () 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...
 

Protected Attributes

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
 
AthenaMonManagerm_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
 
StreamNameFcnm_streamNameFcn
 
ServiceHandle< ITHistSvc > m_THistSvc
 
PublicToolHandle< Trig::ITrigDecisionToolm_trigDecTool {this, "TrigDecisionTool",""}
 
PublicToolHandle< ITriggerTranslatorToolm_trigTranslator {this,"TriggerTranslatorTool",""}
 
ToolHandleArray< IDQFilterToolm_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
 

Private Types

enum  MUCATEGORY {
  ALL = 0, PROMPT, INFLIGHT, NONISO,
  REST
}
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void handleMuon (const xAOD::Muon *mu, const xAOD::SlowMuon *smu=nullptr, float weight=1.0)
 
void handleSlowMuon (const xAOD::SlowMuon *smu, float weight=1.0)
 
void handleTruthMuon (const xAOD::TruthParticle *truthMu, float weight=1.0)
 
void handleMuonTrack (const xAOD::TrackParticle *tp, xAOD::Muon::TrackParticleType type, float weight=1.0)
 
void handleMuonSegment (const xAOD::MuonSegment *muSeg, float weight=1.0)
 
void handleTruthMuonSegment (const xAOD::MuonSegment *truthMuSeg, const xAOD::TruthParticleContainer *muonTruthContainer, float weight=1.0)
 
void handleMuonTrees (const xAOD::EventInfo *eventInfo, bool isData)
 
void handleMuonL1Trigger (const xAOD::MuonRoI *TrigL1mu)
 
void handleMuonL2Trigger (const xAOD::L2StandAloneMuon *L2SAMu)
 
void handleMuonL2Trigger (const xAOD::L2CombinedMuon *L2CBMu)
 
void handleMuonTrigger (const xAOD::Muon *mu)
 
void L2SATriggerResolution ()
 
void L2CBTriggerResolution ()
 
void EFTriggerResolution ()
 
void printMuonDebug (const xAOD::Muon *mu)
 
void printTruthMuonDebug (const xAOD::TruthParticle *truthMu, const xAOD::Muon *mu)
 
StatusCode bookValidationPlots (PlotBase &valPlots)
 
const xAOD::MuonfindRecoMuon (const xAOD::TruthParticle *truthMu)
 
const xAOD::SlowMuonfindRecoSlowMuon (const xAOD::TruthParticle *truthMu)
 
const xAOD::MuonSegmentfindRecoMuonSegment (const xAOD::MuonSegment *truthMuSeg)
 
std::unique_ptr< xAOD::MuongetCorrectedMuon (const xAOD::Muon &mu)
 
TH1FfindHistogram (const std::vector< HistData > &hists, const std::string &hnameTag, const std::string &hdirTag, const std::string &hNewName)
 
void modifyHistogram (TH1 *hist)
 
MuonPhysValMonitoringTool::MUCATEGORY getMuonSegmentTruthCategory (const xAOD::MuonSegment *truthMuSeg, const xAOD::TruthParticleContainer *muonTruthContainer)
 
MuonPhysValMonitoringTool::MUCATEGORY getMuonTruthCategory (const xAOD::IParticle *prt)
 
bool passesAcceptanceCuts (const xAOD::IParticle *prt)
 
void SplitString (TString x, const TString &delim, std::vector< TString > &v)
 
template<class T >
const T * getContainer (const std::string &containerName)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

const xAOD::TrackParticleContainerm_MSTracks {nullptr}
 
std::map< std::string, int > m_counterBits
 
std::vector< std::string > m_muonItems
 
std::vector< std::string > m_L1Seed
 
int m_SelectedAuthor {0}
 
Gaudi::Property< std::string > m_tracksName {this, "TrackContainerName", "InDetTrackParticles"}
 
Gaudi::Property< std::string > m_fwdtracksName {this, "FwdTrackContainerName", ""}
 
Gaudi::Property< std::string > m_muonsName {this, "MuonContainerName", "Muons"}
 
Gaudi::Property< std::string > m_slowMuonsName {this, "SlowMuonContainerName", "SlowMuons"}
 
Gaudi::Property< std::string > m_muonsTruthName {this, "MuonTruthParticleContainerName", "MuonTruthParticles"}
 
Gaudi::Property< std::string > m_muonTracksName {this, "MuonTrackContainerName", "MuonSpectrometerTrackParticles"}
 
Gaudi::Property< std::string > m_muonExtrapolatedTracksName
 
Gaudi::Property< std::string > m_muonMSOnlyExtrapolatedTracksName
 
Gaudi::Property< std::string > m_muonSegmentsName {this, "MuonSegmentContainerName", "MuonSegments"}
 
Gaudi::Property< std::string > m_muonSegmentsTruthName {this, "MuonTruthSegmentContainerName", "MuonTruthSegments"}
 
Gaudi::Property< std::string > m_muonL1TrigName {this, "L1TrigMuonContainerName", "LVL1MuonRoIs"}
 
Gaudi::Property< std::string > m_muonL2SAName {this, "L2SAMuonContainerName", "HLT_xAOD__L2StandAloneMuonContainer_MuonL2SAInfo"}
 
Gaudi::Property< std::string > m_muonL2CBName {this, "L2CBMuonContainerName", "HLT_xAOD__L2CombinedMuonContainer_MuonL2CBInfo"}
 
Gaudi::Property< std::string > m_muonEFCombTrigName {this, "EFCombTrigMuonContainerName", "HLT_xAOD__MuonContainer_MuonEFInfo"}
 
Gaudi::Property< std::vector< int > > m_selectMuonWPs
 
Gaudi::Property< std::vector< unsigned int > > m_selectMuonAuthors
 
Gaudi::Property< bool > m_selectComissioning {this, "SelectComissioningMuons", false}
 Flag to tell whether muons with the comissioning author will be selected or not. More...
 
Gaudi::Property< std::vector< std::vector< std::string > > > m_selectHLTMuonItems {this, "SelectHLTMuonItems", {}}
 
Gaudi::Property< std::vector< std::string > > m_L1MuonItems {this, "SelectL1MuonItems", {}}
 
Gaudi::Property< std::vector< unsigned int > > m_selectMuonCategories
 
Gaudi::Property< bool > m_doBinnedResolutionPlots {this, "DoBinnedResolutionPlots", true}
 
Gaudi::Property< bool > m_doTrigMuonValidation {this, "DoTrigMuonValidation", false}
 
Gaudi::Property< bool > m_doTrigMuonL1Validation {this, "DoTrigMuonL1Validation", false}
 
Gaudi::Property< bool > m_doTrigMuonL2Validation {this, "DoTrigMuonL2Validation", false}
 
Gaudi::Property< bool > m_doTrigMuonEFValidation {this, "DoTrigMuonEFValidation", false}
 
Gaudi::Property< bool > m_doMuonTree {this, "DoMuonTree", false}
 
Gaudi::Property< bool > m_isData {this, "IsData", false}
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfo {this, "EventInfo", "EventInfo", "event info"}
 
ToolHandle< CP::IMuonSelectionToolm_muonSelectionTool {this, "MuonSelector", "CP::MuonSelectionTool/MuonSelectionTool"}
 
ToolHandle< Rec::IMuonPrintingToolm_muonPrinter {this, "MuonPrinter", "Rec::MuonPrintingTool/MuonPrintingTool"}
 
ToolHandle< Trig::TrigDecisionToolm_trigDec {this, "TrigDecTool", "Trig::TrigDecisionTool/TrigDecisionTool"}
 
ToolHandle< Trk::ITrackSelectorToolm_trackSelector {this, "TrackSelector", "InDet::InDetDetailedTrackSelectorTool/MuonCombinedInDetDetailedTrackSelectorTool"}
 
ToolHandle< CP::IIsolationSelectionToolm_isoTool {this, "IsoTool", ""}
 
std::vector< std::string > m_selectMuonCategoriesStr
 
std::vector< std::unique_ptr< MuonValidationPlots > > m_muonValidationPlots
 
std::vector< std::unique_ptr< TriggerMuonValidationPlots > > m_TriggerMuonValidationPlots
 
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonMSTrackValidationPlots
 
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonMETrackValidationPlots
 
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonMSOnlyMETrackValidationPlots
 
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonIDTrackValidationPlots
 
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonIDSelectedTrackValidationPlots
 
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonIDForwardTrackValidationPlots
 
std::vector< std::unique_ptr< MuonSegmentValidationPlots > > m_muonSegmentValidationPlots
 
std::unique_ptr< Muon::RecoMuonPlotOrganizerm_oUnmatchedRecoMuonPlots
 
std::unique_ptr< Muon::TruthMuonPlotOrganizerm_oUnmatchedTruthMuonPlots
 
std::unique_ptr< Muon::RecoMuonTrackPlotOrganizerm_oUnmatchedRecoMuonTrackPlots
 
std::unique_ptr< Muon::MuonSegmentPlotsm_oUnmatchedRecoMuonSegmentPlots
 
std::vector< std::unique_ptr< SlowMuonValidationPlots > > m_slowMuonValidationPlots
 
std::vector< TH1F * > m_h_overview_nObjects
 
TH1Fm_h_overview_reco_category {nullptr}
 
std::vector< TH1F * > m_h_overview_reco_authors
 
TH1Fm_h_overview_Z_mass {nullptr}
 
TH1Fm_h_overview_Z_mass_ME {nullptr}
 
TH1Fm_h_overview_Z_mass_ID {nullptr}
 
std::vector< const xAOD::TruthParticle * > m_vMatchedTruthMuons
 
std::vector< const xAOD::Muon * > m_vMatchedMuons
 
std::vector< const xAOD::SlowMuon * > m_vMatchedSlowMuons
 
std::vector< const xAOD::TrackParticle * > m_vMatchedMuonTracks
 
std::vector< const xAOD::MuonSegment * > m_vMatchedMuonSegments
 
std::vector< const xAOD::TrackParticle * > m_vZmumuIDTracks
 
std::vector< const xAOD::TrackParticle * > m_vZmumuMETracks
 
std::vector< const xAOD::Muon * > m_vZmumuMuons
 
std::vector< const xAOD::Muon * > m_vEFMuons
 
std::vector< const xAOD::Muon * > m_vEFMuonsSelected
 
std::vector< const xAOD::L2StandAloneMuon * > m_vL2SAMuons
 
std::vector< const xAOD::L2StandAloneMuon * > m_vL2SAMuonsSelected
 
std::vector< const xAOD::L2CombinedMuon * > m_vL2CBMuons
 
std::vector< const xAOD::L2CombinedMuon * > m_vL2CBMuonsSelected
 
std::vector< const xAOD::Muon * > m_vRecoMuons
 
std::vector< const xAOD::Muon * > m_vRecoMuons_EffDen_CB
 
std::vector< const xAOD::Muon * > m_vRecoMuons_EffDen_MS
 
std::vector< const xAOD::Muon * > m_vRecoMuons_EffDen
 
bool m_newLowStatInterval
 
bool m_newMedStatInterval
 
bool m_newHigStatInterval
 
bool m_newLowStat
 
bool m_newLumiBlock
 
bool m_newRun
 
bool m_newEventsBlock
 
bool m_endOfEventsBlock
 
bool m_endOfLowStat
 
bool m_endOfLumiBlock
 
bool m_endOfRun
 
SG::ReadCondHandleKey< LuminosityCondDatam_lumiDataKey {this,"LuminosityCondDataKey","LuminosityCondData","SG Key of LuminosityCondData object"}
 
SG::ReadCondHandleKey< LBDurationCondDatam_lbDurationDataKey {this,"LBDurationCondDataKey","LBDurationCondData","SG Key of LBDurationCondData object"}
 
SG::ReadCondHandleKey< TrigLiveFractionCondDatam_trigLiveFractionDataKey {this,"TrigLiveFractionCondDataKey","TrigLiveFractionCondData","SG Key of TrigLiveFractionCondData object"}
 
bool m_bookHistogramsInitial
 
bool m_useLumi
 
float m_defaultLBDuration
 
std::set< Interval_tm_supportedIntervalsForRebooking
 
Impm_d
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 57 of file MuonPhysValMonitoringTool.h.

Member Typedef Documentation

◆ MDMap_t

typedef std::map<std::string,OutputMetadata*> ManagedMonitorToolBase::MDMap_t
protectedinherited

Definition at line 888 of file ManagedMonitorToolBase.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

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

114  { file = 0, eventsBlock, lumiBlock,
116  run, fill, all };

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

◆ MUCATEGORY

Enumerator
ALL 
PROMPT 
INFLIGHT 
NONISO 
REST 

Definition at line 80 of file MuonPhysValMonitoringTool.h.

80 { ALL = 0, PROMPT, INFLIGHT, NONISO, REST };

Constructor & Destructor Documentation

◆ MuonPhysValMonitoringTool()

MuonPhysValMonitoring::MuonPhysValMonitoringTool::MuonPhysValMonitoringTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Constructor with parameters:

Definition at line 65 of file MuonPhysValMonitoringTool.cxx.

65  :
67  m_counterBits(),
68  m_muonItems(),
69  m_L1Seed() {
70  }

◆ ~MuonPhysValMonitoringTool()

virtual MuonPhysValMonitoring::MuonPhysValMonitoringTool::~MuonPhysValMonitoringTool ( )
virtualdefault

Destructor:

Member Function Documentation

◆ bookHistograms()

StatusCode MuonPhysValMonitoring::MuonPhysValMonitoringTool::bookHistograms ( )
overridevirtual

An inheriting class should either override this function or bookHists().

Reimplemented from ManagedMonitorToolBase.

Definition at line 104 of file MuonPhysValMonitoringTool.cxx.

104  {
105  ATH_MSG_INFO("Booking hists " << name() << "...");
106 
107  if (m_selectMuonWPs.size() == 1 && m_selectMuonWPs[0] < 0) m_selectMuonWPs.clear();
108 
109  if (m_selectMuonAuthors.size() == 1 && m_selectMuonAuthors[0] == 0) m_selectMuonAuthors.clear();
110 
111  static const std::map<int,std::string> theMuonCategories = {
112  {ALL, "All"},
113  {PROMPT, "Prompt"},
114  {INFLIGHT, "InFlight"},
115  {NONISO, "NonIsolated"},
116  {REST, "Rest"}
117  };
118 
119  for (const auto& category : m_selectMuonCategories) m_selectMuonCategoriesStr.emplace_back(theMuonCategories.at(category));
120 
121  // no such muons in case of SlowMuon reco
122  bool separateSAFMuons = m_slowMuonsName.empty();
123 
124  std::string muonContainerName = m_muonsName;
125  for (const auto& category : m_selectMuonCategoriesStr) {
126  std::string categoryPath = m_muonsName + "/" + category + "/";
127 
128  m_muonValidationPlots.emplace_back(std::make_unique<MuonValidationPlots>(
129  nullptr, categoryPath, m_selectMuonWPs, m_selectMuonAuthors, m_isData,
130  (category == theMuonCategories.at(ALL) ? false : m_doBinnedResolutionPlots.value()), separateSAFMuons, m_doMuonTree));
131 
132  if (!m_slowMuonsName.empty()) m_slowMuonValidationPlots.emplace_back(std::make_unique<SlowMuonValidationPlots>(nullptr, categoryPath, m_isData));
134  if (category == "All") {
135  m_TriggerMuonValidationPlots.emplace_back(std::make_unique<TriggerMuonValidationPlots>(
138  }
139  }
140  if (!m_muonTracksName.empty()) {
141  m_muonMSTrackValidationPlots.emplace_back(std::make_unique<MuonTrackValidationPlots>(nullptr, categoryPath, "MSTrackParticles", m_isData));
142  if (!m_isData)
143  m_oUnmatchedRecoMuonTrackPlots = std::make_unique<Muon::RecoMuonTrackPlotOrganizer>(nullptr, muonContainerName + "/UnmatchedRecoMuonTracks/");
144  }
145  if (!m_muonExtrapolatedTracksName.empty())
146  m_muonMETrackValidationPlots.emplace_back(std::make_unique<MuonTrackValidationPlots>(nullptr, categoryPath, "METrackParticles", m_isData));
149  std::make_unique<MuonTrackValidationPlots>(nullptr, categoryPath, "MSOnlyMETrackParticles", m_isData));
150 
151  if (!m_tracksName.empty()) {
152  m_muonIDTrackValidationPlots.emplace_back(std::make_unique<MuonTrackValidationPlots>(nullptr, categoryPath, "IDTrackParticles", m_isData));
154  std::make_unique<MuonTrackValidationPlots>(nullptr, categoryPath, "IDSelectedTrackParticles", m_isData));
155  }
156  if (!m_fwdtracksName.empty())
158  std::make_unique<MuonTrackValidationPlots>(nullptr, categoryPath, "IDForwardTrackParticles", m_isData));
159 
160  if (!m_muonSegmentsName.empty()) {
161  if (category != theMuonCategories.at(ALL)) continue; // cannot identify the truth origin of segments...
162  m_muonSegmentValidationPlots.emplace_back(std::make_unique<MuonSegmentValidationPlots>(nullptr, categoryPath, m_isData));
163  if (!m_isData)
165  new Muon::MuonSegmentPlots(nullptr, Form("%s/UnmatchedRecoMuonSegments/", muonContainerName.c_str())));
166  }
167  }
168 
169  if (!m_isData) {
170  m_oUnmatchedRecoMuonPlots = std::make_unique<Muon::RecoMuonPlotOrganizer>(nullptr, muonContainerName +"/UnmatchedRecoMuons/");
171  m_oUnmatchedTruthMuonPlots = std::make_unique<Muon::TruthMuonPlotOrganizer>(nullptr, muonContainerName +"/UnmatchedTruthMuons/");
172  }
173 
174  for (const auto& plots : m_muonValidationPlots) bookValidationPlots(*plots).ignore();
175  for (const auto& plots : m_slowMuonValidationPlots) bookValidationPlots(*plots).ignore();
176  for (const auto& plots : m_TriggerMuonValidationPlots) bookValidationPlots(*plots).ignore();
177  for (const auto& plots : m_muonIDTrackValidationPlots) bookValidationPlots(*plots).ignore();
178  for (const auto& plots : m_muonIDSelectedTrackValidationPlots) bookValidationPlots(*plots).ignore();
179  for (const auto& plots : m_muonIDForwardTrackValidationPlots) bookValidationPlots(*plots).ignore();
180  for (const auto& plots : m_muonMSTrackValidationPlots) bookValidationPlots(*plots).ignore();
181  for (const auto& plots : m_muonMETrackValidationPlots) bookValidationPlots(*plots).ignore();
182  for (const auto& plots : m_muonMSOnlyMETrackValidationPlots) bookValidationPlots(*plots).ignore();
183  if (!m_isData) {
184  bookValidationPlots(*m_oUnmatchedRecoMuonPlots).ignore();
185  bookValidationPlots(*m_oUnmatchedTruthMuonPlots).ignore();
186  if (m_oUnmatchedRecoMuonTrackPlots) bookValidationPlots(*m_oUnmatchedRecoMuonTrackPlots).ignore();
187  for (const auto& plots : m_muonSegmentValidationPlots) bookValidationPlots(*plots).ignore();
188  if (m_oUnmatchedRecoMuonSegmentPlots) bookValidationPlots(*m_oUnmatchedRecoMuonSegmentPlots).ignore();
189  }
190  // book overview hists
191  m_h_overview_Z_mass = new TH1F(Form("%s_Overview_Z_mass", muonContainerName.c_str()), "", 20, 76, 106);
192  ATH_CHECK(regHist(m_h_overview_Z_mass, Form("%s/Overview", muonContainerName.c_str()), all));
193  m_h_overview_Z_mass_ME = new TH1F(Form("%s_Overview_Z_mass_ME", muonContainerName.c_str()), "", 20, 76, 106);
194  ATH_CHECK(regHist(m_h_overview_Z_mass_ME, Form("%s/Overview", muonContainerName.c_str()), all));
195  m_h_overview_Z_mass_ID = new TH1F(Form("%s_Overview_Z_mass_ID", muonContainerName.c_str()), "", 20, 76, 106);
196  ATH_CHECK(regHist(m_h_overview_Z_mass_ID, Form("%s/Overview", muonContainerName.c_str()), all));
197 
198  m_h_overview_nObjects.clear();
199  m_h_overview_nObjects.emplace_back(new TH1F(Form("%s_Overview_N_perevent_truth_muons", muonContainerName.c_str()),
200  "Number of truth Muons per event", 20, -0.5, 19.5));
201  m_h_overview_nObjects.emplace_back(
202  new TH1F(Form("%s_Overview_N_perevent_muons", muonContainerName.c_str()), "Number of Muons per event", 20, -0.5, 19.5));
203  m_h_overview_nObjects.emplace_back(
204  new TH1F(Form("%s_Overview_N_perevent_tracks", muonContainerName.c_str()), "Number of Tracks per event", 50, -0.5, 49.5));
205  m_h_overview_nObjects.emplace_back(new TH1F(Form("%s_Overview_N_perevent_truth_segments", muonContainerName.c_str()),
206  "Number of truth Segments per event", 200, -0.5, 199.5));
207  m_h_overview_nObjects.emplace_back(
208  new TH1F(Form("%s_Overview_N_perevent_segments", muonContainerName.c_str()), "Number of Segments per event", 200, -0.5, 199.5));
209  for (const auto& hist : m_h_overview_nObjects) {
210  if (hist) ATH_CHECK(regHist(hist, Form("%s/Overview", muonContainerName.c_str()), all));
211  }
212 
214  new TH1F(Form("%s_Overview_reco_category", muonContainerName.c_str()), "", 4, 0, 4); // prompt/in-flight/non-isolated/other
215  for (int i = 1; i < 4; i++) { // skip 'All'
216  m_h_overview_reco_category->GetXaxis()->SetBinLabel(i, theMuonCategories.at(i).c_str());
217  }
218  m_h_overview_reco_category->GetXaxis()->SetBinLabel(4, "Other"); // of some other origin or fakes
219  ATH_CHECK(regHist(m_h_overview_reco_category, Form("%s/Overview", muonContainerName.c_str()), all));
220 
222  for (int i = 1; i < 4; i++) {
223  m_h_overview_reco_authors.emplace_back(new TH1F((m_muonsName + "_" + theMuonCategories.at(i) + "_reco_authors").c_str(),
224  (muonContainerName + "_" + theMuonCategories.at(i) + "_reco_authors").c_str(),
225  nAuth + 1, -0.5, nAuth + 0.5));
226  }
227  m_h_overview_reco_authors.emplace_back(new TH1F((m_muonsName + "_Overview_Other_reco_authors").c_str(),
228  (muonContainerName + "_Other_reco_authors").c_str(), nAuth + 1, -0.5, nAuth + 0.5));
229 
230  for (const auto& hist : m_h_overview_reco_authors) {
231  if (hist) ATH_CHECK(regHist(hist, Form("%s/Overview", muonContainerName.c_str()), all));
232  }
233 
234  return StatusCode::SUCCESS;
235  }//bookHistograms*/

◆ bookHistogramsRecurrent()

StatusCode ManagedMonitorToolBase::bookHistogramsRecurrent ( )
virtualinherited

◆ bookHists()

StatusCode ManagedMonitorToolBase::bookHists ( )
virtualinherited

Calls bookHists( true, true, true ) and initializes lumiBlock and run numbers.

Implements IMonitorToolBase.

Reimplemented in TileRawChannelMonTool, and TileDigitsMonTool.

Definition at line 782 of file ManagedMonitorToolBase.cxx.

784 {
785  // The Run/LumiBlock numbers are not set when beginRun() is called. Therefore,
786  // book histograms on the first call to fillHists(), which is called from execute().
787  return StatusCode::SUCCESS;
788 }

◆ bookValidationPlots()

StatusCode MuonPhysValMonitoring::MuonPhysValMonitoringTool::bookValidationPlots ( PlotBase valPlots)
private

Definition at line 237 of file MuonPhysValMonitoringTool.cxx.

237  {
238  valPlots.initialize();
239  std::vector<HistData> hists = valPlots.retrieveBookedHistograms();
240 
241  for (auto& hist : hists) {
242  TString sHistName = hist.first->GetName();
243  ATH_MSG_VERBOSE("Initializing " << hist.first << " " << sHistName << " " << hist.second << "...");
244 
245  // check for histograms that are useless and skip regHist:
246  if (sHistName.Contains("momentumPulls")) {
247  if (sHistName.Contains(Muon::EnumDefs::toString(xAOD::Muon::MuidSA))) continue; // empty for standalone muons
248  if (!(sHistName.Contains("Prompt") && (sHistName.Contains("AllMuons") || sHistName.Contains("SiAssocForward"))))
249  continue; // don't need binned eloss plots for separate muon types, keep only for Prompt AllMuons
250  }
251  if ((sHistName.Contains("resolution") || sHistName.Contains("pulls")) && !sHistName.Contains("Prompt"))
252  continue; // don't need resolution plots except for prompt muons
253  if (sHistName.Contains("trigger") && sHistName.Contains("wrt") && sHistName.Contains("Features")) continue;
254  modifyHistogram(hist.first);
255  ATH_CHECK(regHist(hist.first, hist.second, all));
256  }
257 
258  // register trees
259  std::vector<TreeData> trees = valPlots.retrieveBookedTrees();
260  for (auto& tree : trees) {
261  std::string sTreeName = tree.first->GetName();
262  ATH_MSG_VERBOSE("Initializing " << tree.first << " " << sTreeName << " " << tree.second << "...");
263  ATH_CHECK(regTree(tree.first, tree.second, all));
264  }
265 
266  return StatusCode::SUCCESS;
267  }

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

1903 {
1904  // Histograms will be checked using the data-quality monitoring framework (DQMF)
1905 
1906  return StatusCode::SUCCESS;
1907 }

◆ convertLWHists()

StatusCode ManagedMonitorToolBase::convertLWHists ( )
virtualinherited

Deal with the LW histograms.

Implements IMonitorToolBase.

Definition at line 1377 of file ManagedMonitorToolBase.cxx.

1379 {
1380  // note that managed histograms will be converted by regMonitoredLWHistograms
1381  // hence they are not in m_lwhists
1382  if (m_manager) {
1384  for (;it!=itE;++it)
1386  m_lwhists.clear();
1387  }
1388  return StatusCode::SUCCESS;
1389 
1390 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ deregGraph()

StatusCode ManagedMonitorToolBase::deregGraph ( TGraph *  g)
virtualinherited

De-registers a TGraph from the THistSvc, but does NOT delete the object.

Definition at line 1843 of file ManagedMonitorToolBase.cxx.

1845 {
1846  return m_THistSvc->deReg( g );
1847 }

◆ deregHist() [1/2]

StatusCode ManagedMonitorToolBase::deregHist ( LWHist h)
virtualinherited

Definition at line 1826 of file ManagedMonitorToolBase.cxx.

1827 {
1829  if (it==m_lwhists.end())
1830  return StatusCode::FAILURE;
1832  m_lwhists.erase(it);
1833  if (h->usingROOTBackend()) {
1834  h->setOwnsROOTHisto(true);
1835  return m_THistSvc->deReg( h->getROOTHistBase() );
1836  }
1837 
1838  return StatusCode::SUCCESS;
1839 }

◆ deregHist() [2/2]

StatusCode ManagedMonitorToolBase::deregHist ( TH1 h)
virtualinherited

De-registers a TH1 from the THistSvc, but does NOT delete the object.

Definition at line 1819 of file ManagedMonitorToolBase.cxx.

1821 {
1822  return m_THistSvc->deReg( h );
1823 }

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

1863 {
1864  std::string streamName = streamNameFunction()->getStreamName( this, group, objName );
1866  for (;it!=itE;++it) {
1867  LWHist * hlw = *it;
1868  if (LWHistAthMonWrapper::key(hlw)==objName) {
1869  m_lwhists.erase(it);
1870  if (hlw->usingROOTBackend()) {
1871  hlw->setOwnsROOTHisto(true);
1872  return m_THistSvc->deReg( hlw->getROOTHistBase() );
1873  }
1874  return StatusCode::SUCCESS;
1875  }
1876  }
1877  return m_THistSvc->deReg( streamName );
1878 }

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

1854 {
1855  MonGroup group( this, system, interval );
1856  return deregObject( objName, group );
1857 }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ EFTriggerResolution()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::EFTriggerResolution ( )
private

Definition at line 1240 of file MuonPhysValMonitoringTool.cxx.

1240  {
1241  int k_EFMu_MinDeltaR = -1;
1242  float MinDeltaR = 0.;
1243  std::vector<int> vAvailableAuthors;
1244  vAvailableAuthors.clear();
1245  vAvailableAuthors.emplace_back(m_vEFMuons[0]->author());
1246  unsigned int iter = 0;
1247  for (unsigned int k = 0; k < m_vEFMuons.size(); k++) {
1248  iter = 0;
1249  for (unsigned int l = 0; l < vAvailableAuthors.size(); l++) {
1250  if (m_vEFMuons[k]->author() != vAvailableAuthors[l]) iter++;
1251  }
1252  if (iter == vAvailableAuthors.size()) vAvailableAuthors.emplace_back(m_vEFMuons[k]->author());
1253  }
1254  ATH_MSG_DEBUG(" m_vEFMuons.size()" << m_vEFMuons.size());
1255  for (unsigned int i = 0; i < m_vRecoMuons.size(); i++) {
1256  ATH_MSG_DEBUG(":: TEST: listing all Recomu pt=" << m_vRecoMuons.at(i)->pt() << " eta=" << m_vRecoMuons.at(i)->eta() << " phi="
1257  << m_vRecoMuons.at(i)->phi() << " auth=" << m_vRecoMuons.at(i)->author());
1258  }
1259  for (unsigned int i = 0; i < m_vRecoMuons.size(); i++) {
1260  if ((m_vRecoMuons.at(i)->author() != 1) || (std::abs(m_vRecoMuons.at(i)->eta()) > 2.4)) continue;
1261  ATH_MSG_DEBUG(":::: TEST: Recomu pt=" << m_vRecoMuons.at(i)->pt() << " eta=" << m_vRecoMuons.at(i)->eta()
1262  << " phi=" << m_vRecoMuons.at(i)->phi() << " auth=" << m_vRecoMuons.at(i)->author());
1263  for (unsigned int l = 0; l < vAvailableAuthors.size(); l++) {
1264  k_EFMu_MinDeltaR = -1;
1265  MinDeltaR = 1000;
1266  for (unsigned int k = 0; k < m_vEFMuons.size(); k++) {
1267  ATH_MSG_DEBUG(" :::::::: TEST: EF pt=" << m_vEFMuons.at(k)->pt() << " eta=" << m_vEFMuons.at(k)->eta()
1268  << " phi=" << m_vEFMuons.at(k)->phi()
1269  << " DeltaR=" << deltaR(m_vRecoMuons.at(i), m_vEFMuons.at(k))
1270  << " author=" << m_vEFMuons.at(k)->author());
1271  if (m_vEFMuons.at(k)->author() == vAvailableAuthors.at(l) &&
1272  (deltaR(m_vRecoMuons.at(i), m_vEFMuons.at(k)) < 0.1 &&
1273  (deltaR(m_vRecoMuons.at(i), m_vEFMuons.at(k)) < MinDeltaR))) {
1274  k_EFMu_MinDeltaR = k;
1275  MinDeltaR = deltaR(m_vRecoMuons.at(i), m_vEFMuons.at(k));
1276  }
1277  }
1278  if (k_EFMu_MinDeltaR == -1) continue;
1279  for (unsigned int c = 0; c < m_selectMuonCategories.size(); c++) {
1280  if (m_selectMuonCategories[c] == ALL) {
1281  m_TriggerMuonValidationPlots[c]->fill(*m_vEFMuons.at(k_EFMu_MinDeltaR), *m_vRecoMuons.at(i));
1282  }
1283  }
1284  }
1285  }
1286  }

◆ endOfEventsBlockFlag()

bool ManagedMonitorToolBase::endOfEventsBlockFlag ( ) const
inlineprotectedinherited

Definition at line 856 of file ManagedMonitorToolBase.h.

856 { return m_endOfEventsBlock; }

◆ endOfLowStatFlag()

bool ManagedMonitorToolBase::endOfLowStatFlag ( ) const
inlineprotectedinherited

Definition at line 857 of file ManagedMonitorToolBase.h.

857 { return m_endOfLowStat; }

◆ endOfLumiBlockFlag()

bool ManagedMonitorToolBase::endOfLumiBlockFlag ( ) const
inlineprotectedinherited

Definition at line 858 of file ManagedMonitorToolBase.h.

858 { return m_endOfLumiBlock; }

◆ endOfRunFlag()

bool ManagedMonitorToolBase::endOfRunFlag ( ) const
inlineprotectedinherited

Definition at line 859 of file ManagedMonitorToolBase.h.

859 { return m_endOfRun; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

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

◆ fillHistograms()

StatusCode MuonPhysValMonitoring::MuonPhysValMonitoringTool::fillHistograms ( )
overridevirtual

An inheriting class should either override this function or fillHists().

Reimplemented from ManagedMonitorToolBase.

Definition at line 269 of file MuonPhysValMonitoringTool.cxx.

269  {
270  ATH_MSG_DEBUG("Filling hists " << name() << "...");
271  m_vMatchedTruthMuons.clear();
272  m_vMatchedMuons.clear();
273  m_vMatchedSlowMuons.clear();
274  m_vMatchedMuonTracks.clear();
275  m_vMatchedMuonSegments.clear();
276  m_vZmumuIDTracks.clear();
277  m_vZmumuMETracks.clear();
278  m_vZmumuMuons.clear();
279  m_vEFMuons.clear();
280  m_vEFMuonsSelected.clear();
281  m_vL2SAMuons.clear();
282  m_vL2SAMuonsSelected.clear();
283  m_vL2CBMuons.clear();
284  m_vL2CBMuonsSelected.clear();
285  m_vRecoMuons.clear();
286  m_vRecoMuons_EffDen.clear();
287  m_vRecoMuons_EffDen_CB.clear();
288  m_vRecoMuons_EffDen_MS.clear();
289 
291  if (!eventInfoHandle.isValid()) {
292  ATH_MSG_WARNING("Could not retrieve EventInfo, returning");
293  return StatusCode::SUCCESS;
294  }
295  const xAOD::EventInfo* eventInfo = eventInfoHandle.cptr();
297  float beamSpotWeight = eventInfo->beamSpotWeight();
298 
299  const xAOD::TruthParticleContainer* TruthMuons(nullptr);
300 
301  if (!m_isData) {
302  TruthMuons = evtStore()->tryConstRetrieve<xAOD::TruthParticleContainer>(m_muonsTruthName);
303  if (!TruthMuons) {
304  ATH_MSG_ERROR("Couldn't retrieve TruthMuons container with key: " << m_muonsTruthName);
305  return StatusCode::FAILURE;
306  }
307  ATH_MSG_DEBUG("Retrieved truth muons " << TruthMuons->size());
308  m_h_overview_nObjects[0]->Fill(TruthMuons->size(), beamSpotWeight);
309  }
310 
311  const xAOD::MuonContainer* Muons = nullptr;
312  const xAOD::SlowMuonContainer* SlowMuons = nullptr;
313  if (!m_slowMuonsName.empty()) {
314  SlowMuons = getContainer<xAOD::SlowMuonContainer>(m_slowMuonsName);
315  if (!SlowMuons) {
316  ATH_MSG_WARNING("Couldn't retrieve SlowMuons container with key: " << m_slowMuonsName);
317  return StatusCode::SUCCESS;
318  }
319  ATH_MSG_DEBUG("Retrieved slow muons " << SlowMuons->size());
320  m_h_overview_nObjects[1]->Fill(SlowMuons->size(), beamSpotWeight);
321  } else {
322  Muons = getContainer<xAOD::MuonContainer>(m_muonsName);
323  if (!Muons) { return StatusCode::SUCCESS; }
324  ATH_MSG_DEBUG("Retrieved muons " << Muons->size());
325  m_h_overview_nObjects[1]->Fill(Muons->size(), beamSpotWeight);
326  }
327 
329  // @@@ Temp hack to get the MuonSpectrometerTrackParticle (@MS Entry, not extrapolated), needed for eloss plots
330  // Remove when the link to the real MuonSpectrometerTrackParticle appears in the xAOD muon
331  if (evtStore()->contains<xAOD::TrackParticleContainer>("MuonSpectrometerTrackParticles")) {
332  m_MSTracks = getContainer<xAOD::TrackParticleContainer>("MuonSpectrometerTrackParticles");
333  if (!m_MSTracks) {
334  ATH_MSG_WARNING("Couldn't retrieve MS Tracks container");
335  return StatusCode::SUCCESS;
336  } else
337  ATH_MSG_DEBUG("Retrieved muon tracks " << m_MSTracks->size());
338  } else
339  ATH_MSG_DEBUG("Couldn't find MS Tracks container");
340 
342 
343  // Do resonance selection
344  std::vector<std::pair<const xAOD::Muon*, const xAOD::Muon*> > pairs;
345  if (Muons) {
346  // Use iterator loop to avoid double counting
347  for (xAOD::MuonContainer::const_iterator mu1_itr = Muons->begin(); mu1_itr != Muons->end(); ++mu1_itr) {
348  const xAOD::Muon* mu1 = (*mu1_itr);
349  if (!m_selectComissioning && mu1->allAuthors() & comm_bit) continue;
350  for (xAOD::MuonContainer::const_iterator mu2_itr = Muons->begin(); mu2_itr != mu1_itr; ++mu2_itr) {
351  const xAOD::Muon* mu2 = (*mu2_itr);
352  if (!m_selectComissioning && mu2->allAuthors() & comm_bit) continue;
353  if (mu1->charge() * mu2->charge() >= 0) continue;
354  pairs.emplace_back(std::make_pair(mu1, mu2));
355  }
356  }
357  }
358 
359  float dMmin {1e10}, mZ{0.};
360  for (std::pair<const xAOD::Muon*, const xAOD::Muon*>& x : pairs) {
361  // select best Z
362  const TLorentzVector mu1{x.first->p4()}, mu2{x.second->p4()};
363  const float M = (mu1 + mu2).M();
364  if (M < 66000. || M > 116000.) continue;
365 
366  // choose the Z candidate closest to the Z pole - if multiple exist
367  float dM = std::abs(M - 91187.);
368  if (dM > dMmin) continue;
369  dMmin = dM;
370  mZ = M;
371 
372  m_vZmumuMuons.clear();
373  m_vZmumuMuons.emplace_back(x.first);
374  m_vZmumuMuons.emplace_back(x.second);
375  }
376 
377  if (m_vZmumuMuons.size() == 2) {
378  m_h_overview_Z_mass->Fill(mZ / 1000., beamSpotWeight);
379 
380  const xAOD::TrackParticle* metr1 = m_vZmumuMuons[0]->trackParticle(xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle);
381  const xAOD::TrackParticle* metr2 = m_vZmumuMuons[1]->trackParticle(xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle);
382  if (metr1 && metr2) {
383  const TLorentzVector mu1ME{metr1->p4()}, mu2ME{metr2->p4()};
384  m_h_overview_Z_mass_ME->Fill((mu1ME + mu2ME).M() / 1000., beamSpotWeight);
385  if (m_isData) {
386  m_vZmumuMETracks.clear();
387  m_vZmumuMETracks.emplace_back(metr1);
388  m_vZmumuMETracks.emplace_back(metr2);
389  }
390  }
391 
392  const xAOD::TrackParticle* tr1 = m_vZmumuMuons[0]->trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
393  const xAOD::TrackParticle* tr2 = m_vZmumuMuons[1]->trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
394  if (tr1 && tr2) {
395  const TLorentzVector mu1ID{tr1->p4()}, mu2ID{tr2->p4()};
396  m_h_overview_Z_mass_ID->Fill((mu1ID + mu2ID).M() / 1000., beamSpotWeight);
397  if (m_isData) {
398  m_vZmumuIDTracks.clear();
399  m_vZmumuIDTracks.emplace_back(tr1);
400  m_vZmumuIDTracks.emplace_back(tr2);
401  }
402  }
403  }
404 
405  if (!m_isData) {
406  for (const auto truthMu : *TruthMuons) handleTruthMuon(truthMu, beamSpotWeight);
407  }
408 
409  if (SlowMuons) {
410  for (const auto smu : *SlowMuons) {
411  if (!smu) continue;
412  const MuonLink link = smu->muonLink();
413  if (!link.isValid()) continue;
414  handleMuon(*link, smu, beamSpotWeight);
415  }
416  } else if (Muons) {
417  for (const auto mu : *Muons) handleMuon(mu, nullptr, beamSpotWeight);
418  }
419 
420  if (m_doMuonTree) { handleMuonTrees(eventInfo, m_isData); }
421 
422  if (!m_tracksName.empty()) {
423  auto IDTracks = getContainer<xAOD::TrackParticleContainer>(m_tracksName);
424  if (!IDTracks) return StatusCode::FAILURE;
425  ATH_MSG_DEBUG("handling " << IDTracks->size() << " " << m_tracksName);
426  for (const auto tp : *IDTracks) handleMuonTrack(tp, xAOD::Muon::InnerDetectorTrackParticle, beamSpotWeight);
427  }
428  if (!m_fwdtracksName.empty()) {
429  auto FwdIDTracks = getContainer<xAOD::TrackParticleContainer>(m_fwdtracksName);
430  if (!FwdIDTracks) return StatusCode::FAILURE;
431  ATH_MSG_DEBUG("handling " << FwdIDTracks->size() << " " << m_fwdtracksName);
432  for (const auto tp : *FwdIDTracks) handleMuonTrack(tp, xAOD::Muon::InnerDetectorTrackParticle, beamSpotWeight);
433  }
434  if (!m_muonTracksName.empty()) {
435  auto MuonTracks = getContainer<xAOD::TrackParticleContainer>(m_muonTracksName);
436  if (!MuonTracks) return StatusCode::FAILURE;
437  ATH_MSG_DEBUG("handling " << MuonTracks->size() << " " << m_muonTracksName);
438  m_h_overview_nObjects[2]->Fill(MuonTracks->size(), beamSpotWeight);
439  for (const auto tp : *MuonTracks) handleMuonTrack(tp, xAOD::Muon::MuonSpectrometerTrackParticle, beamSpotWeight);
440  }
441  if (!m_muonExtrapolatedTracksName.empty()) {
442  auto MuonExtrapolatedTracks = getContainer<xAOD::TrackParticleContainer>(m_muonExtrapolatedTracksName);
443  if (!MuonExtrapolatedTracks) return StatusCode::FAILURE;
444  ATH_MSG_DEBUG("handling " << MuonExtrapolatedTracks->size() << " " << m_muonExtrapolatedTracksName);
445  for (const auto tp : *MuonExtrapolatedTracks)
446  handleMuonTrack(tp, xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle, beamSpotWeight);
447  }
448 
449  if (!m_muonMSOnlyExtrapolatedTracksName.empty() &&
450  evtStore()->contains<xAOD::TrackParticleContainer>(m_muonMSOnlyExtrapolatedTracksName)) {
451  auto MSOnlyMuonExtrapolatedTracks = getContainer<xAOD::TrackParticleContainer>(m_muonMSOnlyExtrapolatedTracksName);
452  if (!MSOnlyMuonExtrapolatedTracks) return StatusCode::FAILURE;
453  ATH_MSG_DEBUG("handling " << MSOnlyMuonExtrapolatedTracks->size() << " " << m_muonMSOnlyExtrapolatedTracksName);
454  for (const auto tp : *MSOnlyMuonExtrapolatedTracks)
455  handleMuonTrack(tp, xAOD::Muon::MSOnlyExtrapolatedMuonSpectrometerTrackParticle, beamSpotWeight);
456  }
457 
458  if (!m_muonSegmentsName.empty()) {
459  const xAOD::MuonSegmentContainer* TruthMuonSegments(nullptr);
460  if (!m_isData) {
461  TruthMuonSegments = getContainer<xAOD::MuonSegmentContainer>(m_muonSegmentsTruthName);
462  if (!TruthMuonSegments) { return StatusCode::SUCCESS; }
463  m_h_overview_nObjects[3]->Fill(TruthMuonSegments->size(), beamSpotWeight);
464  ATH_MSG_DEBUG("handling " << TruthMuonSegments->size() << " " << m_muonSegmentsTruthName);
465  for (const auto truthMuSeg : *TruthMuonSegments) handleTruthMuonSegment(truthMuSeg, TruthMuons, beamSpotWeight);
466  }
467 
468  const xAOD::MuonSegmentContainer* MuonSegments = getContainer<xAOD::MuonSegmentContainer>(m_muonSegmentsName);
469  if (!MuonSegments) { return StatusCode::SUCCESS; }
470  m_h_overview_nObjects[4]->Fill(MuonSegments->size(), beamSpotWeight);
471  ATH_MSG_DEBUG("handling " << MuonSegments->size() << " " << m_muonSegmentsName);
472  for (const auto muSeg : *MuonSegments) handleMuonSegment(muSeg, beamSpotWeight);
473  }
474 
475  //@@@@@@@@@@@@@@@@ TRIGGER MONITORING IMPLEMENTATION @@@@@@@@@@@@@@@@@
476  if (m_doTrigMuonValidation) {
477  auto chainGroups = m_trigDec->getChainGroup("HLT_.*mu.*");
478  for (auto& trig : chainGroups->getListOfTriggers()) {
479  if (m_trigDec->isPassed(trig, TrigDefs::EF_passedRaw)) {
480  ATH_MSG_DEBUG("Chain " << trig << " is passed: YES");
481  } else
482  ATH_MSG_DEBUG("Chain " << trig << " is passed: NO");
483  }
484  auto L1chainGroups = m_trigDec->getChainGroup("L1_MU.*");
485  for (auto& L1trig : L1chainGroups->getListOfTriggers()) {
486  if (m_trigDec->isPassed(L1trig, TrigDefs::EF_passedRaw))
487  ATH_MSG_DEBUG("Chain " << L1trig << " is passed: YES");
488  else
489  ATH_MSG_DEBUG("Chain " << L1trig << " is passed: NO");
490  }
491  for (auto mu : m_vRecoMuons) {
492  if (passesAcceptanceCuts(mu) && std::abs(mu->eta()) < 2.4) {
493  if (mu->author() == 1) {
494  m_vRecoMuons_EffDen_CB.emplace_back(mu);
495  ATH_MSG_DEBUG("##### m_vRecoMuons_EffDen_CB pt:" << mu->pt() << " phi:" << mu->phi() << " eta:" << mu->eta());
496  } else if (mu->author() == 5) {
497  m_vRecoMuons_EffDen_MS.emplace_back(mu);
498  ATH_MSG_DEBUG("##### m_vRecoMuons_EffDen_MS pt:" << mu->pt() << " phi:" << mu->phi() << " eta:" << mu->eta());
499  }
500  }
501  }
502 
503  //@@@@@ L1 @@@@@
505  const xAOD::MuonRoIContainer* L1TrigMuons = getContainer<xAOD::MuonRoIContainer>(m_muonL1TrigName);
506  if (!L1TrigMuons) { return StatusCode::SUCCESS; }
507  ATH_MSG_DEBUG("Retrieved L1 triggered muons " << L1TrigMuons->size());
508  for (const auto TrigL1mu : *L1TrigMuons) handleMuonL1Trigger(TrigL1mu);
509  }
510 
511  //@@@@@ L2 @@@@@
513  //@@@@@ L2SA @@@@@
514  const xAOD::L2StandAloneMuonContainer* L2SAMuons = getContainer<xAOD::L2StandAloneMuonContainer>(m_muonL2SAName);
515  if (!L2SAMuons) { return StatusCode::SUCCESS; }
516  ATH_MSG_DEBUG("Retrieved L2 StandAlone triggered muons " << L2SAMuons->size());
517  if (L2SAMuons->size() != 0) {
518  for (const auto L2SAmu : *L2SAMuons) {
519  ATH_MSG_DEBUG("Muon L2SA Trigger: pt " << L2SAmu->pt() << " phi " << L2SAmu->phi() << " eta " << L2SAmu->eta()
520  << " roiWord " << L2SAmu->roiWord() << " sAddress " << L2SAmu->sAddress());
521  m_vL2SAMuons.emplace_back(L2SAmu);
522  }
523  for (const auto& mu : m_vL2SAMuons) {
524  if (mu->pt() != 0.) {
525  m_vL2SAMuonsSelected.emplace_back(mu);
526  break;
527  }
528  }
529  for (unsigned int i = 0; i < m_vL2SAMuons.size(); i++) {
530  unsigned int cont = 0;
531  for (unsigned int j = 0; j < m_vL2SAMuonsSelected.size(); j++) {
532  if (((m_vL2SAMuons.at(i)->pt()) != 0.) && ((deltaR(m_vL2SAMuonsSelected.at(j), m_vL2SAMuons.at(i))) > 0.1))
533  cont++;
534  if (cont == m_vL2SAMuonsSelected.size()) {
535  m_vL2SAMuonsSelected.emplace_back(m_vL2SAMuons.at(i));
536  break;
537  }
538  }
539  }
540  for (unsigned int i = 0; i < m_vL2SAMuonsSelected.size(); i++) { handleMuonL2Trigger(m_vL2SAMuonsSelected.at(i)); }
542  }
543  for (const auto& muonItem : m_muonItems) {
544  std::vector<Trig::Feature<xAOD::L2StandAloneMuonContainer> > vec_muons;
545  TString muonItem_str = (TString)muonItem;
546  if (muonItem_str.Contains("_OR_")) {
547  muonItem_str.ReplaceAll("_OR_", " ");
548  TString delim = " ";
549  std::vector<TString> v_subchains;
550  SplitString(muonItem_str, delim, v_subchains);
551  for (int i = 0; i < (int)v_subchains.size(); i++) {
552  Trig::FeatureContainer fc1 = m_trigDec->features((std::string)v_subchains.at(i));
553  std::vector<Trig::Feature<xAOD::L2StandAloneMuonContainer> > vec_muons_1 =
555  for (const auto& mufeat : vec_muons_1) { vec_muons.emplace_back(mufeat); }
556  }
557  } else {
558  Trig::FeatureContainer fc = m_trigDec->features(muonItem);
559  vec_muons = fc.get<xAOD::L2StandAloneMuonContainer>();
560  }
561  ATH_MSG_DEBUG("Size of vector Trig::Feature<xAOD::L2StandAloneMuonContainer> for chain " << muonItem << " = "
562  << vec_muons.size());
563  for (const auto& mufeat : vec_muons) {
564  ATH_MSG_DEBUG(muonItem << " vec_muons.size() = " << vec_muons.size()
565  << " mufeat.cptr()->size() = " << mufeat.cptr()->size());
566  for (unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
567  ATH_MSG_DEBUG("#####" << muonItem << " L2SA feature pt: " << (*mufeat.cptr())[i]->pt()
568  << " eta: " << (*mufeat.cptr())[i]->eta() << " phi: " << (*mufeat.cptr())[i]->phi());
569  }
570  }
571  }
572 
573  //@@@@@ L2CB @@@@@
574  const xAOD::L2CombinedMuonContainer* L2CBMuons = getContainer<xAOD::L2CombinedMuonContainer>(m_muonL2CBName);
575  if (!L2CBMuons) { return StatusCode::SUCCESS; }
576  ATH_MSG_DEBUG("Retrieved L2 Combined triggered muons " << L2CBMuons->size());
577  if (L2CBMuons->size() != 0) {
578  for (const auto L2CBmu : *L2CBMuons) {
579  ATH_MSG_DEBUG("Muon L2CB Trigger: pt " << L2CBmu->pt() << " phi " << L2CBmu->phi() << " eta " << L2CBmu->eta());
580  m_vL2CBMuons.emplace_back(L2CBmu);
581  }
582  for (unsigned int i = 0; i < m_vL2CBMuons.size(); i++) {
583  if ((m_vL2CBMuons.at(i)->pt()) != 0.) {
584  m_vL2CBMuonsSelected.emplace_back(m_vL2CBMuons.at(i));
585  break;
586  }
587  }
588  for (unsigned int i = 0; i < m_vL2CBMuons.size(); i++) {
589  unsigned int cont = 0;
590  for (unsigned int j = 0; j < m_vL2CBMuonsSelected.size(); j++) {
591  if (((m_vL2CBMuons.at(i)->pt()) != 0.) && ((deltaR(m_vL2CBMuonsSelected.at(j), m_vL2CBMuons.at(i))) > 0.1))
592  cont++;
593  if (cont == m_vL2CBMuonsSelected.size()) {
594  m_vL2CBMuonsSelected.emplace_back(m_vL2CBMuons.at(i));
595  break;
596  }
597  }
598  }
599  for (unsigned int i = 0; i < m_vL2CBMuonsSelected.size(); i++) { handleMuonL2Trigger(m_vL2CBMuonsSelected.at(i)); }
601  }
602  for (const auto& muonItem : m_muonItems) {
603  std::vector<Trig::Feature<xAOD::L2CombinedMuonContainer> > vec_muons;
604  TString muonItem_str = (TString)muonItem;
605  if (muonItem_str.Contains("_OR_")) {
606  muonItem_str.ReplaceAll("_OR_", " ");
607  TString delim = " ";
608  std::vector<TString> v_subchains;
609  SplitString(muonItem_str, delim, v_subchains);
610  for (int i = 0; i < (int)v_subchains.size(); i++) {
611  Trig::FeatureContainer fc1 = m_trigDec->features((std::string)v_subchains.at(i));
612  std::vector<Trig::Feature<xAOD::L2CombinedMuonContainer> > vec_muons_1 =
614  for (const auto& mufeat : vec_muons_1) { vec_muons.emplace_back(mufeat); }
615  }
616  } else {
617  Trig::FeatureContainer fc = m_trigDec->features(muonItem);
618  vec_muons = fc.get<xAOD::L2CombinedMuonContainer>();
619  }
620  ATH_MSG_DEBUG("Size of vector Trig::Feature<xAOD::L2CombinedMuonContainer> for chain " << muonItem << " = "
621  << vec_muons.size());
622  for (const auto& mufeat : vec_muons) {
623  ATH_MSG_DEBUG(muonItem << " vec_muons.size() = " << vec_muons.size()
624  << " mufeat.cptr()->size() = " << mufeat.cptr()->size());
625  for (unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
626  ATH_MSG_DEBUG("#####" << muonItem << " L2CB feature pt: " << (*mufeat.cptr())[i]->pt()
627  << " eta: " << (*mufeat.cptr())[i]->eta() << " phi: " << (*mufeat.cptr())[i]->phi());
628  }
629  }
630  }
631  } // close if(m_doTrigMuonL2Validation)
632 
633  //@@@@@ EF @@@@@
635  const xAOD::MuonContainer* EFCombTrigMuons = getContainer<xAOD::MuonContainer>(m_muonEFCombTrigName);
636  const xAOD::MuonRoIContainer* L1TrigMuons = getContainer<xAOD::MuonRoIContainer>(m_muonL1TrigName);
637  if (!EFCombTrigMuons) { return StatusCode::SUCCESS; }
638  ATH_MSG_DEBUG("Retrieved EF triggered muons " << EFCombTrigMuons->size());
639  if (EFCombTrigMuons->size() != 0) {
640  for (const auto Trigmu : *EFCombTrigMuons) {
641  ATH_MSG_DEBUG("Muon EF Trigger: pt " << Trigmu->pt() << " phi " << Trigmu->phi() << " eta " << Trigmu->eta()
642  << " author" << Trigmu->author());
643  m_vEFMuons.emplace_back(Trigmu);
644  }
645  m_vEFMuonsSelected.emplace_back(m_vEFMuons.at(0));
646  for (unsigned int i = 0; i < m_vEFMuons.size(); i++) {
647  unsigned int cont = 0;
648  for (unsigned int j = 0; j < m_vEFMuonsSelected.size(); j++) {
649  if (((deltaR(m_vEFMuonsSelected.at(j), m_vEFMuons.at(i))) > 0.1) ||
650  ((m_vEFMuons.at(i)->author() - m_vEFMuonsSelected.at(j)->author()) != 0))
651  cont++;
652  if (cont == m_vEFMuonsSelected.size()) {
653  m_vEFMuonsSelected.emplace_back(m_vEFMuons.at(i));
654  break;
655  }
656  }
657  }
658  for (unsigned int i = 0; i < m_vEFMuonsSelected.size(); i++) { handleMuonTrigger(m_vEFMuonsSelected.at(i)); }
660  }
661  if (!m_isData) {
662  for (const auto truthMu : *TruthMuons) {
663  ATH_MSG_DEBUG("TRUTH:: pt=" << truthMu->pt() << " eta=" << truthMu->eta() << " phi=" << truthMu->phi());
664  }
665  }
666  // handleMuonTrigger_ResoWRTTruth(m_vEFMuonsSelected,)
667  //@@@@@ chains efficiency @@@@@
668  for (const auto& muonItem : m_muonItems) {
670  m_SelectedAuthor = 1;
671  if ((muonItem.find("msonly") != std::string::npos)) {
673  m_SelectedAuthor = 5;
674  }
675  std::vector<Trig::Feature<xAOD::MuonContainer> > vec_muons;
676  TString muonItem_str = (TString)muonItem;
677  if (muonItem_str.Contains("_OR_")) {
678  muonItem_str.ReplaceAll("_OR_", " ");
679  TString delim = " ";
680  std::vector<TString> v_subchains;
681  SplitString(muonItem_str, delim, v_subchains);
682  for (int i = 0; i < (int)v_subchains.size(); i++) {
683  Trig::FeatureContainer fc1 = m_trigDec->features((std::string)v_subchains.at(i));
684  std::vector<Trig::Feature<xAOD::MuonContainer> > vec_muons_1 = fc1.get<xAOD::MuonContainer>();
685  for (const auto& mufeat : vec_muons_1) { vec_muons.emplace_back(mufeat); }
686  }
687  } else {
688  Trig::FeatureContainer fc = m_trigDec->features(muonItem);
689  vec_muons = fc.get<xAOD::MuonContainer>();
690  }
691  ATH_MSG_DEBUG("Size of vector Trig::Feature<xAOD::MuonContainer> for chain " << muonItem << " = " << vec_muons.size());
692  for (const auto& mufeat : vec_muons) {
693  ATH_MSG_DEBUG(muonItem << " vec_muons.size() = " << vec_muons.size()
694  << " mufeat.cptr()->size() = " << mufeat.cptr()->size());
695  for (unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
696  ATH_MSG_DEBUG("#####" << muonItem << " EF feature pt: " << (*mufeat.cptr())[i]->pt()
697  << " eta: " << (*mufeat.cptr())[i]->eta() << " phi: " << (*mufeat.cptr())[i]->phi()
698  << " author: " << (*mufeat.cptr())[i]->author());
699  for (unsigned int j = 0; j < m_selectMuonCategories.size(); j++) {
700  if (m_selectMuonCategories[j] == ALL) {
701  if (((*mufeat.cptr())[i]->author()) == m_SelectedAuthor)
702  m_TriggerMuonValidationPlots[j]->fillFeatPlots(*(*mufeat.cptr())[i], muonItem);
703  } // if categ=ALL
704  } // categories
705  } // mufeat.cptr
706  } // mufeat
707  for (unsigned int k = 0; k < m_vRecoMuons_EffDen.size(); k++) {
708  bool break_flag = false;
709  for (unsigned int j = 0; j < m_selectMuonCategories.size(); j++) {
710  if (m_selectMuonCategories[j] == ALL) {
711  m_TriggerMuonValidationPlots[j]->fillDenEff(*m_vRecoMuons_EffDen.at(k), muonItem);
712  }
713  }
714  for (const auto& mufeat : vec_muons) {
715  for (unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
716  if ((((*mufeat.cptr())[i]->author()) == m_SelectedAuthor) &&
717  (deltaR((*mufeat.cptr())[i], m_vRecoMuons_EffDen.at(k)) < 0.1)) {
718  break_flag = true;
719  ATH_MSG_DEBUG(" $$$ match Reco_EffDen "
720  << muonItem << " pt: " << m_vRecoMuons_EffDen.at(k)->pt() << " eta: "
721  << m_vRecoMuons_EffDen.at(k)->eta() << " phi: " << m_vRecoMuons_EffDen.at(k)->phi()
722  << " author: " << m_vRecoMuons_EffDen.at(k)->author());
723  ATH_MSG_DEBUG(" $$$ match EF MuidCo feature "
724  << muonItem << " pt: " << (*mufeat.cptr())[i]->pt()
725  << " eta: " << (*mufeat.cptr())[i]->eta() << " phi: " << (*mufeat.cptr())[i]->phi()
726  << " author: " << (*mufeat.cptr())[i]->author() << " rel_p "
727  << (std::abs(((*mufeat.cptr())[i]->pt() - m_vRecoMuons_EffDen.at(k)->pt()) /
728  (m_vRecoMuons_EffDen.at(k)->pt()))));
729  for (unsigned int j = 0; j < m_selectMuonCategories.size(); j++) {
730  if (m_selectMuonCategories[j] == ALL) {
731  m_TriggerMuonValidationPlots[j]->fillNumEff(*m_vRecoMuons_EffDen.at(k), muonItem);
732  // if (muonItem=="HLT_2mu10") m_TriggerMuonValidationPlots[j]->fill(
733  // *(*mufeat.cptr())[i],*m_vRecoMuons_EffDen.at(k));
734 
735  } // if categ=ALL
736  } // categories
737  break;
738  } // if(Delta_R)
739  } // mufeat
740  if (break_flag) break;
741  } // vec_muons
742  } // m_vRecoMuons_EffDen
743  } // m_muonItems
744  //@@@@@ L1 items efficiency @@@@@
745  for (const auto& L1MuonItem : m_L1MuonItems) {
747  m_SelectedAuthor = 1;
748  float treshold = 0.;
749  if (L1MuonItem == "L1_MU4") treshold = 4000;
750  else if (L1MuonItem == "L1_MU6") treshold = 6000;
751  else if (L1MuonItem == "L1_MU10") treshold = 10000;
752  else if (L1MuonItem == "L1_MU11") treshold = 11000;
753  else if (L1MuonItem == "L1_MU15") treshold = 15000;
754  else if (L1MuonItem == "L1_MU20") treshold = 20000;
755  for (const auto TrigL1mu : *L1TrigMuons) {
756  for (unsigned int j = 0; j < m_selectMuonCategories.size(); j++) {
757  if (m_selectMuonCategories[j] == ALL) {
758  if ((TrigL1mu->thrValue()) >= treshold)
759  m_TriggerMuonValidationPlots[j]->fillFeatPlots(*TrigL1mu, L1MuonItem);
760  } // if categ=ALL
761  } // categories
762  } // L1TrigMuons
763  for (unsigned int k = 0; k < m_vRecoMuons_EffDen.size(); k++) {
764  for (unsigned int j = 0; j < m_selectMuonCategories.size(); j++) {
765  if (m_selectMuonCategories[j] == ALL) {
766  m_TriggerMuonValidationPlots[j]->fillDenL1Eff(*m_vRecoMuons_EffDen.at(k), L1MuonItem);
767  }
768  }
769  for (const auto TrigL1mu : *L1TrigMuons) {
770  if (((TrigL1mu->thrValue()) >= treshold) &&
771  (sqrt(pow(m_vRecoMuons_EffDen.at(k)->eta() - TrigL1mu->eta(), 2.) +
772  pow(m_vRecoMuons_EffDen.at(k)->phi() - TrigL1mu->phi(), 2.)) < 0.2)) {
773  ATH_MSG_DEBUG(" $$$ match Reco_EffDen "
774  << L1MuonItem << " pt: " << m_vRecoMuons_EffDen.at(k)->pt() << " eta: "
775  << m_vRecoMuons_EffDen.at(k)->eta() << " phi: " << m_vRecoMuons_EffDen.at(k)->phi()
776  << " author: " << m_vRecoMuons_EffDen.at(k)->author());
777  ATH_MSG_DEBUG(" $$$ L1 feature " << L1MuonItem << " pt: " << TrigL1mu->thrValue()
778  << " eta: " << TrigL1mu->eta() << " phi: " << TrigL1mu->phi());
779  for (unsigned int j = 0; j < m_selectMuonCategories.size(); j++) {
780  if (m_selectMuonCategories[j] == ALL) {
781  m_TriggerMuonValidationPlots[j]->fillNumL1Eff(*m_vRecoMuons_EffDen.at(k), L1MuonItem);
782  } // if categ=ALL
783  } // categories
784  break;
785  } // if(Delta_R)
786  } // L1TrigMuons
787  } // m_vRecoMuons_EffDen
788  }
789  //@@@@@ chains efficiency w.r.t. L1 @@@@@
790  for (unsigned int m = 0; m < m_muonItems.size(); m++) {
791  std::vector<Trig::Feature<xAOD::MuonContainer> > vec_muons;
792  TString muonItem_str = (TString)m_muonItems[m];
793  if (muonItem_str.Contains("_OR_")) {
794  muonItem_str.ReplaceAll("_OR_", " ");
795  TString delim = " ";
796  std::vector<TString> v_subchains;
797  SplitString(muonItem_str, delim, v_subchains);
798  for (int i = 0; i < (int)v_subchains.size(); i++) {
799  Trig::FeatureContainer fc1 = m_trigDec->features((std::string)v_subchains.at(i));
800  std::vector<Trig::Feature<xAOD::MuonContainer> > vec_muons_1 = fc1.get<xAOD::MuonContainer>();
801  for (const auto& mufeat : vec_muons_1) { vec_muons.emplace_back(mufeat); }
802  }
803  } else {
805  vec_muons = fc.get<xAOD::MuonContainer>();
806  }
808  m_SelectedAuthor = 1;
809  if ((m_muonItems[m].find("msonly") != std::string::npos)) {
811  m_SelectedAuthor = 5;
812  }
813  float treshold = 0.;
814  if (m_L1Seed[m] == "L1_MU4") treshold = 4000;
815  if (m_L1Seed[m] == "L1_MU6") treshold = 6000;
816  if (m_L1Seed[m] == "L1_MU10") treshold = 10000;
817  if (m_L1Seed[m] == "L1_MU11") treshold = 11000;
818  if (m_L1Seed[m] == "L1_MU15") treshold = 15000;
819  if (m_L1Seed[m] == "L1_MU20") treshold = 20000;
820  for (unsigned int k = 0; k < m_vRecoMuons_EffDen.size(); k++) {
821  bool break_flag = false;
822  for (const auto TrigL1mu : *L1TrigMuons) {
823  if (((TrigL1mu->thrValue()) >= treshold) &&
824  (sqrt(pow(m_vRecoMuons_EffDen.at(k)->eta() - TrigL1mu->eta(), 2.) +
825  pow(m_vRecoMuons_EffDen.at(k)->phi() - TrigL1mu->phi(), 2.)) < 0.2)) {
826  for (unsigned int j = 0; j < m_selectMuonCategories.size(); j++) {
827  if (m_selectMuonCategories[j] == ALL) {
829  } // if categ=ALL
830  } // categories
831  for (const auto& mufeat : vec_muons) {
832  for (unsigned int i = 0; i < mufeat.cptr()->size(); i++) {
833  if ((((*mufeat.cptr())[i]->author()) == m_SelectedAuthor) &&
834  (deltaR((*mufeat.cptr())[i], m_vRecoMuons_EffDen.at(k)) < 0.1)) {
835  break_flag = true;
836  for (unsigned int j = 0; j < m_selectMuonCategories.size(); j++) {
837  if (m_selectMuonCategories[j] == ALL) {
838  m_TriggerMuonValidationPlots[j]->fillNumRELEff(*m_vRecoMuons_EffDen.at(k),
839  m_muonItems[m]);
840  } // if categ=ALL
841  } // categories
842  break;
843  } // if(Delta_R)
844  } // mufeat
845  if (break_flag) break;
846  } // vec_muons
847  break;
848  } // if(Delta_R)
849  } // L1TrigMuons
850  } // m_vRecoMuons_EffDen
851  } // m_muonItems.size()
852  } // m_doTrigMuonEFValidation
853  }
854  return StatusCode::SUCCESS;
855  }//fillHistograms()*/

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

794 {
795 
798  msg(MSG::WARNING) << "ManagedMonitorToolBase::initialize() never called from reimplementation!" << endmsg;
799  }
800 
801 
802  bool isNewEventsBlock = ( m_procNEventsProp > 0 && ((m_nEvents % m_procNEventsProp) == 1) && m_haveClearedLastEventBlock );
803  if (isNewEventsBlock) m_haveClearedLastEventBlock = false;
804 
805  m_newLowStat = false;
806  m_newLumiBlock = false;
807  m_newRun = false;
808  newLowStat = false;
809  newLumiBlock = false;
810  newRun = false;
811 
812  m_newLowStatInterval = false;
813  m_newMedStatInterval = false;
814  m_newHigStatInterval = false;
815  newLowStatInterval = false;
816  newMedStatInterval = false;
817  newHigStatInterval = false;
818 
819  m_useTrigger = ( (m_triggerChainProp != "" || m_triggerGroupProp != "") && (!m_trigDecTool.empty()) );
820 
821  if( m_manager != 0 ) {
824  newLumiBlock = m_newLumiBlock;
825  newRun = m_newRun;
826 
827  if(m_newRun) {
828  m_newLumiBlock = true;
829  newLumiBlock = m_newLumiBlock;
830  isNewEventsBlock = true;
831  }
832 
833  m_newEventsBlock = isNewEventsBlock;
834  newEventsBlock = m_newEventsBlock;
835 
836  if( m_newLumiBlock ) {
837  // check if a new LB interval has started
838  // lowest lumiBlockNumber() is 1
839  // m_lastLowStatInterval is -1 initially
840  int currentLB = m_manager->lumiBlockNumber();
841  int LBsLowStat = m_manager->getLBsLowStat();
842  int LBsMedStat = m_manager->getLBsMedStat();
843  int LBsHigStat = m_manager->getLBsHigStat();
844 
845  if( LBsLowStat*LBsMedStat*LBsHigStat == 0) {
846  msg(MSG::WARNING) << "zero LBs requested for interval" << endmsg;
847  }
848  else {
849  if( ((currentLB-1)/LBsLowStat) != m_lastLowStatInterval ) m_newLowStatInterval = true;
850  if( ((currentLB-1)/LBsMedStat) != m_lastMedStatInterval ) m_newMedStatInterval = true;
851  if( ((currentLB-1)/LBsHigStat) != m_lastHigStatInterval ) m_newHigStatInterval = true;
852  newLowStatInterval = m_newLowStatInterval;
853  newMedStatInterval = m_newHigStatInterval;
854  newHigStatInterval = m_newHigStatInterval;
855  }
856  }
857 
858  // Allow inheriting classes the option of using the lastLumiBloc/lastRun values
859  // before updating them
860  }
861 
862 
863  StatusCode sc0( StatusCode::SUCCESS );
864  StatusCode sc1( StatusCode::SUCCESS );
865  StatusCode sc2( StatusCode::SUCCESS );
866  StatusCode sc3( StatusCode::SUCCESS );
867 
868  // Set end of LowStat, LumiBlock and Run variables
869  // These are needed to be used in procHistograms().
874  endOfEventsBlock = m_newEventsBlock;
875  endOfLowStat = m_newLowStatInterval;
876  endOfLumiBlock = m_newLumiBlock;
877  endOfRun = m_newRun;
878 
879  // just duplicates m_newLowStatInterval
881  newLowStat = m_newLowStatInterval;
882 
884  ATH_MSG_DEBUG("Interval transition processing");
885  // Process histograms from the previous lumiBlock/run
886  if( m_nEvents != 1 ) {
888  sc0 = procHistograms();
890  }
891  // Re-book new histograms
893 
895  sc1 = bookHistograms();
897  } else {
898  std::vector<Interval_t> intervals_to_process;
899  if (m_newEventsBlock) intervals_to_process.push_back(eventsBlock);
900  if (m_newLumiBlock) intervals_to_process.push_back(lumiBlock);
901  if (m_newLowStatInterval) intervals_to_process.push_back(lowStat);
902  if (m_newRun) intervals_to_process.push_back(run);
903  for (const auto interval: intervals_to_process) {
908  }
909  }
910  for (const auto& interval: std::vector<Interval_t>{ eventsBlock, lumiBlock, lowStat, run }) {
911  for (const auto& it: m_templateHistograms[interval]) {
912  // is histogram too small in x axis for LB range?
913  if (it.m_group.histo_mgmt() == ATTRIB_X_VS_LB) {
914  //ATH_MSG_WARNING("We are rebinning for " << it.m_templateHist->GetName());
915  while ( it.m_templateHist->GetXaxis()->GetXmax() <= AthenaMonManager::lumiBlockNumber() ) {
916  it.m_templateHist->LabelsInflate("X");
917  }
918  }
919  }
920  for (auto& it: m_templateEfficiencies[interval]) {
921  if (it.m_group.histo_mgmt() == ATTRIB_X_VS_LB) {
922  // get the underlying passed and total TH1's from the TEfficiency
923  TH1* passedHist = it.m_templateHist->GetCopyPassedHisto();
924  TH1* totalHist = it.m_templateHist->GetCopyTotalHisto();
925  // inflate them until they exceed the lumi-block number
926  while (passedHist->GetXaxis()->GetXmax() <= AthenaMonManager::lumiBlockNumber() ) {
927  passedHist->LabelsInflate("X");
928  totalHist->LabelsInflate("X");
929  }
930  // Replace them in the TEfficiency. First one has force ("f") option, since the
931  // histograms will not be consistent. This is corrected in the next line, so we
932  // do check for consistency then.
933  it.m_templateHist->SetPassedHistogram(*passedHist, "f");
934  it.m_templateHist->SetTotalHistogram(*totalHist, " ");
935  delete passedHist; // not owned by THistSvc, so need to be deleted.
936  delete totalHist;
937  }
938  }
939  }
940 
941  if (auto streamname = dynamic_cast<OfflineStream*>(streamNameFunction())) {
942  streamname->updateRunLB();
943  }
944 
945  sc3 = bookHistogramsRecurrent( );
946 
948 
949  if (m_manager->forkedProcess()) {
950  ATH_MSG_INFO("Child process: Resetting all " << m_lwhists.size() << " LW Histograms");
951  for (LWHist* h : m_lwhists) {
952  h->Reset();
953  }
954  }
955  }//end if new RUN/LB/Block
956 
957  // check filters
958  bool filterresult(true);
959  if (! m_DQFilterTools.empty()) {
960  ToolHandleArray<IDQFilterTool>::const_iterator ifilter(m_DQFilterTools.begin()), filterend(m_DQFilterTools.end());
961  for (; filterresult && (ifilter != filterend);
962  ++ifilter) {
963  filterresult = (filterresult && (*ifilter)->accept());
964  }
965  }
966 
967 
968  // ...and fill as normal
969  if(filterresult &&
970  (!m_useTrigger
973  ATH_MSG_DEBUG("Passed trigger, presumably");
975  fillHistograms().ignore();
978  ++m_nEvents;
979  } else { ATH_MSG_DEBUG("Failed trigger, presumably"); }
980 
982  if( m_newLumiBlock && (m_nEventsIgnoreTrigger != 1) ) {
983  ++m_nLumiBlocks;
984  }
985  if( m_manager != 0 ) {
987  if( m_newLumiBlock ) {
989 
990  int LBsLowStat = m_manager->getLBsLowStat();
991  int LBsMedStat = m_manager->getLBsMedStat();
992  int LBsHigStat = m_manager->getLBsHigStat();
993  if( LBsLowStat*LBsMedStat*LBsHigStat > 0) {
997  }
998  }
999  }
1000 
1001  return StatusCode::SUCCESS;
1002 }

◆ finalHists()

StatusCode ManagedMonitorToolBase::finalHists ( )
virtualinherited

Calls procHists( true, true, true ).

Implements IMonitorToolBase.

Reimplemented in TileRawChannelMonTool, TileDigitsMonTool, and TileCellNoiseMonTool.

Definition at line 1333 of file ManagedMonitorToolBase.cxx.

1335 {
1336 
1337  // This assumes that the end of a file will naturally end a run, which is not always true.
1338  // A merging application run afterwards should be able to put parts of a run together.
1339  if( m_nEvents != 1 ) {
1341 
1342  // Set end flags for the LowStat, LumiBlock and Run variables.
1343  // This is needed to be used in the procHistograms method below.
1344  m_endOfEventsBlock = true;
1345  m_endOfLowStat = true;
1346  m_endOfLumiBlock = true;
1347  m_endOfRun = true;
1348  endOfEventsBlock = true;
1349  endOfLowStat = true;
1350  endOfLumiBlock = true;
1351  endOfRun = true;
1352 
1354 
1355 /*
1356  StatusCode sc1( StatusCode::SUCCESS );
1357 
1358 #if 0
1359  for (const auto interval: m_supportedIntervalsForRebooking) {
1360  //sc1 = regManagedHistograms(m_templateHistograms[interval], false);
1361  //sc1 = regManagedGraphs(m_templateGraphs[interval], false);
1362  //sc1 = regManagedTrees(m_templateTrees[interval], false);
1363 
1364  // Yura: commented out when fixing online environment
1365  //sc1 = regManagedLWHistograms(m_templateLWHistograms[interval], false, true);
1366  }
1367 */
1368 
1370  return sc;
1371  }
1372  return StatusCode::SUCCESS;
1373 }

◆ findHistogram()

TH1F * MuonPhysValMonitoring::MuonPhysValMonitoringTool::findHistogram ( const std::vector< HistData > &  hists,
const std::string &  hnameTag,
const std::string &  hdirTag,
const std::string &  hNewName 
)
private

Definition at line 1380 of file MuonPhysValMonitoringTool.cxx.

1381  {
1382  TH1F* h = nullptr;
1383  for (const auto& hist : hists) {
1384  if (hist.second.find(hdirTag) != std::string::npos || hdirTag.empty()) {
1385  std::string histname = hist.first->GetName();
1386  if (histname.find(hnameTag) != std::string::npos) {
1387  h = (TH1F*)hist.first->Clone(hNewName.c_str());
1388  return h;
1389  }
1390  }
1391  }
1392  return h;
1393  }

◆ findRecoMuon()

const xAOD::Muon * MuonPhysValMonitoring::MuonPhysValMonitoringTool::findRecoMuon ( const xAOD::TruthParticle truthMu)
private

Definition at line 1300 of file MuonPhysValMonitoringTool.cxx.

1300  {
1301  static const SG::AuxElement::ConstAccessor<MuonLink> acc_muon("recoMuonLink");
1302  if (!acc_muon.isAvailable(*truthMu)) return nullptr;
1303  MuonLink link = acc_muon(*truthMu);
1304  if (!link.isValid()) return nullptr;
1305  const xAOD::Muon* reco_mu = (*link);
1306  if (!m_selectComissioning && reco_mu->allAuthors() & comm_bit) return nullptr;
1307  m_vMatchedMuons.emplace_back(reco_mu);
1308  return reco_mu;
1309  }

◆ findRecoMuonSegment()

const xAOD::MuonSegment * MuonPhysValMonitoring::MuonPhysValMonitoringTool::findRecoMuonSegment ( const xAOD::MuonSegment truthMuSeg)
private

Definition at line 1366 of file MuonPhysValMonitoringTool.cxx.

1366  {
1367  if (!truthMuSeg->isAvailable<MuonSegmentLink>("recoSegmentLink")) {
1368  ATH_MSG_DEBUG("recoSegmentLink not found");
1369  return nullptr;
1370  }
1371  MuonSegmentLink link = truthMuSeg->auxdata<MuonSegmentLink>("recoSegmentLink");
1372  if (!link.isValid()) {
1373  ATH_MSG_DEBUG("recoSegmentLink not valid");
1374  return nullptr;
1375  }
1376  m_vMatchedMuonSegments.emplace_back(*link);
1377  return (*link);
1378  }

◆ findRecoSlowMuon()

const xAOD::SlowMuon * MuonPhysValMonitoring::MuonPhysValMonitoringTool::findRecoSlowMuon ( const xAOD::TruthParticle truthMu)
private

Definition at line 1311 of file MuonPhysValMonitoringTool.cxx.

1311  {
1312  if (m_slowMuonsName.empty()) return nullptr;
1313 
1314  const xAOD::SlowMuonContainer* SlowMuons = nullptr;
1315  SlowMuons = getContainer<xAOD::SlowMuonContainer>(m_slowMuonsName);
1316  for (const auto smu : *SlowMuons) {
1317  const MuonLink muLink = smu->muonLink();
1318  if (!muLink.isValid()) continue;
1319  float DR = deltaR(*muLink , truthMu);
1320  if (DR < 0.005) {
1321  m_vMatchedSlowMuons.emplace_back(smu);
1322  return smu;
1323  }
1324  }
1325 
1326  return nullptr;
1327  }

◆ get_nEvents()

unsigned int ManagedMonitorToolBase::get_nEvents ( ) const
inlineprotectedinherited

Definition at line 754 of file ManagedMonitorToolBase.h.

754  {
755  return m_nEvents;
756  }

◆ get_procNEventsProp()

long ManagedMonitorToolBase::get_procNEventsProp ( ) const
inlineprotectedinherited

Definition at line 758 of file ManagedMonitorToolBase.h.

758  {
759  return m_procNEventsProp;
760  }

◆ getContainer()

template<class T >
const T * MuonPhysValMonitoring::MuonPhysValMonitoringTool::getContainer ( const std::string &  containerName)
private

Definition at line 223 of file MuonPhysValMonitoringTool.h.

223  {
224  const T* ptr = evtStore()->retrieve<const T>(containerName);
225  if (!ptr) { ATH_MSG_WARNING("Container '" << containerName << "' could not be retrieved"); }
226  return ptr;
227  }

◆ getCorrectedMuon()

std::unique_ptr< xAOD::Muon > MuonPhysValMonitoring::MuonPhysValMonitoringTool::getCorrectedMuon ( const xAOD::Muon mu)
private

Definition at line 1425 of file MuonPhysValMonitoringTool.cxx.

1425  {
1426  std::unique_ptr<xAOD::Muon> mu_c;
1427  if (mu.m() <= 0) return mu_c;
1428  mu_c = std::make_unique<xAOD::Muon>();
1429  mu_c->makePrivateStore(mu);
1430 
1431  // add decorations too fool the muon selector tool
1432  const xAOD::TrackParticle* idtrk{mu_c->trackParticle(xAOD::Muon::InnerDetectorTrackParticle)};
1433  const xAOD::TrackParticle* metrk{mu_c->trackParticle(xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle)};
1434  if (idtrk && metrk) {
1435  mu_c->auxdecor<float>("InnerDetectorPt") = idtrk->pt();
1436  mu_c->auxdecor<float>("MuonSpectrometerPt") = metrk->pt();
1437  }
1438  m_muonSelectionTool->setQuality(*mu_c);
1439  m_muonSelectionTool->setPassesHighPtCuts(*mu_c);
1440  m_muonSelectionTool->setPassesIDCuts(*mu_c);
1441  return mu_c;
1442  }

◆ getHist() [1/6]

StatusCode ManagedMonitorToolBase::getHist ( LWHist *&  h,
const std::string &  hName,
const MonGroup group 
)
virtualinherited

Definition at line 1614 of file ManagedMonitorToolBase.cxx.

1615 {
1616  h = 0;
1617  std::string streamName = streamNameFunction()->getStreamName( this, group, hName );
1619  for (;it!=itE;++it) {
1621  h = *it;
1622  return StatusCode::SUCCESS;
1623  }
1624  }
1625  return StatusCode::FAILURE;
1626 }

◆ getHist() [2/6]

StatusCode ManagedMonitorToolBase::getHist ( LWHist *&  h,
const std::string &  hName,
const std::string &  system,
Interval_t  interval 
)
virtualinherited

Definition at line 1606 of file ManagedMonitorToolBase.cxx.

1608 {
1609  MonGroup group( this, system, interval );
1610  return getHist( h, hName, group );
1611 }

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

1600 {
1601  std::string streamName = streamNameFunction()->getStreamName( this, group, hName );
1602  return m_THistSvc->getHist( streamName, h );
1603 }

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

1591 {
1592  MonGroup group( this, system, interval );
1593  return getHist( h, hName, group );
1594 }

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

1642 {
1643  std::string streamName = streamNameFunction()->getStreamName( this, group, hName );
1644  return m_THistSvc->getHist( streamName, h );
1645 }

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

1633 {
1634  MonGroup group( this, system, interval );
1635  return getHist( h, hName, group );
1636 }

◆ getMuonSegmentTruthCategory()

MuonPhysValMonitoringTool::MUCATEGORY MuonPhysValMonitoring::MuonPhysValMonitoringTool::getMuonSegmentTruthCategory ( const xAOD::MuonSegment truthMuSeg,
const xAOD::TruthParticleContainer muonTruthContainer 
)
private

Definition at line 1395 of file MuonPhysValMonitoringTool.cxx.

1396  {
1397  TruthLink truthLink;
1398  if (truthMuSeg->isAvailable<TruthLink>("truthParticleLink")) {
1399  truthLink = truthMuSeg->auxdata<TruthLink>("truthParticleLink");
1400  if (truthLink.isValid()) {
1401  const int theUniqueID = HepMC::uniqueID(*truthLink);
1402  if (std::abs((*truthLink)->pdgId()) != 13) return REST;
1403 
1404  for (const auto muTruthPart : *muonTruthContainer) {
1405  if ( HepMC::uniqueID(muTruthPart) == theUniqueID ) { return getMuonTruthCategory(muTruthPart); }
1406  }
1407  }
1408  } else
1409  ATH_MSG_WARNING("No truth link available for muon truth segment");
1410 
1411  return REST;
1412  }

◆ getMuonTruthCategory()

MuonPhysValMonitoringTool::MUCATEGORY MuonPhysValMonitoring::MuonPhysValMonitoringTool::getMuonTruthCategory ( const xAOD::IParticle prt)
private

Definition at line 1414 of file MuonPhysValMonitoringTool.cxx.

1414  {
1415  int truthType = mu->auxdata<int>("truthType");
1416  if (truthType == 6)
1417  return PROMPT;
1418  else if (truthType == 8 && (mu->auxdata<int>("truthOrigin") == 34 || mu->auxdata<int>("truthOrigin") == 35))
1419  return INFLIGHT;
1420  else if (truthType == 7)
1421  return NONISO;
1422  return REST;
1423  }

◆ getNewStreamNameFcn()

ManagedMonitorToolBase::StreamNameFcn * ManagedMonitorToolBase::getNewStreamNameFcn ( ) const
protectedvirtualinherited

Definition at line 2387 of file ManagedMonitorToolBase.cxx.

2389 {
2390  StreamNameFcn* fcn(0);
2391 
2392  switch( m_environment ) {
2394  fcn = new NoOutputStream();
2395  break;
2397  fcn = new OnlineStream();
2398  break;
2400  fcn = new DefaultStream( m_fileKey );
2401  break;
2405  case AthenaMonManager::AOD:
2407  default:
2408  fcn = new OfflineStream( m_fileKey, m_dataType, m_environment );
2409  }
2410 
2411  return fcn;
2412 }

◆ handleMuon()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuon ( const xAOD::Muon mu,
const xAOD::SlowMuon smu = nullptr,
float  weight = 1.0 
)
private

Definition at line 889 of file MuonPhysValMonitoringTool.cxx.

889  {
890  if (!mu) return;
891  if (!m_selectComissioning && mu->allAuthors() & comm_bit) return;
892 
894 
895  // make deep copy of muon and decorate with quality
896  std::unique_ptr<xAOD::Muon> mu_c;
897  try {
898  mu_c = getCorrectedMuon(*mu);
899  } catch (const SG::ExcBadAuxVar&) {
900  ATH_MSG_ERROR("Cannot retrieve aux-item - rejecting muon");
901  return;
902  }
903 
904  if (m_isData) {
905  MUCATEGORY thisMuonCategory = ALL;
906  // for events with a Zmumu candidate, separate Z muons from the rest:
907  if (m_vZmumuMuons.size() > 0) {
908  thisMuonCategory = REST;
909  if (std::find(m_vZmumuMuons.begin(), m_vZmumuMuons.end(), mu) != m_vZmumuMuons.end()) { thisMuonCategory = PROMPT; }
910  }
911  // fill plots
912  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
913  if (m_selectMuonCategories[i] == ALL or m_selectMuonCategories[i] == thisMuonCategory) {
914  if (mu_c){
915  // histos
916  m_muonValidationPlots[i]->fill(*mu_c, weight);
917  if (smu) m_slowMuonValidationPlots[i]->fill(*smu, *mu_c, weight);
918  // tree branches
919  m_muonValidationPlots[i]->fillTreeBranches(*mu_c);
920  }
921  }
922  }
923  }
924 
926  // SELECT MUON MEDIUM QUALITY FOR TRIGGER VALIDATION
927  xAOD::Muon::Quality my_quality = m_muonSelectionTool->getQuality(*mu_c);
928  if (my_quality <= xAOD::Muon::Medium && m_isoTool->accept(*mu_c)) m_vRecoMuons.emplace_back(mu);
930 
931  if (smu) {
933  } else {
935  }
936 
937  // unmatched reco muons (not matched with any kind of truth particle, fakes)
938  if (!m_isData) m_oUnmatchedRecoMuonPlots->fill(*mu_c, weight);
939 
940  m_h_overview_reco_category->Fill("Other", weight);
941  m_h_overview_reco_authors[3]->Fill(mu->author(), weight);
942 
943  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
944  if (m_selectMuonCategories[i] == ALL) {
945  if (mu_c){// histos
946  m_muonValidationPlots[i]->fill(*mu_c);
947  if (smu) m_slowMuonValidationPlots[i]->fill(*smu, *mu_c, weight);
948  // tree branches
949  m_muonValidationPlots[i]->fillTreeBranches(*mu_c);
950  break;
951  }
952  }
953  }
954  }

◆ handleMuonL1Trigger()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonL1Trigger ( const xAOD::MuonRoI TrigL1mu)
private

Definition at line 1124 of file MuonPhysValMonitoringTool.cxx.

1124  {
1125  ATH_MSG_DEBUG("MuonRoI L1 Trigger: ptThr " << TrigL1mu->thrValue() << " phi " << TrigL1mu->phi() << " eta " << TrigL1mu->eta());
1126  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
1127  if (m_selectMuonCategories[i] == ALL) {
1128  m_TriggerMuonValidationPlots[i]->fill(*TrigL1mu);
1129  break;
1130  }
1131  }
1132  }

◆ handleMuonL2Trigger() [1/2]

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonL2Trigger ( const xAOD::L2CombinedMuon L2CBMu)
private

Definition at line 1182 of file MuonPhysValMonitoringTool.cxx.

1182  {
1183  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
1184  if (m_selectMuonCategories[i] == ALL) {
1185  m_TriggerMuonValidationPlots[i]->fill(*L2CBMu);
1186  break;
1187  }
1188  }
1189  ATH_MSG_DEBUG(" ==> Geometrical selection of Muon L2CB Trigger : pt " << L2CBMu->pt() << " phi " << L2CBMu->phi() << " eta "
1190  << L2CBMu->eta());
1191  }

◆ handleMuonL2Trigger() [2/2]

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonL2Trigger ( const xAOD::L2StandAloneMuon L2SAMu)
private

Definition at line 1134 of file MuonPhysValMonitoringTool.cxx.

1134  {
1135  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
1136  if (m_selectMuonCategories[i] == ALL) {
1137  m_TriggerMuonValidationPlots[i]->fill(*L2SAMu);
1138  break;
1139  }
1140  }
1141  ATH_MSG_DEBUG(" ==> Geometrical selection of Muon L2SA Trigger : pt " << L2SAMu->pt() << " phi " << L2SAMu->phi() << " eta "
1142  << L2SAMu->eta() << " roiWord " << L2SAMu->roiWord()
1143  << " sAddress " << L2SAMu->sAddress());
1144  }

◆ handleMuonSegment()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonSegment ( const xAOD::MuonSegment muSeg,
float  weight = 1.0 
)
private

Definition at line 873 of file MuonPhysValMonitoringTool.cxx.

873  {
874  if (!muSeg) {
875  ATH_MSG_WARNING("No muon segment found");
876  return;
877  }
879  return;
880  if (!m_isData) m_oUnmatchedRecoMuonSegmentPlots->fill(*muSeg, weight);
881  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
882  if (m_selectMuonCategories[i] == ALL) {
883  m_muonSegmentValidationPlots[i]->fill(muSeg, weight);
884  break;
885  }
886  }
887  }

◆ handleMuonTrack()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonTrack ( const xAOD::TrackParticle tp,
xAOD::Muon::TrackParticleType  type,
float  weight = 1.0 
)
private

Definition at line 1020 of file MuonPhysValMonitoringTool.cxx.

1020  {
1021  if (!tp) {
1022  ATH_MSG_WARNING("No track particle found");
1023  return;
1024  }
1025 
1026  // if ID track, check that it passes standard combined mu reco selections
1027  bool passesMuonTrackSel = false;
1028  if (type == xAOD::Muon::InnerDetectorTrackParticle) { passesMuonTrackSel = m_trackSelector->decision(*tp); }
1029 
1030  if (m_isData) {
1031  if (type == xAOD::Muon::InnerDetectorTrackParticle) {
1032  MUCATEGORY thisTrkCategory = ALL;
1033  // for events with a Zmumu candidate, separate Z muon tracks from the rest:
1034  if (m_vZmumuIDTracks.size() > 0) {
1035  thisTrkCategory = REST;
1036  for (const auto& zmu : m_vZmumuIDTracks) {
1037  if (deltaR(zmu, tp) < 0.01) {
1038  thisTrkCategory = PROMPT;
1039  break;
1040  }
1041  }
1042  }
1043 
1044  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
1045  if (m_selectMuonCategories[i] == ALL || m_selectMuonCategories[i] == thisTrkCategory) {
1047  if (passesMuonTrackSel) m_muonIDSelectedTrackValidationPlots[i]->fill(*tp, weight);
1048  }
1049  }
1050  } else if (type == xAOD::Muon::MuonSpectrometerTrackParticle)
1052  else if (type == xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle)
1054  else if (type == xAOD::Muon::MSOnlyExtrapolatedMuonSpectrometerTrackParticle)
1056 
1057  return;
1058  }
1059 
1060  TruthLink truthLink;
1061  if (tp->isAvailable<TruthLink>("truthParticleLink")) { truthLink = tp->auxdata<TruthLink>("truthParticleLink"); }
1062 
1063  // int truthType = tp->isAvailable<int>("truthType")? tp->auxdata< int >("truthType") :0;
1064  // float truthMatchProb = getMatchingProbability(*tp);
1065 
1066  if (!truthLink.isValid()) {
1067  ATH_MSG_DEBUG("No truth link available");
1068  if (type == xAOD::Muon::InnerDetectorTrackParticle) return;
1069  if (!passesAcceptanceCuts(tp)) return;
1070 
1071  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
1072  if (m_selectMuonCategories[i] == ALL) {
1073  // ID track plots for any track
1074  // if (type==xAOD::Muon::InnerDetectorTrackParticle) {
1075  // m_muonIDTrackValidationPlots[i]->fill(*tp);
1076  // if (passesMuonTrackSel) m_muonIDSelectedTrackValidationPlots[i]->fill(*tp);
1077  // } else
1078  if (type == xAOD::Muon::MuonSpectrometerTrackParticle) {
1081  } else if (type == xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle) {
1083  } else if (type == xAOD::Muon::MSOnlyExtrapolatedMuonSpectrometerTrackParticle) {
1085  }
1086  break;
1087  }
1088  }
1089  } // end if no valid truth link
1090  else { // here: valid truth link and truthType
1091 
1092  if (type ==
1093  xAOD::Muon::InnerDetectorTrackParticle) { // don't fill histograms for any ID track, only for muons; buys a lot of time
1094  if ((*truthLink)->absPdgId() != 13 || !MC::isStable(*truthLink)) return; // not a muon
1095  if (HepMC::uniqueID(*truthLink) == HepMC::UNDEFINED_ID || HepMC::is_simulation_particle((*truthLink))) return; // must have valid barcode
1096  }
1097 
1098  if (!passesAcceptanceCuts(*truthLink)) return;
1099  unsigned int thisMuonCategory = getMuonTruthCategory(tp);
1100 
1101  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
1102  if (m_selectMuonCategories[i] == ALL || m_selectMuonCategories[i] == thisMuonCategory) {
1103  if (type == xAOD::Muon::InnerDetectorTrackParticle) {
1104  if (!m_fwdtracksName.empty() && std::abs((*truthLink)->eta()) > 2.5)
1105  m_muonIDForwardTrackValidationPlots[i]->fill(*truthLink, tp, weight);
1106  else if (!m_tracksName.empty()) {
1107  m_muonIDTrackValidationPlots[i]->fill(*truthLink, tp, weight);
1108  if (passesMuonTrackSel) m_muonIDSelectedTrackValidationPlots[i]->fill(*truthLink, tp, weight);
1109  }
1110  } else if (type == xAOD::Muon::MuonSpectrometerTrackParticle) {
1111  m_muonMSTrackValidationPlots[i]->fill(*truthLink, tp, weight);
1112  } else if (type == xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle) {
1113  m_muonMETrackValidationPlots[i]->fill(*truthLink, tp, weight);
1114  } else if (type == xAOD::Muon::MSOnlyExtrapolatedMuonSpectrometerTrackParticle) {
1115  m_muonMSOnlyMETrackValidationPlots[i]->fill(*truthLink, tp, weight);
1116  }
1117  }
1118  }
1119  }
1120 
1121  return;
1122  }

◆ handleMuonTrees()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonTrees ( const xAOD::EventInfo eventInfo,
bool  isData 
)
private

Definition at line 1009 of file MuonPhysValMonitoringTool.cxx.

1009  {
1010  ATH_MSG_DEBUG("Filling MuonTree " << name() << "...");
1011 
1012  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
1013  m_muonValidationPlots[i]->fillTree(eventInfo, isData);
1014 
1015  ATH_MSG_DEBUG("MuonTree is filled for muon category = " << m_selectMuonCategories[i] << " with event # "
1016  << eventInfo->eventNumber());
1017  }
1018  }

◆ handleMuonTrigger()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonTrigger ( const xAOD::Muon mu)
private

Definition at line 1229 of file MuonPhysValMonitoringTool.cxx.

1229  {
1230  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
1231  if (m_selectMuonCategories[i] == ALL) {
1232  m_TriggerMuonValidationPlots[i]->fill(*EFMu);
1233  break;
1234  }
1235  }
1236  ATH_MSG_DEBUG("==> Geometrical selection of EF Trigger muons: pt " << EFMu->pt() << " phi " << EFMu->phi() << " eta " << EFMu->eta()
1237  << " author " << EFMu->author());
1238  }

◆ handleSlowMuon()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleSlowMuon ( const xAOD::SlowMuon smu,
float  weight = 1.0 
)
private

◆ handleTruthMuon()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleTruthMuon ( const xAOD::TruthParticle truthMu,
float  weight = 1.0 
)
private

Definition at line 956 of file MuonPhysValMonitoringTool.cxx.

956  {
957  const xAOD::SlowMuon* smu = nullptr;
958  const xAOD::Muon* mu = nullptr;
959  if (!m_slowMuonsName.empty()) {
960  smu = findRecoSlowMuon(truthMu);
961  if (smu) {
962  const MuonLink muLink = smu->muonLink();
963  if (muLink.isValid()) mu = *muLink;
964 
965  if (!mu) {
966  ATH_MSG_WARNING("Found SlowMuon without valid muon link");
967  smu = nullptr;
968  }
969  }
970  } else {
971  mu = findRecoMuon(truthMu);
972  }
973 
974  if (msgLvl(MSG::DEBUG)) printTruthMuonDebug(truthMu, mu);
975  if (!passesAcceptanceCuts(truthMu)) return;
976 
977  std::unique_ptr<xAOD::Muon> mu_c;
978  if (mu) {
979  try {
980  mu_c = getCorrectedMuon(*mu);
981  } catch (const SG::ExcBadAuxVar&) {
982  ATH_MSG_ERROR("Cannot retrieve aux-item - rejecting muon");
983  return;
984  }
985  }
986 
987  unsigned int thisMuonCategory = getMuonTruthCategory(truthMu);
988  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
989  if (m_selectMuonCategories[i] == ALL || m_selectMuonCategories[i] == thisMuonCategory) {
990  // histos
991  m_muonValidationPlots[i]->fill(
992  truthMu, mu_c.get(), m_MSTracks,
993  weight); // if no muon is found a protection inside MuonValidationPlots will ensure, its plots won't be filled
994  if (!m_slowMuonsName.empty()) m_slowMuonValidationPlots[i]->fill(truthMu, smu, mu_c.get(), weight);
995  // tree branches
996  m_muonValidationPlots[i]->fillTreeBranches(truthMu, mu_c.get(), m_MSTracks);
997  }
998  }
999  if (mu_c) {
1000  m_h_overview_reco_category->Fill(thisMuonCategory - 1, weight);
1001  m_h_overview_reco_authors[thisMuonCategory - 1]->Fill(mu_c->author(), weight);
1002  } else if (!m_isData)
1003  m_oUnmatchedTruthMuonPlots->fill(*truthMu, weight);
1004  }

◆ handleTruthMuonSegment()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleTruthMuonSegment ( const xAOD::MuonSegment truthMuSeg,
const xAOD::TruthParticleContainer muonTruthContainer,
float  weight = 1.0 
)
private

Definition at line 857 of file MuonPhysValMonitoringTool.cxx.

858  {
859  const xAOD::MuonSegment* muSeg = findRecoMuonSegment(truthMuSeg);
861 
862  unsigned int thisMuonCategory = ALL; // getMuonSegmentTruthCategory(truthMuSeg, muonTruthContainer) @@@ Does not work...
863 
864  for (unsigned int i = 0; i < m_selectMuonCategories.size(); i++) {
865  if (m_selectMuonCategories[i] == ALL || m_selectMuonCategories[i] == thisMuonCategory) {
866  m_muonSegmentValidationPlots[i]->fill(truthMuSeg, muSeg,
867  weight); // if no reco muon segment is found a protection inside
868  // MuonSegmentValidationPlots will ensure, its plots won't be filled
869  }
870  }
871  }

◆ initialize()

StatusCode MuonPhysValMonitoring::MuonPhysValMonitoringTool::initialize ( )
overridevirtual

Reimplemented from ManagedMonitorToolBase.

Definition at line 74 of file MuonPhysValMonitoringTool.cxx.

74  {
75  ATH_MSG_INFO("Initializing " << name() << "...");
77 
79 
80  for (unsigned int i = 0; i < m_selectHLTMuonItems.size(); i++) {
81  if (m_selectHLTMuonItems[i][0] == "" || m_selectHLTMuonItems[i][1] == "") continue;
82  m_muonItems.emplace_back(m_selectHLTMuonItems[i][0]);
83  m_L1Seed.emplace_back(m_selectHLTMuonItems[i][1]);
84  }
85 
86  // setup flags
87  if (m_doTrigMuonValidation == false) {
91  }
92  ATH_CHECK(m_trigDec.retrieve(DisableTool{!m_doTrigMuonValidation}));
93 
95  ATH_CHECK(m_muonSelectionTool.retrieve());
96  ATH_CHECK(m_trackSelector.retrieve());
97  ATH_CHECK(m_isoTool.retrieve());
98 
99  return StatusCode::SUCCESS;
100  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

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

Definition at line 29 of file IMonitorToolBase.h.

29 { return IID_IMonitorToolBase; }

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

589 {
590  std::string str("file");
591 
592  switch( interval ) {
593  case all:
594  str = "all";
595  break;
596  case fill:
597  str = "fill";
598  break;
599  case run:
600  str = "run";
601  break;
602  case lowStat:
603  str = "lowStat";
604  break;
605  case medStat:
606  str = "medStat";
607  break;
608  case higStat:
609  str = "higStat";
610  break;
611  case lumiBlock:
612  str = "lumiBlock";
613  break;
614  case eventsBlock:
615  str = "eventsBlock";
616  break;
617  case file:
618  str = "file";
619  break;
620  default:
621  str = "unknown";
622  }
623 
624  return str;
625 }

◆ intervalStringToEnum()

ManagedMonitorToolBase::Interval_t ManagedMonitorToolBase::intervalStringToEnum ( const std::string &  str)
staticinherited

Converts a string to the corresponding Interval_t.

Definition at line 629 of file ManagedMonitorToolBase.cxx.

631 {
632  std::string lcstr( strToLower(str) );
633 
634  if( lcstr == "all" )
635  return all;
636  else if( lcstr == "fill" )
637  return fill;
638  else if( lcstr == "run" )
639  return run;
640  else if( lcstr == "lowStat" )
641  return lowStat;
642  else if( lcstr == "medStat" )
643  return medStat;
644  else if( lcstr == "higStat" )
645  return higStat;
646  else if( lcstr == "lumiBlock" )
647  return lumiBlock;
648  else if( lcstr == "eventsBlock" )
649  return eventsBlock;
650  else if( lcstr == "file" )
651  return file;
652 
653  if( Imp::s_svcLocator ) {
654  IMessageSvc* ms(0);
655  StatusCode sc = Imp::s_svcLocator.load()->service( "MessageSvc", ms, true );
656  if( sc.isSuccess() ) {
657  MsgStream log( ms, "ManagedMonitorToolBase::intervalStringToEnum()" );
658  log << MSG::WARNING << "Unknown ManagedMonitorToolBase::Interval_t \""
659  << str << "\", returning \"file\"" << endmsg;
660  }
661  }
662 
663  return file;
664 }

◆ L2CBTriggerResolution()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::L2CBTriggerResolution ( )
private

Definition at line 1193 of file MuonPhysValMonitoringTool.cxx.

1193  {
1194  int k_L2CBMu_MinDeltaR = -1;
1195  float MinDeltaR = 0.;
1196  ATH_MSG_DEBUG(" m_vL2CBMuons.size()" << m_vL2CBMuons.size());
1197  for (unsigned int i = 0; i < m_vRecoMuons.size(); i++) {
1198  ATH_MSG_DEBUG(":: TEST: listing all Recomu pt=" << m_vRecoMuons.at(i)->pt() << " eta=" << m_vRecoMuons.at(i)->eta() << " phi="
1199  << m_vRecoMuons.at(i)->phi() << " auth=" << m_vRecoMuons.at(i)->author());
1200  }
1201  for (unsigned int i = 0; i < m_vRecoMuons.size(); i++) {
1202  if ((m_vRecoMuons.at(i)->author() != 1) || (std::abs(m_vRecoMuons.at(i)->eta()) > 2.4)) continue;
1203  ATH_MSG_DEBUG(":::: TEST: Recomu pt=" << m_vRecoMuons.at(i)->pt() << " eta=" << m_vRecoMuons.at(i)->eta()
1204  << " phi=" << m_vRecoMuons.at(i)->phi() << " auth=" << m_vRecoMuons.at(i)->author());
1205  k_L2CBMu_MinDeltaR = -1;
1206  MinDeltaR = 1000;
1207  ATH_MSG_DEBUG("==============>>>> k_L2CBMu_MinDeltaR=" << k_L2CBMu_MinDeltaR << " MinDeltaR" << MinDeltaR);
1208  for (unsigned int k = 0; k < m_vL2CBMuons.size(); k++) {
1209  ATH_MSG_DEBUG(" :::::::: TEST: L2CB pt=" << m_vL2CBMuons.at(k)->pt() << " eta=" << m_vL2CBMuons.at(k)->eta()
1210  << " phi=" << m_vL2CBMuons.at(k)->phi()
1211  << " DeltaR=" << deltaR(m_vRecoMuons.at(i), m_vL2CBMuons.at(k)));
1212  if ((deltaR(m_vRecoMuons.at(i), m_vL2CBMuons.at(k)) < 0.1 &&
1213  (deltaR(m_vRecoMuons.at(i), m_vL2CBMuons.at(k)) < MinDeltaR))) {
1214  k_L2CBMu_MinDeltaR = k;
1215  MinDeltaR = deltaR(m_vRecoMuons.at(i), m_vL2CBMuons.at(k));
1216  ATH_MSG_DEBUG("==============>>>> taken!!!! k_L2CBMu_MinDeltaR=" << k_L2CBMu_MinDeltaR << " MinDeltaR"
1217  << MinDeltaR);
1218  }
1219  }
1220  if (k_L2CBMu_MinDeltaR == -1) continue;
1221  for (unsigned int c = 0; c < m_selectMuonCategories.size(); c++) {
1222  if (m_selectMuonCategories[c] == ALL) {
1223  m_TriggerMuonValidationPlots[c]->fill(*m_vL2CBMuons.at(k_L2CBMu_MinDeltaR), *m_vRecoMuons.at(i));
1224  }
1225  }
1226  }
1227  }

◆ L2SATriggerResolution()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::L2SATriggerResolution ( )
private

Definition at line 1146 of file MuonPhysValMonitoringTool.cxx.

1146  {
1147  int k_L2SAMu_MinDeltaR = -1;
1148  float MinDeltaR = 0.;
1149  ATH_MSG_DEBUG(" m_vL2SAMuons.size()" << m_vL2SAMuons.size());
1150  for (unsigned int i = 0; i < m_vRecoMuons.size(); i++) {
1151  ATH_MSG_DEBUG(":: TEST: listing all Recomu pt=" << m_vRecoMuons.at(i)->pt() << " eta=" << m_vRecoMuons.at(i)->eta() << " phi="
1152  << m_vRecoMuons.at(i)->phi() << " auth=" << m_vRecoMuons.at(i)->author());
1153  }
1154  for (unsigned int i = 0; i < m_vRecoMuons.size(); i++) {
1155  if ((m_vRecoMuons.at(i)->author() != 1) || (std::abs(m_vRecoMuons.at(i)->eta()) > 2.4)) continue;
1156  ATH_MSG_DEBUG(":::: TEST: Recomu pt=" << m_vRecoMuons.at(i)->pt() << " eta=" << m_vRecoMuons.at(i)->eta()
1157  << " phi=" << m_vRecoMuons.at(i)->phi() << " auth=" << m_vRecoMuons.at(i)->author());
1158  k_L2SAMu_MinDeltaR = -1;
1159  MinDeltaR = 1000;
1160  ATH_MSG_DEBUG("==============>>>> k_L2SAMu_MinDeltaR=" << k_L2SAMu_MinDeltaR << " MinDeltaR" << MinDeltaR);
1161  for (unsigned int k = 0; k < m_vL2SAMuons.size(); k++) {
1162  ATH_MSG_DEBUG(" :::::::: TEST: L2SA pt=" << m_vL2SAMuons.at(k)->pt() << " eta=" << m_vL2SAMuons.at(k)->eta()
1163  << " phi=" << m_vL2SAMuons.at(k)->phi()
1164  << " DeltaR=" << deltaR(m_vRecoMuons.at(i), m_vL2SAMuons.at(k)));
1165  if ((deltaR(m_vRecoMuons.at(i), m_vL2SAMuons.at(k)) < 0.1 &&
1166  (deltaR(m_vRecoMuons.at(i), m_vL2SAMuons.at(k)) < MinDeltaR))) {
1167  k_L2SAMu_MinDeltaR = k;
1168  MinDeltaR = deltaR(m_vRecoMuons.at(i), m_vL2SAMuons.at(k));
1169  ATH_MSG_DEBUG("==============>>>> taken!!!! k_L2SAMu_MinDeltaR=" << k_L2SAMu_MinDeltaR << " MinDeltaR"
1170  << MinDeltaR);
1171  }
1172  }
1173  if (k_L2SAMu_MinDeltaR == -1) continue;
1174  for (unsigned int c = 0; c < m_selectMuonCategories.size(); c++) {
1175  if (m_selectMuonCategories[c] == ALL) {
1176  m_TriggerMuonValidationPlots[c]->fill(*m_vL2SAMuons.at(k_L2SAMu_MinDeltaR), *m_vRecoMuons.at(i));
1177  }
1178  }
1179  }
1180  }

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

1925 {
1926  if (!m_lumiDataKey.empty()) {
1928  return lumi->lbAverageInteractionsPerCrossing();
1929  } else {
1930  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbAverageInteractionsPerCrossing() can't work properly! ");
1931  ATH_MSG_DEBUG("Warning: lbAverageInteractionsPerCrossing() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1932  return -1.0;
1933  }
1934  // not reached
1935 }

◆ lbAverageLivefraction()

float ManagedMonitorToolBase::lbAverageLivefraction ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Average luminosity livefraction.

Definition at line 1992 of file ManagedMonitorToolBase.cxx.

1994 {
1996  return 1.0;
1997 
2000  return live->lbAverageLiveFraction();
2001  } else {
2002  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbAverageLivefraction() can't work properly! ");
2003  ATH_MSG_DEBUG("Warning: lbAverageLivefraction() - luminosity not availble (i.e. EnableLumi = False)");
2004  return -1.0;
2005  }
2006  // not reached
2007 }

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

1961 {
1962  if (!m_lumiDataKey.empty()) {
1964  return lumi->lbAverageLuminosity();
1965  } else {
1966  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbAverageLuminosity() can't work properly! ");
1967  ATH_MSG_DEBUG("Warning: lbAverageLuminosity() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1968  return -1.0;
1969  }
1970  // not reached
1971 }

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

2048 {
2050  return m_defaultLBDuration;
2051  }
2052  if (!m_lbDurationDataKey.empty()) {
2054  return dur->lbDuration();
2055  } else {
2056  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbDuration() can't work properly! ");
2057  ATH_MSG_DEBUG("Warning: lbDuration() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
2058  return m_defaultLBDuration;
2059  }
2060  // not reached
2061 }

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

1941 {
1942  if (!m_lumiDataKey.empty()) {
1944  float muToLumi = lumi->muToLumi();
1945  if (muToLumi > 0) {
1946  return lumi->lbLuminosityPerBCIDVector().at (ctx.eventID().bunch_crossing_id()) / muToLumi;
1947  }
1948  return 0;
1949  } else {
1950  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbInteractionsPerCrossing() can't work properly! ");
1951  ATH_MSG_DEBUG("Warning: lbInteractionsPerCrossing() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1952  return -1.0;
1953  }
1954  // not reached
1955 }

◆ lbLuminosityPerBCID()

float ManagedMonitorToolBase::lbLuminosityPerBCID ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Instantaneous luminosity.

Definition at line 1975 of file ManagedMonitorToolBase.cxx.

1977 {
1978  if (!m_lumiDataKey.empty()) {
1980  return lumi->lbLuminosityPerBCIDVector().at (ctx.eventID().bunch_crossing_id());
1981  } else {
1982  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbLuminosityPerBCID() can't work properly! ");
1983  ATH_MSG_DEBUG("Warning: lbLuminosityPerBCID() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1984  return -1.0;
1985  }
1986  // not reached
1987 }

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

2032 {
2033  if (!m_lumiDataKey.empty()) {
2034  return (lbAverageLuminosity(ctx)*lbDuration(ctx))*lbAverageLivefraction(ctx);
2035  } else{
2036  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbLumiWeight() can't work properly! ");
2037  ATH_MSG_DEBUG("Warning: lbLumiWeight() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
2038  return -1.0;
2039  }
2040  // not reached
2041 }

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

2013 {
2015  return 1.0;
2016 
2019  return live->l1LiveFractionVector().at (ctx.eventID().bunch_crossing_id());
2020  } else {
2021  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! livefractionPerBCID() can't work properly! ");
2022  ATH_MSG_DEBUG("Warning: livefractionPerBCID() - luminosity retrieved available (i.e. EnableLumi = False)");
2023  return -1.0;
2024  }
2025  // not reached
2026 }

◆ 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

◆ modifyHistogram()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::modifyHistogram ( TH1 hist)
private

Definition at line 1444 of file MuonPhysValMonitoringTool.cxx.

1444  {
1445  std::string histname = hist->GetName();
1446 
1447  if(m_muonsName == "Muons"){
1448  if (histname.find("parameters_z0") != std::string::npos) {
1449  hist->GetXaxis()->Set(80, -200., 200.);
1450  }
1451  if (histname.find("parameters_d0") != std::string::npos && histname.find("parameters_d0_small") == std::string::npos) {
1452  hist->GetXaxis()->Set(80, -1., 1.);
1453  hist->GetYaxis()->SetTitle("Entries / 0.025 mm");
1454  }
1455  }
1456 
1457  if(m_muonsName == "MuonsLRT"){
1458  if (histname.find("parameters_d0") != std::string::npos && histname.find("parameters_d0_small") == std::string::npos) {
1459  hist->Rebin(100);
1460  hist->GetYaxis()->SetTitle("Entries / 2.5 mm");
1461  }
1462  }
1463 
1464 
1465  if (histname.find("trigger_L1_pt") != std::string::npos) { // if (histname=="Muons_All_trigger_L1_pt"){
1466  hist->SetTitle("L1Trigger Muons pt treshold");
1467  hist->GetXaxis()->SetTitle("L1Trigger Muons pt treshold [GeV]");
1468  hist->GetXaxis()->Set(30, -0.5, 29.5);
1469  }
1470  if (histname.find("trigger_L1_eta_pt") != std::string::npos) { // if (histname=="Muons_All_trigger_L1_eta_pt") {
1471  hist->SetTitle("L1Trigger Muons pt treshold vs eta");
1472  hist->GetYaxis()->Set(90, -0.5, 29.5);
1473  hist->GetYaxis()->SetTitle("L1Trigger Muons pt treshold [GeV]");
1474  }
1475 
1476  if (histname.find("trigger") != std::string::npos &&
1477  ((histname.find("Denom_pt") != std::string::npos) || (histname.find("Numer_pt") != std::string::npos) ||
1478  (histname.find("Features_pt") != std::string::npos)))
1479  hist->GetXaxis()->Set(200, 0., 200.);
1480 
1481  if (histname.find("hits") != std::string::npos) {
1482  if (histname.find("etaLayer2") != std::string::npos)
1483  hist->GetXaxis()->Set(15, -0.5, 14.5);
1484  else if (histname.find("etaLayer") != std::string::npos)
1485  hist->GetXaxis()->Set(11, -0.5, 10.5);
1486  }
1487 
1489  bool is2D = !(histname.find("_vs_") == std::string::npos);
1491 
1492  if (histname.find("METrackParticles") != std::string::npos) {
1493  if (histname.find("Res_eta") != std::string::npos) {
1494  if (is2D)
1495  hist->GetYaxis()->Set(50, -0.025, 0.025);
1496  else
1497  hist->GetXaxis()->Set(50, -0.025, 0.025);
1498  } else if (histname.find("Res_phi") != std::string::npos) {
1499  if (is2D)
1500  hist->GetYaxis()->Set(50, -0.02, 0.02);
1501  else
1502  hist->GetXaxis()->Set(50, -0.02, 0.02);
1503  }
1504  } else if (histname.find("MSTrackParticles") != std::string::npos) {
1505  if (histname.find("Res_eta") != std::string::npos) {
1506  if (is2D)
1507  hist->GetYaxis()->Set(50, -0.025, 0.025);
1508  else
1509  hist->GetXaxis()->Set(50, -0.025, 0.025);
1510  } else if (histname.find("Res_phi") != std::string::npos) {
1511  if (is2D)
1512  hist->GetYaxis()->Set(50, -0.05, 0.05);
1513  else
1514  hist->GetXaxis()->Set(50, -0.05, 0.05);
1515  }
1516  } else {
1517  if (histname.find("Res_eta") != std::string::npos) {
1518  if (is2D)
1519  hist->GetYaxis()->Set(50, -0.005, 0.005);
1520  else
1521  hist->GetXaxis()->Set(50, -0.005, 0.005);
1522  } else if (histname.find("Res_phi") != std::string::npos) {
1523  if (is2D)
1524  hist->GetYaxis()->Set(50, -0.002, 0.002);
1525  else
1526  hist->GetXaxis()->Set(50, -0.002, 0.002);
1527  }
1528  }
1529 
1530  if (histname.find("trigger") != std::string::npos) {
1531  // RESO EF - MC
1532  if ((!m_isData) && histname.find("MuidCo") != std::string::npos &&
1533  (histname.find("BARREL") != std::string::npos || histname.find("WHOLE_DETECT") != std::string::npos)) {
1534  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1535  hist->GetXaxis()->Set(100, -0.04, 0.04);
1536  }
1537  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.04, 0.04); }
1538  if (histname.find("Res_eta") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1539  hist->GetXaxis()->Set(100, -0.0005, 0.0005);
1540  }
1541  if (histname.find("Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0005, 0.0005); }
1542 
1543  if (histname.find("Res_phi") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1544  hist->GetXaxis()->Set(100, -0.0002, 0.0002);
1545  }
1546  if (histname.find("Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0002, 0.0002); }
1547  }
1548  if ((!m_isData) && histname.find("MuidCo") != std::string::npos && (histname.find("ENDCAPS") != std::string::npos)) {
1549  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1550  hist->GetXaxis()->Set(100, -0.05, 0.05);
1551  }
1552  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.05, 0.05); }
1553  if (histname.find("Res_eta") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1554  hist->GetXaxis()->Set(100, -0.001, 0.001);
1555  }
1556  if (histname.find("Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.001, 0.001); }
1557 
1558  if (histname.find("Res_phi") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1559  hist->GetXaxis()->Set(100, -0.0003, 0.0003);
1560  }
1561  if (histname.find("Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0003, 0.0003); }
1562  }
1563  if ((!m_isData) && histname.find("MuidSA") != std::string::npos) {
1564  if (histname.find("Res_eta") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1565  hist->GetXaxis()->Set(100, -0.03, 0.03);
1566  }
1567  if (histname.find("Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1568 
1569  if (histname.find("Res_phi") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1570  hist->GetXaxis()->Set(100, -0.03, 0.03);
1571  }
1572  if (histname.find("Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1573  }
1574  if ((!m_isData) && histname.find("MuidSA") != std::string::npos && (histname.find("BARREL") != std::string::npos)) {
1575  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1576  hist->GetXaxis()->Set(100, -0.15, 0.15);
1577  }
1578  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.15, 0.15); }
1579  }
1580  if ((!m_isData) && histname.find("MuidSA") != std::string::npos &&
1581  (histname.find("ENDCAPS") != std::string::npos || histname.find("WHOLE_DETECT") != std::string::npos)) {
1582  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1583  hist->GetXaxis()->Set(100, -0.2, 0.2);
1584  }
1585  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.2, 0.2); }
1586  }
1587 
1588  // RESO EF - DATA
1589  if ((m_isData) && histname.find("MuidCo") != std::string::npos &&
1590  (histname.find("BARREL") != std::string::npos || histname.find("WHOLE_DETECT") != std::string::npos)) {
1591  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1592  hist->GetXaxis()->Set(100, -0.06, 0.06);
1593  }
1594  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.06, 0.06); }
1595  if (histname.find("Res_eta") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1596  hist->GetXaxis()->Set(100, -0.001, 0.001);
1597  }
1598  if (histname.find("Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.001, 0.001); }
1599 
1600  if (histname.find("Res_phi") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1601  hist->GetXaxis()->Set(100, -0.0005, 0.0005);
1602  }
1603  if (histname.find("Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0005, 0.0005); }
1604  }
1605  if ((m_isData) && histname.find("MuidCo") != std::string::npos && (histname.find("ENDCAPS") != std::string::npos)) {
1606  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1607  hist->GetXaxis()->Set(100, -0.1, 0.1);
1608  }
1609  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.1, 0.1); }
1610  if (histname.find("Res_eta") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1611  hist->GetXaxis()->Set(100, -0.0015, 0.0015);
1612  }
1613  if (histname.find("Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0015, 0.0015); }
1614 
1615  if (histname.find("Res_phi") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1616  hist->GetXaxis()->Set(100, -0.0005, 0.0005);
1617  }
1618  if (histname.find("Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.0005, 0.0005); }
1619  }
1620  if ((m_isData) && histname.find("MuidSA") != std::string::npos) {
1621  if (histname.find("Res_eta") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1622  hist->GetXaxis()->Set(100, -0.03, 0.03);
1623  }
1624  if (histname.find("Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1625 
1626  if (histname.find("Res_phi") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1627  hist->GetXaxis()->Set(100, -0.03, 0.03);
1628  }
1629  if (histname.find("Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1630  }
1631  if ((m_isData) && histname.find("MuidSA") != std::string::npos && (histname.find("BARREL") != std::string::npos)) {
1632  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1633  hist->GetXaxis()->Set(100, -0.3, 0.3);
1634  }
1635  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.3, 0.3); }
1636  }
1637  if ((m_isData) && histname.find("MuidSA") != std::string::npos &&
1638  (histname.find("ENDCAPS") != std::string::npos || histname.find("WHOLE_DETECT") != std::string::npos)) {
1639  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1640  hist->GetXaxis()->Set(100, -0.5, 0.5);
1641  }
1642  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.5, 0.5); }
1643  }
1644 
1645  // LEVEL2
1646  if ((histname.find("L2_StandAlone") != std::string::npos)) {
1647  if (histname.find("Res_eta") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1648  hist->GetXaxis()->Set(100, -0.03, 0.03);
1649  }
1650  if (histname.find("Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1651 
1652  if (histname.find("Res_phi") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1653  hist->GetXaxis()->Set(100, -0.03, 0.03);
1654  }
1655  if (histname.find("Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.03, 0.03); }
1656  }
1657  if ((histname.find("L2_StandAlone") != std::string::npos) && (histname.find("BARREL") != std::string::npos)) {
1658  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1659  hist->GetXaxis()->Set(100, -0.3, 0.3);
1660  }
1661  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.3, 0.3); }
1662  }
1663  if ((histname.find("L2_StandAlone") != std::string::npos) &&
1664  ((histname.find("ENDCAPS") != std::string::npos) || (histname.find("WHOLE_DETECT") != std::string::npos))) {
1665  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1666  hist->GetXaxis()->Set(100, -0.5, 0.5);
1667  }
1668  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.5, 0.5); }
1669  }
1670 
1671  if ((histname.find("L2_Combined") != std::string::npos)) {
1672  if (histname.find("Res_eta") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1673  hist->GetXaxis()->Set(100, -0.002, 0.002);
1674  }
1675  if (histname.find("Res_eta_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.002, 0.002); }
1676 
1677  if (histname.find("Res_phi") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1678  hist->GetXaxis()->Set(100, -0.001, 0.001);
1679  }
1680  if (histname.find("Res_phi_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.001, 0.001); }
1681  if (histname.find("Res_pT") != std::string::npos && histname.find("_vs_") == std::string::npos) {
1682  hist->GetXaxis()->Set(100, -0.2, 0.2);
1683  }
1684  if (histname.find("Res_pT_vs_") != std::string::npos) { hist->GetYaxis()->Set(100, -0.2, 0.2); }
1685  }
1686  }
1687  }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ newEventsBlockFlag()

bool ManagedMonitorToolBase::newEventsBlockFlag ( ) const
inlineprotectedinherited

Definition at line 855 of file ManagedMonitorToolBase.h.

855 { return m_newEventsBlock; }

◆ newHigStatIntervalFlag()

bool ManagedMonitorToolBase::newHigStatIntervalFlag ( ) const
inlineprotectedinherited

Definition at line 851 of file ManagedMonitorToolBase.h.

851 { return m_newHigStatInterval; }

◆ newLowStatFlag()

bool ManagedMonitorToolBase::newLowStatFlag ( ) const
inlineprotectedinherited

Definition at line 852 of file ManagedMonitorToolBase.h.

852 { return m_newLowStat; }

◆ newLowStatIntervalFlag()

bool ManagedMonitorToolBase::newLowStatIntervalFlag ( ) const
inlineprotectedinherited

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.

Definition at line 849 of file ManagedMonitorToolBase.h.

849 { return m_newLowStatInterval; }

◆ newLumiBlockFlag()

bool ManagedMonitorToolBase::newLumiBlockFlag ( ) const
inlineprotectedinherited

Definition at line 853 of file ManagedMonitorToolBase.h.

853 { return m_newLumiBlock; }

◆ newMedStatIntervalFlag()

bool ManagedMonitorToolBase::newMedStatIntervalFlag ( ) const
inlineprotectedinherited

Definition at line 850 of file ManagedMonitorToolBase.h.

850 { return m_newMedStatInterval; }

◆ newRunFlag()

bool ManagedMonitorToolBase::newRunFlag ( ) const
inlineprotectedinherited

Definition at line 854 of file ManagedMonitorToolBase.h.

854 { return m_newRun; }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

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

Definition at line 2343 of file ManagedMonitorToolBase.cxx.

2344  {
2345  std::string item;
2346  std::stringstream ss(line);
2347 
2348  if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "ManagedMonitorToolBase::parseList:";
2349 
2350  while ( std::getline(ss, item, ',') ) {
2351  std::stringstream iss(item); // remove
2352  iss >> item; // whitespace
2353  if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " " << item;
2354  result.push_back(item);
2355  }
2356 
2357  msg(MSG::DEBUG) << endmsg;
2358  return StatusCode::SUCCESS;
2359 }

◆ passesAcceptanceCuts()

bool MuonPhysValMonitoring::MuonPhysValMonitoringTool::passesAcceptanceCuts ( const xAOD::IParticle prt)
private

Definition at line 1689 of file MuonPhysValMonitoringTool.cxx.

1689  {
1690  if (prt->pt() < 2000.) return false;
1691  if (std::abs(prt->eta()) > 2.7) return false;
1692  return true;
1693  }

◆ preSelector()

bool ManagedMonitorToolBase::preSelector ( )
virtualinherited

Implements IMonitorToolBase.

Definition at line 1911 of file ManagedMonitorToolBase.cxx.

1913 {
1914  if( m_preScaleProp > 1 ) {
1915  return ( (m_nEvents % m_preScaleProp) == 1 );
1916  }
1917  return true;
1918 }

◆ printMuonDebug()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::printMuonDebug ( const xAOD::Muon mu)
private

Definition at line 1288 of file MuonPhysValMonitoringTool.cxx.

1288  {
1289  const xAOD::TrackParticle* tp = mu->primaryTrackParticle();
1290  TruthLink truthLink;
1291  if (tp) {
1292  if (!tp->isAvailable<TruthLink>("truthParticleLink"))
1293  ATH_MSG_VERBOSE("No truth link found");
1294  else
1295  truthLink = tp->auxdata<TruthLink>("truthParticleLink");
1296  }
1297  ATH_MSG_DEBUG("Muon: pt " << mu->pt() << " eta " << mu->eta() << " link " << truthLink.isValid());
1298  }

◆ printTruthMuonDebug()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::printTruthMuonDebug ( const xAOD::TruthParticle truthMu,
const xAOD::Muon mu 
)
private

Definition at line 1329 of file MuonPhysValMonitoringTool.cxx.

1329  {
1330  ATH_MSG_DEBUG("Truth muon: " << truthMu->pt() << " eta " << truthMu->eta());
1331  if (!mu) return;
1332  ATH_MSG_DEBUG("Reco muon: " << mu->pt() << " eta " << mu->eta());
1333  }

◆ procHistograms()

StatusCode MuonPhysValMonitoring::MuonPhysValMonitoringTool::procHistograms ( )
overridevirtual

An inheriting class should either override this function or finalHists().

Reimplemented from ManagedMonitorToolBase.

Definition at line 1335 of file MuonPhysValMonitoringTool.cxx.

1335  {
1336  ATH_MSG_INFO("Finalising hists " << name() << "...");
1337  for (const auto& plots : m_muonValidationPlots) plots->finalize();
1338  for (const auto& plots : m_TriggerMuonValidationPlots) plots->finalize();
1339  if (!m_isData) {
1340  m_oUnmatchedRecoMuonPlots->finalize();
1341  m_oUnmatchedTruthMuonPlots->finalize();
1342  }
1343 
1344  for (const auto& plots : m_muonMSTrackValidationPlots) plots->finalize();
1345  for (const auto& plots : m_muonMETrackValidationPlots) plots->finalize();
1346  for (const auto& plots : m_muonMSOnlyMETrackValidationPlots) plots->finalize();
1347  for (const auto& plots : m_muonIDTrackValidationPlots) plots->finalize();
1348  for (const auto& plots : m_muonIDSelectedTrackValidationPlots) plots->finalize();
1349  for (const auto& plots : m_muonIDForwardTrackValidationPlots) plots->finalize();
1350  if (!m_isData)
1352 
1353  for (const auto& plots : m_muonSegmentValidationPlots) plots->finalize();
1354  if (!m_isData)
1356 
1357  if (m_doMuonTree) {
1358  for (const auto& plots : m_muonValidationPlots) {
1359  if (plots->getMuonTree()) { plots->getMuonTree()->getTree()->Write(); }
1360  }
1361  }
1362 
1363  return StatusCode::SUCCESS;
1364  }//procHistograms*/

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

1648  {
1649  if (!e)
1650  return StatusCode::FAILURE;
1651 
1652  TGraph* g = reinterpret_cast<TGraph*>(e);
1653  std::string name = e->GetName();
1654 
1655  // MANAGED
1656  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1657  // warn about not using merge algorithms
1658  if (group.histo_mgmt() == ATTRIB_X_VS_LB && group.merge().empty()) {
1659  ATH_MSG_WARNING("HEY! Attempting to register "<<name<<" as a per-LB histogram, but not setting the merge algorithm! Use \"merge\", at least.");
1660  }
1661  // add the efficiency to rebooking vector
1662  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1663  m_templateEfficiencies[group.interval()].push_back( MgmtParams<TEfficiency>(e, group) );
1664  } else {
1665  ATH_MSG_ERROR("Attempt to book managed graph " << name << " with invalid interval type " << intervalEnumToString(group.interval()));
1666  return StatusCode::FAILURE;
1667  }
1668 
1669  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1670  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, name, false );
1671  registerMetadata(streamName, name, group).ignore();
1672  return m_THistSvc->regGraph( streamName, g );
1673  } else {
1674  // UNMANAGED
1675  if( m_manager != 0 ) {
1676  std::string genericName = NoOutputStream().getStreamName( this, group, name );
1677  m_manager->writeAndDelete( genericName );
1678  m_manager->passOwnership( e, genericName );
1679  }
1680 
1681  std::string streamName = streamNameFunction()->getStreamName( this, group, name, false );
1683  if (smd != StatusCode::SUCCESS)
1684  return StatusCode::FAILURE;
1685 
1686  return m_THistSvc->regGraph( streamName, g );
1687  }
1688 }

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

1704 {
1705  if (!g)
1706  return StatusCode::FAILURE;
1707 
1708  // This part of the code deals with MANAGED type
1709  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1710  // Create an unmanaged group based on the original MonGroup instance passed
1711  // This is needed because managed graph is presented as a number of unmanaged
1712  // graphs (one per each interval)
1713  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1714 
1715  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1716  m_templateGraphs[group.interval()].push_back( MgmtParams<TGraph>(g, group_unmanaged) );
1717  } else {
1718  ATH_MSG_ERROR("Attempt to book managed graph " << g->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
1719  return StatusCode::FAILURE;
1720  }
1721 
1722  std::string name = g->GetName();
1723  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, name, false );
1724  registerMetadata(streamName, name, group).ignore();
1725  return m_THistSvc->regGraph( streamName, g );
1726  //return m_THistSvc->regGraph( streamName );
1727  }
1728 
1729  // This part of the code deals with UNMANAGED type
1730  std::string gName = g->GetName();
1731 
1732  if( m_manager != 0 ) {
1733  std::string genericName = NoOutputStream().getStreamName( this, group, gName );
1734  m_manager->writeAndDelete( genericName );
1735  m_manager->passOwnership( g, genericName );
1736  }
1737 
1738  std::string streamName = streamNameFunction()->getStreamName( this, group, gName, false );
1739 
1741  if (smd != StatusCode::SUCCESS) return StatusCode::FAILURE;
1742 
1743  return m_THistSvc->regGraph( streamName, g );
1744 }

◆ regGraph() [2/2]

StatusCode ManagedMonitorToolBase::regGraph ( TGraph *  g,
const std::string &  system,
Interval_t  interval,
MgmtAttr_t  histo_mgmt = ATTRIB_MANAGED,
const std::string &  chain = "",
const std::string &  merge = "" 
)
virtualinherited

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.

1695 {
1696  MonGroup group( this, system, interval, histo_mgmt, chain, merge );
1697  return regGraph( g, group );
1698 }

◆ regHist() [1/4]

StatusCode ManagedMonitorToolBase::regHist ( LWHist h,
const MonGroup group 
)
virtualinherited

Definition at line 1522 of file ManagedMonitorToolBase.cxx.

1523 {
1524  // You may want to setROOTBackend to true in online environment
1525  //LWHistControls::setROOTBackend(true);
1526 
1527  if (!h)
1528  return StatusCode::FAILURE;
1529 
1530  if (!m_bookHistogramsInitial) {
1531  ATH_MSG_DEBUG("Yura: very first time");
1532  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1533 
1534  ATH_MSG_DEBUG("Yura: we have managed histograms");
1535  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1536  ATH_MSG_DEBUG(" Yura: adding histogram" << h->GetName());
1537  m_templateLWHistograms[group.interval()].push_back( MgmtParams<LWHist>(h, group) );
1538  } else {
1539  ATH_MSG_ERROR("Attempt to book managed histogram " << h->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
1540  return StatusCode::FAILURE;
1541  }
1542  //return StatusCode::SUCCESS;
1543  }
1544  }
1545 
1546  //FIXME: Code copied more or less verbatim from above. Collect most code (espc. for streamname) in common helpers!!
1547  std::string hName = h->GetName();
1548 
1549  if( m_manager )
1550  {
1551  std::string genericName = NoOutputStream().getStreamName(this, group, hName );
1552  LWHistAthMonWrapper::setKey(h,genericName);
1553  LWHist* prevLWHist = m_manager->ownedLWHistOfKey(genericName);
1554  if (prevLWHist)
1555  {
1556  std::set<LWHist*>::iterator it = m_lwhists.find(prevLWHist);
1557  if (it!=m_lwhists.end())
1558  {
1559  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1560  m_manager->writeAndResetLWHist( genericName, LWHistAthMonWrapper::streamName(prevLWHist) );
1561  } else {
1562  m_manager->writeAndDeleteLWHist( genericName, LWHistAthMonWrapper::streamName(prevLWHist) );
1563  }
1564  m_lwhists.erase(it);
1565  }
1566  }
1567  m_manager->passOwnership( h, genericName );
1568  }
1569  m_lwhists.insert(h);
1570 
1571  std::string streamName = streamNameFunction()->getStreamName( this, group, hName );
1573  registerMetadata(streamName, hName, group).ignore();
1574 
1575  //Delay registration with THistSvc (unless root backend):
1576  //m_lwhistMap.insert(std::pair<LWHist*,std::string>(h,streamName));
1577  if (h->usingROOTBackend())
1578  {
1579  h->setOwnsROOTHisto(false);//Since might end up with thist svc
1580  return m_THistSvc->regHist( streamName, h->getROOTHistBase() );
1581  }
1582 
1583  return StatusCode::SUCCESS;
1584 
1585 }

◆ regHist() [2/4]

StatusCode ManagedMonitorToolBase::regHist ( LWHist h,
const std::string &  system,
Interval_t  interval,
MgmtAttr_t  histo_mgmt = ATTRIB_MANAGED,
const std::string &  chain = "",
const std::string &  merge = "" 
)
virtualinherited

Support for lightweight histograms:

Definition at line 1515 of file ManagedMonitorToolBase.cxx.

1517 {
1518  MonGroup group( this, system, interval, histo_mgmt, chain, merge );
1519  return regHist( h, group );
1520 }

◆ regHist() [3/4]

StatusCode ManagedMonitorToolBase::regHist ( TH1 h,
const MonGroup group 
)
virtualinherited

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.

1464 {
1465 // ManagedMonitorToolBase_addHistStatistics(this,h);
1466 
1467  if (!h)
1468  return StatusCode::FAILURE;
1469 
1470  // This part of the code deals with MANAGED type
1471  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1472  /*
1473  Create an unmanaged group based on the original MonGroup instance passed
1474  It is needed because managed histogram is presented as a number of unmanaged
1475  histograms (one per each interval)
1476  Update (PUEO) - I don't think it actually matters, and need to keep
1477  track of "proper" attribute for X_VS_LB
1478  */
1479 
1480  if (group.histo_mgmt() == ATTRIB_X_VS_LB && group.merge().empty()) {
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.");
1482  }
1483 
1484  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1485  m_templateHistograms[group.interval()].push_back( MgmtParams<TH1>(h, group) );
1486  } else {
1487  ATH_MSG_ERROR("Attempt to book managed histogram " << h->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
1488  return StatusCode::FAILURE;
1489  }
1490 
1491  std::string hName = h->GetName();
1492  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1493  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, hName, false );
1494  registerMetadata(streamName, hName, group).ignore();
1495  return m_THistSvc->regHist( streamName, h );
1496  }
1497 
1498  // This part of the code deals with UNMANAGED type
1499  std::string hName = h->GetName();
1500 
1501  if( m_manager != 0 ) {
1502  std::string genericName = NoOutputStream().getStreamName( this, group, hName );
1503  m_manager->writeAndDelete( genericName );
1504  m_manager->passOwnership( h, genericName );
1505  }
1506 
1507  std::string streamName = streamNameFunction()->getStreamName( this, group, hName, false );
1508 
1510  if (smd != StatusCode::SUCCESS) return StatusCode::FAILURE;
1511 
1512  return m_THistSvc->regHist( streamName, h );
1513 }

◆ regHist() [4/4]

StatusCode ManagedMonitorToolBase::regHist ( TH1 h,
const std::string &  system,
Interval_t  interval,
MgmtAttr_t  histo_mgmt = ATTRIB_MANAGED,
const std::string &  chain = "",
const std::string &  merge = "" 
)
virtualinherited

Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram.

Definition at line 1453 of file ManagedMonitorToolBase.cxx.

1456 {
1457  MonGroup group( this, system, interval, histo_mgmt, chain, merge );
1458  return regHist( h, group );
1459 }

◆ registerMetadata()

StatusCode ManagedMonitorToolBase::registerMetadata ( const std::string &  streamName,
const std::string &  hName,
const MonGroup group 
)
protectedinherited

Definition at line 1005 of file ManagedMonitorToolBase.cxx.

1007  {
1009  TTree* metadata(0);
1010  std::string mdStreamName( streamName );
1011  size_t found=mdStreamName.rfind('/');
1012 
1013  if ( found != std::string::npos )
1014  mdStreamName.replace( found, mdStreamName.length(), "/metadata" );
1015 
1016  MDMap_t::iterator i = m_metadataMap.find( mdStreamName );
1017  if( i == m_metadataMap.end() ) {
1018  metadata = new TTree( "metadata", "Monitoring Metadata" );
1019  if (! metadata) return StatusCode::FAILURE;
1020  StatusCode scmd = m_THistSvc->regTree( mdStreamName, metadata );
1021  if (scmd == StatusCode::FAILURE) return StatusCode::FAILURE;
1022  MDMap_t::value_type valToInsert( mdStreamName, new OutputMetadata(metadata) );
1023  i = m_metadataMap.insert( valToInsert ).first;
1024  }
1025 
1026  i->second->fill( hName, group.interval(), group.chain(), group.merge() );
1027  }
1028  return StatusCode::SUCCESS;
1029 }

◆ regManagedEfficiencies()

StatusCode ManagedMonitorToolBase::regManagedEfficiencies ( std::vector< MgmtParams< TEfficiency > > &  templateEfficiencies)
protectedinherited

Definition at line 1200 of file ManagedMonitorToolBase.cxx.

1200  {
1201  bool allIsOk = true;
1202  for( auto& it : templateEfficiencies ) {
1203  // get components of MgmtParams and copy efficiency
1204  MonGroup group = it.m_group;
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); // reset histogram
1211  std::string name = e->GetName();
1212 
1213  // make TGraph casts of TEfficiencies
1214  TGraph* theGraph = reinterpret_cast<TGraph*>(theEfficiency);
1215  TGraph* g = reinterpret_cast<TGraph*>(e);
1216 
1217  // Get the streamName for the previous interval
1218  std::string streamName = streamNameFunction()->getStreamName( this, group, name, true );
1219 
1220  // RE-REGISTER
1221  // 1) De-register the original graph with the THistSvc
1222  StatusCode sc1 = m_THistSvc->deReg( theGraph );
1223  if (sc1 == StatusCode::FAILURE) allIsOk = false;
1224  // 2) Fix THistSvc->deReg for TGraphs
1225  bool doneCleaning = false;
1226  std::string directoryName = streamNameFunction()->getDirectoryName( this, group, name, true );
1227  TSeqCollection *filelist=gROOT->GetListOfFiles();
1228  for (int i=0; i<filelist->GetEntries(); i++) {
1229  ATH_MSG_DEBUG( "List of files: " << filelist->At(i)->GetName());
1230  TFile* file = static_cast<TFile*>(filelist->At(i));
1231  StatusCode sc2 = THistSvc_deReg_fixTGraph(file, theGraph, directoryName);
1232  if (sc2 == StatusCode::SUCCESS) doneCleaning = true;
1233  }
1234  // 3) Check if TGraph fix has been applied successfully
1235  if (!doneCleaning) {
1236  ATH_MSG_ERROR("THistSvc_deReg_fixTGraph: failed to apply TGraph fix for the THist Svc!");
1237  allIsOk = false;
1238  }
1239  // 4) Register cloned histogram under previous interval streamName
1240  StatusCode sc3 = m_THistSvc->regGraph( streamName, g );
1241  if (sc3 == StatusCode::FAILURE)
1242  allIsOk = false;
1243 
1244  // get streamname for interval
1245  streamName = streamNameFunction()->getStreamName( this, group, name, false );
1246  // store metadata
1248  if (smd != StatusCode::SUCCESS) allIsOk = false;
1249  // Re-register the original graph
1250  StatusCode sc4 = m_THistSvc->regGraph( streamName, theGraph );
1251  if (sc4 == StatusCode::FAILURE) allIsOk = false;
1252  }
1253 
1254  if (!allIsOk) return StatusCode::FAILURE;
1255  return StatusCode::SUCCESS;
1256 }

◆ regManagedGraphs()

StatusCode ManagedMonitorToolBase::regManagedGraphs ( std::vector< MgmtParams< TGraph > > &  templateGraphs)
protectedinherited

Definition at line 1129 of file ManagedMonitorToolBase.cxx.

1131 {
1132  // See the description for the regManagedHistograms method
1133  bool allIsOk = true;
1134 
1135  for( std::vector< MgmtParams<TGraph> >::iterator it = templateGraphs.begin(); it != templateGraphs.end(); ++it ) {
1136  MonGroup group = (*it).m_group;
1137 
1138  // Get a handle to the graph
1139  TGraph* theGraph = (*it).m_templateHist;
1140 
1141  // Clone the graph
1142  TGraph* g = static_cast<TGraph*>(theGraph->Clone());
1143  theGraph->Set(0); // equivalent to Reset() for TH1
1144 
1145  // Get name
1146  std::string gName = g->GetName();
1147 
1148  // Get the streamName for the previous interval
1149  std::string streamName = streamNameFunction()->getStreamName( this, group, gName, true );
1150 
1151  // De-register the original graph with the THistSvc
1152  StatusCode sc1 = m_THistSvc->deReg( theGraph );
1153  if (sc1 == StatusCode::FAILURE)
1154  allIsOk = false;
1155 
1156  // *** begin ***
1157  // Fix THistSvc->deReg for TGraphs
1158  bool doneCleaning = false;
1159  std::string directoryName = streamNameFunction()->getDirectoryName( this, group, gName, true );
1160  TSeqCollection *filelist=gROOT->GetListOfFiles();
1161  for (int i=0; i<filelist->GetEntries(); i++) {
1162  ATH_MSG_DEBUG( "List of files: " << filelist->At(i)->GetName());
1163  TFile* file = static_cast<TFile*>(filelist->At(i));
1164  StatusCode sc2 = THistSvc_deReg_fixTGraph(file, theGraph, directoryName);
1165  if (sc2 == StatusCode::SUCCESS)
1166  doneCleaning = true;
1167  }
1168 
1169  // Check if TGraph fix has been applied successfully
1170  if (!doneCleaning) {
1171  ATH_MSG_ERROR("THistSvc_deReg_fixTGraph: failed to apply TGraph fix for the THist Svc!");
1172  allIsOk = false;
1173  }
1174  // *** end ***
1175 
1176  // Register clonned histogram under previous interval streamName
1177  StatusCode sc3 = m_THistSvc->regGraph( streamName, g );
1178  if (sc3 == StatusCode::FAILURE)
1179  allIsOk = false;
1180 
1181  // Get streamName for the current interval
1182  streamName = streamNameFunction()->getStreamName( this, group, gName, false );
1183  // Register metadata information with the current interval streamname
1185  if (smd != StatusCode::SUCCESS)
1186  allIsOk = false;
1187 
1188  // Re-register the original graph with the current interval streamName
1189  StatusCode sc4 = m_THistSvc->regGraph( streamName, theGraph );
1190  if (sc4 == StatusCode::FAILURE)
1191  allIsOk = false;
1192 
1193  }
1194 
1195  if (!allIsOk) return StatusCode::FAILURE;
1196 
1197  return StatusCode::SUCCESS;
1198 }

◆ regManagedHistograms()

StatusCode ManagedMonitorToolBase::regManagedHistograms ( std::vector< MgmtParams< TH1 > > &  templateHistograms)
protectedinherited

Definition at line 1032 of file ManagedMonitorToolBase.cxx.

1034 {
1035  // The method registers histograms with the THistSvc and saves them to file.
1036 
1037  // The funky business with registering and deregistering the histogram is needed
1038  // to get the correct directory when saving histograms. THistSvc deals with ROOT
1039  // to set up proper TDirectory, so we rely on it.
1040  // E.g.
1041  // m_THistSvc->regHist( streamName, h ): sets the correct TDirectory with streamName
1042  // m_THistSvc->deReg( h ) - deregister from THistSvc otherwise THistSvc will try to save it
1043  // at the end of execution
1044  // use passownership of the histogram and save it to file
1045  // m_manager->passOwnership( h, genericName );
1046  // m_manager->writeAndDelete( genericName );
1047  bool allIsOk = true;
1048 
1049  for( std::vector< MgmtParams<TH1> >::iterator it = templateHistograms.begin(); it != templateHistograms.end(); ++it ) {
1050  MonGroup& group = (*it).m_group;
1051 
1052  // Get a handle to the histogram
1053  TH1* theHist = (*it).m_templateHist;
1054 
1055  // Clone the histogram
1056  TH1* h = static_cast<TH1*>(theHist->Clone());
1057  theHist->Reset();
1058 
1059  // Get name
1060  std::string hName = h->GetName();
1061 
1062  // Get the streamName for the previous interval
1063  std::string streamName = streamNameFunction()->getStreamName( this, group, hName, true );
1064 
1065  // Register the histogram with the THistSvc
1066  StatusCode sc1 = m_THistSvc->deReg( theHist );
1067  if (sc1 == StatusCode::FAILURE) allIsOk = false;
1068 
1069  // Register clonned histogram under previous interval streamName
1070  StatusCode sc2 = m_THistSvc->regHist( streamName, h );
1071  if (sc2 == StatusCode::FAILURE) allIsOk = false;
1072 
1073  if( m_manager != 0 ) {
1074  std::string genericName = NoOutputStream().getStreamName( this, group, hName );
1075  m_manager->passOwnership( h, genericName );
1076  m_manager->writeAndDelete( genericName );
1077  }
1078 
1079  // Get streamName for the current interval
1080  streamName = streamNameFunction()->getStreamName( this, group, hName, false );
1081  // Register metadata information with the current interval streamname
1083  if (smd != StatusCode::SUCCESS) allIsOk = false;
1084 
1085  // Re-register the original histogram with the current interval streamName
1086  StatusCode sc3 = m_THistSvc->regHist( streamName, theHist );
1087  if (sc3 == StatusCode::FAILURE) allIsOk = false;
1088 
1089  }
1090 
1091  if (!allIsOk) return StatusCode::FAILURE;
1092 
1093  return StatusCode::SUCCESS;
1094 }

◆ regManagedLWHistograms()

StatusCode ManagedMonitorToolBase::regManagedLWHistograms ( std::vector< MgmtParams< LWHist > > &  templateLWHistograms)
protectedinherited

Definition at line 1314 of file ManagedMonitorToolBase.cxx.

1316 {
1317  StatusCode sc1;
1318 
1319  for( std::vector< MgmtParams<LWHist> >::iterator it = templateLWHistograms.begin(); it != templateLWHistograms.end(); ++it ) {
1320  // Get histogram group
1321  MonGroup group = (*it).m_group;
1322 
1323  // Get handle to the histogram
1324  LWHist* h = (*it).m_templateHist;
1325 
1326  sc1 = regHist(h, group);
1327  }
1328 
1329  return sc1;
1330 }

◆ regManagedTrees()

StatusCode ManagedMonitorToolBase::regManagedTrees ( std::vector< MgmtParams< TTree > > &  templateTrees)
protectedinherited

Definition at line 1260 of file ManagedMonitorToolBase.cxx.

1262 {
1263  // See the description for the regManagedHistograms method
1264  bool allIsOk = true;
1265 
1266  for( std::vector< MgmtParams<TTree> >::iterator it = templateTrees.begin(); it != templateTrees.end(); ++it ) {
1267  MonGroup group = (*it).m_group;
1268 
1269  // Get a handle to the original tree
1270  TTree* theTree = (*it).m_templateHist;
1271 
1272  // Clone the tree
1273  TTree* t = static_cast<TTree*>(theTree->Clone());
1274  theTree->Reset();
1275 
1276  // Dumping the tree
1277  std::string name = t->GetName();
1278 
1279  // Get the streamName for the previous interval
1280  std::string streamName = streamNameFunction()->getStreamName( this, group, name, true );
1281 
1282  // De-register original tree with the THistSvc
1283  StatusCode sc1 = m_THistSvc->deReg( theTree );
1284  if (sc1 == StatusCode::FAILURE) allIsOk = false;
1285 
1286  // Register clonned tree under previous interval streamName
1287  StatusCode sc2 = m_THistSvc->regTree( streamName, t );
1288  if (sc2 == StatusCode::FAILURE) allIsOk = false;
1289 
1290  if( m_manager != 0 ) {
1291  std::string genericName = NoOutputStream().getStreamName( this, group, name );
1292  m_manager->passOwnership( t, genericName );
1293  m_manager->writeAndDelete( genericName );
1294  }
1295 
1296  // Get streamName for the current interval
1297  streamName = streamNameFunction()->getStreamName( this, group, name, false );
1298  // Register metadata information with the current interval streamname
1300  if (smd != StatusCode::SUCCESS) allIsOk = false;
1301 
1302  // Re-register the original graph with the current interval streamName
1303  StatusCode sc3 = m_THistSvc->regTree( streamName, theTree );
1304  if (sc3 == StatusCode::FAILURE) allIsOk = false;
1305 
1306  }
1307 
1308  if (!allIsOk) return StatusCode::FAILURE;
1309 
1310  return StatusCode::SUCCESS;
1311 }

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

1760 {
1761 
1762  // This part of the code deals with MANAGED type
1763  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1764  // Create an unmanaged group based on the original MonGroup instance passed
1765  // This is needed because managed tree is presented as a number of unmanaged
1766  // trees (one per each interval)
1767  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1768 
1769  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1770  m_templateTrees[group.interval()].push_back( MgmtParams<TTree>(t, group_unmanaged) );
1771  } else {
1772  ATH_MSG_ERROR("Attempt to book managed tree " << t->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
1773  return StatusCode::FAILURE;
1774  }
1775 
1776  std::string name = t->GetName();
1777  std::string genericName = NoOutputStream().getStreamName( this, group_unmanaged, name );
1778  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, name, false );
1779  registerMetadata(streamName, name, group).ignore();
1780  return m_THistSvc->regTree( streamName, t );
1781  }
1782 
1783 
1784  // This part of the code deals with UNMANAGED type
1785  std::string tName = t->GetName();
1786 
1787  if( m_manager != 0 ) {
1788  std::string genericName = NoOutputStream().getStreamName( this, group, tName );
1789  m_manager->writeAndDelete( genericName );
1790  m_manager->passOwnership( t, genericName );
1791  }
1792 
1793  std::string streamName = streamNameFunction()->getStreamName( this, group, tName, false );
1794 
1796  if (smd != StatusCode::SUCCESS) return StatusCode::FAILURE;
1797 
1798  return m_THistSvc->regTree( streamName, t );
1799 }

◆ regTree() [2/2]

StatusCode ManagedMonitorToolBase::regTree ( TTree *  t,
const std::string &  system,
Interval_t  interval,
MgmtAttr_t  histo_mgmt = ATTRIB_MANAGED,
const std::string &  chain = "",
const std::string &  merge = "" 
)
virtualinherited

Registers a TTree to be included in the output stream using logical parameters that describe it.

Definition at line 1748 of file ManagedMonitorToolBase.cxx.

1751 {
1752  MonGroup group( this, system, interval, histo_mgmt, chain, merge );
1753  return regTree( t, group );
1754 }

◆ renounce()

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> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

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

1895 {
1896  return StatusCode::SUCCESS;
1897 }

◆ setMonManager()

void ManagedMonitorToolBase::setMonManager ( AthenaMonManager manager)
virtualinherited

Takes a pointer to a managing object to get information from it when needed.

Definition at line 1435 of file ManagedMonitorToolBase.cxx.

1437 {
1438  ATH_MSG_DEBUG( "ManagedMonitorToolBase::setMonManager():");
1439  m_manager = manager;
1440  if( m_manager != 0 ) {
1441  ATH_MSG_DEBUG( " --> Setting manager");
1442  m_managerNameProp = m_manager->name();
1446  delete m_streamNameFcn;
1448  }
1449  ATH_MSG_DEBUG( " --> Exiting successfully");
1450 }

◆ setupOutputStreams()

StatusCode ManagedMonitorToolBase::setupOutputStreams ( std::vector< std::string >  Mapping = std::vector<std::string>())
virtualinherited

This implementation does nothing—streams in this class should be managed by the AthenaMonManager.

Consider using MonitorToolBase for user-managed streams.

Implements IMonitorToolBase.

Definition at line 1882 of file ManagedMonitorToolBase.cxx.

1884 {
1885  // All instances should write to the stream(s) defined by the
1886  // AthenaMonManager.
1887 
1888  return StatusCode::SUCCESS;
1889 }

◆ SplitString()

void MuonPhysValMonitoring::MuonPhysValMonitoringTool::SplitString ( TString  x,
const TString &  delim,
std::vector< TString > &  v 
)
private

Definition at line 1695 of file MuonPhysValMonitoringTool.cxx.

1695  {
1696  v.clear();
1697  int stringLength = x.Length();
1698  int delimLength = delim.Length();
1699 
1700  int stop = 1;
1701  TString temp = "---";
1702  while (stop != -1) {
1703  stop = x.First(delim);
1704 
1705  if (stop != -1) {
1706  temp = x(0, stop);
1707  TSubString newString = x(stop + delimLength, stringLength);
1708  x = newString;
1709  stringLength = x.Length();
1710  } else {
1711  stringLength = x.Length();
1712  temp = x(0, stringLength);
1713  }
1714 
1715  v.emplace_back(temp);
1716  }
1717  }

◆ streamNameFunction()

ManagedMonitorToolBase::StreamNameFcn * ManagedMonitorToolBase::streamNameFunction ( )
virtualinherited

Returns the function object that converts logical paramters into a physical stream name.

Definition at line 502 of file ManagedMonitorToolBase.cxx.

504 {
505  if( m_streamNameFcn == 0 ) {
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;
511  }
512  return m_streamNameFcn;
513 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

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.

1099 {
1100  // THistSvc employs TDirectory Append method when registering TGraph.
1101  // When deReg is used to de-register TGraph object, THistSvc only removes the object
1102  // from its internal management but forgets to delete from TDirectory.
1103  // The current method fixes this problem by removing the TGraph object manually
1104  // after THistSvc->deReg(TGraph* obj) is called.
1105 
1106  // Saves and restores gFile and gDirectory
1107  GlobalDirectoryRestore restore;
1108 
1109  // This check is true when TGraph object is removed successfully
1110  bool graphRemoved = false;
1111 
1112  file->cd("/");
1113  TDirectory* dir = file->GetDirectory(directoryName.c_str());
1114  if (dir != 0) {
1115  dir->cd();
1116  TObject* obj = dir->Remove(theGraph);
1117  if (obj != 0)
1118  graphRemoved = true;
1119  }
1120 
1121  if (!graphRemoved) {
1122  return StatusCode::FAILURE;
1123  }
1124 
1125  return StatusCode::SUCCESS;
1126 }

◆ trigChainsArePassed()

bool ManagedMonitorToolBase::trigChainsArePassed ( std::vector< std::string > &  vTrigNames)
protectedvirtualinherited

Definition at line 2324 of file ManagedMonitorToolBase.cxx.

2326 {
2327  ATH_MSG_DEBUG( "ManagedMonitorToolBase::trigChainsArePassed:");
2328 
2329  for(unsigned int i=0; i<vTrigNames.size(); i++) {
2330  if( m_trigDecTool->isPassed(vTrigNames[i]) ) {
2331  ATH_MSG_DEBUG( " + \"" << vTrigNames[i] << "\" passed, returning \'true\'");
2332  return true;
2333  }
2334  else {
2335  ATH_MSG_DEBUG( " - \"" << vTrigNames[i] << "\" did not pass");
2336  }
2337  }
2338 
2339  return false;
2340 }

◆ updateTriggersForGroups()

void ManagedMonitorToolBase::updateTriggersForGroups ( std::vector< std::string > &  vTrigChainNames)
protectedinherited

Definition at line 2362 of file ManagedMonitorToolBase.cxx.

2363  {
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.");
2368  std::vector<std::string> triggers = m_trigTranslator->translate(thisName.substr(9,std::string::npos));
2369  std::ostringstream oss;
2370  oss << "(";
2371  for (size_t itrig = 0; itrig < triggers.size(); ++itrig) {
2372  if (itrig != 0) {
2373  oss << "|";
2374  }
2375  oss << triggers[itrig];
2376  }
2377  oss << ")";
2378  // replace with new value
2379  std::string newval = oss.str();
2380  ATH_MSG_DEBUG("Replaced with " << newval);
2381  vTrigChainNames[i] = newval;
2382  }
2383  }
2384 }

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

◆ writeAndDelete()

StatusCode ManagedMonitorToolBase::writeAndDelete ( TH1 h,
const MonGroup group 
)
virtualinherited

Write out histogram and delete it.

Definition at line 1803 of file ManagedMonitorToolBase.cxx.

1804  {
1805  if (!h)
1806  return StatusCode::FAILURE;
1807 
1808  std::string hName = h->GetName();
1809 
1810  if( m_manager != 0 ) {
1811  std::string genericName = NoOutputStream().getStreamName( this, group, hName );
1812  m_manager->writeAndDelete( genericName );
1813  }
1814  return StatusCode::SUCCESS;
1815 }

Member Data Documentation

◆ m_bookHistogramsInitial

bool ManagedMonitorToolBase::m_bookHistogramsInitial
privateinherited

Definition at line 956 of file ManagedMonitorToolBase.h.

◆ m_counterBits

std::map<std::string, int> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_counterBits
private

Definition at line 110 of file MuonPhysValMonitoringTool.h.

◆ m_d

Imp* ManagedMonitorToolBase::m_d
privateinherited

Definition at line 963 of file ManagedMonitorToolBase.h.

◆ m_dataType

AthenaMonManager::DataType_t ManagedMonitorToolBase::m_dataType
protectedinherited

Definition at line 901 of file ManagedMonitorToolBase.h.

◆ m_dataTypeStr

std::string ManagedMonitorToolBase::m_dataTypeStr
protectedinherited

Definition at line 897 of file ManagedMonitorToolBase.h.

◆ m_defaultLBDuration

float ManagedMonitorToolBase::m_defaultLBDuration
privateinherited

Definition at line 958 of file ManagedMonitorToolBase.h.

◆ m_detailLevel

unsigned int ManagedMonitorToolBase::m_detailLevel
protectedinherited

Definition at line 899 of file ManagedMonitorToolBase.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doBinnedResolutionPlots

Gaudi::Property<bool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doBinnedResolutionPlots {this, "DoBinnedResolutionPlots", true}
private

Definition at line 151 of file MuonPhysValMonitoringTool.h.

◆ m_doMuonTree

Gaudi::Property<bool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doMuonTree {this, "DoMuonTree", false}
private

Definition at line 156 of file MuonPhysValMonitoringTool.h.

◆ m_doTrigMuonEFValidation

Gaudi::Property<bool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doTrigMuonEFValidation {this, "DoTrigMuonEFValidation", false}
private

Definition at line 155 of file MuonPhysValMonitoringTool.h.

◆ m_doTrigMuonL1Validation

Gaudi::Property<bool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doTrigMuonL1Validation {this, "DoTrigMuonL1Validation", false}
private

Definition at line 153 of file MuonPhysValMonitoringTool.h.

◆ m_doTrigMuonL2Validation

Gaudi::Property<bool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doTrigMuonL2Validation {this, "DoTrigMuonL2Validation", false}
private

Definition at line 154 of file MuonPhysValMonitoringTool.h.

◆ m_doTrigMuonValidation

Gaudi::Property<bool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doTrigMuonValidation {this, "DoTrigMuonValidation", false}
private

Definition at line 152 of file MuonPhysValMonitoringTool.h.

◆ m_DQFilterTools

ToolHandleArray<IDQFilterTool> ManagedMonitorToolBase::m_DQFilterTools {this,"FilterTools",{}}
protectedinherited

Definition at line 912 of file ManagedMonitorToolBase.h.

◆ m_endOfEventsBlock

bool ManagedMonitorToolBase::m_endOfEventsBlock
privateinherited

Definition at line 885 of file ManagedMonitorToolBase.h.

◆ m_endOfLowStat

bool ManagedMonitorToolBase::m_endOfLowStat
privateinherited

Definition at line 885 of file ManagedMonitorToolBase.h.

◆ m_endOfLumiBlock

bool ManagedMonitorToolBase::m_endOfLumiBlock
privateinherited

Definition at line 885 of file ManagedMonitorToolBase.h.

◆ m_endOfRun

bool ManagedMonitorToolBase::m_endOfRun
privateinherited

Definition at line 885 of file ManagedMonitorToolBase.h.

◆ m_environment

AthenaMonManager::Environment_t ManagedMonitorToolBase::m_environment
protectedinherited

Definition at line 902 of file ManagedMonitorToolBase.h.

◆ m_environmentStr

std::string ManagedMonitorToolBase::m_environmentStr
protectedinherited

Definition at line 898 of file ManagedMonitorToolBase.h.

◆ m_eventInfo

SG::ReadHandleKey<xAOD::EventInfo> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_eventInfo {this, "EventInfo", "EventInfo", "event info"}
private

Definition at line 159 of file MuonPhysValMonitoringTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_fileKey

std::string ManagedMonitorToolBase::m_fileKey
protectedinherited

Definition at line 896 of file ManagedMonitorToolBase.h.

◆ m_fwdtracksName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_fwdtracksName {this, "FwdTrackContainerName", ""}
private

Definition at line 120 of file MuonPhysValMonitoringTool.h.

◆ m_h_overview_nObjects

std::vector<TH1F*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_nObjects
private

Definition at line 193 of file MuonPhysValMonitoringTool.h.

◆ m_h_overview_reco_authors

std::vector<TH1F*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_reco_authors
private

Definition at line 195 of file MuonPhysValMonitoringTool.h.

◆ m_h_overview_reco_category

TH1F* MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_reco_category {nullptr}
private

Definition at line 194 of file MuonPhysValMonitoringTool.h.

◆ m_h_overview_Z_mass

TH1F* MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_Z_mass {nullptr}
private

Definition at line 197 of file MuonPhysValMonitoringTool.h.

◆ m_h_overview_Z_mass_ID

TH1F* MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_Z_mass_ID {nullptr}
private

Definition at line 199 of file MuonPhysValMonitoringTool.h.

◆ m_h_overview_Z_mass_ME

TH1F* MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_Z_mass_ME {nullptr}
private

Definition at line 198 of file MuonPhysValMonitoringTool.h.

◆ m_haveClearedLastEventBlock

bool ManagedMonitorToolBase::m_haveClearedLastEventBlock
protectedinherited

Definition at line 929 of file ManagedMonitorToolBase.h.

◆ m_isData

Gaudi::Property<bool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_isData {this, "IsData", false}
private

Definition at line 157 of file MuonPhysValMonitoringTool.h.

◆ m_isoTool

ToolHandle<CP::IIsolationSelectionTool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_isoTool {this, "IsoTool", ""}
private

Definition at line 166 of file MuonPhysValMonitoringTool.h.

◆ m_L1MuonItems

Gaudi::Property<std::vector<std::string> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_L1MuonItems {this, "SelectL1MuonItems", {}}
private

Definition at line 145 of file MuonPhysValMonitoringTool.h.

◆ m_L1Seed

std::vector<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_L1Seed
private

Definition at line 112 of file MuonPhysValMonitoringTool.h.

◆ m_lastHigStatInterval

int ManagedMonitorToolBase::m_lastHigStatInterval
protectedinherited

Definition at line 924 of file ManagedMonitorToolBase.h.

◆ m_lastLowStatInterval

int ManagedMonitorToolBase::m_lastLowStatInterval
protectedinherited

Definition at line 924 of file ManagedMonitorToolBase.h.

◆ m_lastLumiBlock

unsigned int ManagedMonitorToolBase::m_lastLumiBlock
protectedinherited

Definition at line 922 of file ManagedMonitorToolBase.h.

◆ m_lastMedStatInterval

int ManagedMonitorToolBase::m_lastMedStatInterval
protectedinherited

Definition at line 924 of file ManagedMonitorToolBase.h.

◆ m_lastRun

unsigned int ManagedMonitorToolBase::m_lastRun
protectedinherited

Definition at line 923 of file ManagedMonitorToolBase.h.

◆ m_lbDurationDataKey

SG::ReadCondHandleKey<LBDurationCondData> ManagedMonitorToolBase::m_lbDurationDataKey {this,"LBDurationCondDataKey","LBDurationCondData","SG Key of LBDurationCondData object"}
privateinherited

Definition at line 951 of file ManagedMonitorToolBase.h.

◆ m_lumiDataKey

SG::ReadCondHandleKey<LuminosityCondData> ManagedMonitorToolBase::m_lumiDataKey {this,"LuminosityCondDataKey","LuminosityCondData","SG Key of LuminosityCondData object"}
privateinherited

Definition at line 949 of file ManagedMonitorToolBase.h.

◆ m_lwhists

std::set<LWHist*> ManagedMonitorToolBase::m_lwhists
protectedinherited

Definition at line 891 of file ManagedMonitorToolBase.h.

◆ m_manager

AthenaMonManager* ManagedMonitorToolBase::m_manager
protectedinherited

Definition at line 892 of file ManagedMonitorToolBase.h.

◆ m_managerNameProp

std::string ManagedMonitorToolBase::m_managerNameProp
protectedinherited

Definition at line 894 of file ManagedMonitorToolBase.h.

◆ m_metadataMap

MDMap_t ManagedMonitorToolBase::m_metadataMap
protectedinherited

Definition at line 889 of file ManagedMonitorToolBase.h.

◆ m_MSTracks

const xAOD::TrackParticleContainer* MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_MSTracks {nullptr}
private

Definition at line 109 of file MuonPhysValMonitoringTool.h.

◆ m_muonEFCombTrigName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonEFCombTrigName {this, "EFCombTrigMuonContainerName", "HLT_xAOD__MuonContainer_MuonEFInfo"}
private

Definition at line 134 of file MuonPhysValMonitoringTool.h.

◆ m_muonExtrapolatedTracksName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonExtrapolatedTracksName
private
Initial value:
{this, "MuonExtrapolatedTrackContainerName",
"ExtrapolatedMuonTrackParticles"}

Definition at line 125 of file MuonPhysValMonitoringTool.h.

◆ m_muonIDForwardTrackValidationPlots

std::vector<std::unique_ptr<MuonTrackValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonIDForwardTrackValidationPlots
private

Definition at line 183 of file MuonPhysValMonitoringTool.h.

◆ m_muonIDSelectedTrackValidationPlots

std::vector<std::unique_ptr<MuonTrackValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonIDSelectedTrackValidationPlots
private

Definition at line 182 of file MuonPhysValMonitoringTool.h.

◆ m_muonIDTrackValidationPlots

std::vector<std::unique_ptr<MuonTrackValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonIDTrackValidationPlots
private

Definition at line 181 of file MuonPhysValMonitoringTool.h.

◆ m_muonItems

std::vector<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonItems
private

Definition at line 111 of file MuonPhysValMonitoringTool.h.

◆ m_muonL1TrigName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonL1TrigName {this, "L1TrigMuonContainerName", "LVL1MuonRoIs"}
private

Definition at line 131 of file MuonPhysValMonitoringTool.h.

◆ m_muonL2CBName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonL2CBName {this, "L2CBMuonContainerName", "HLT_xAOD__L2CombinedMuonContainer_MuonL2CBInfo"}
private

Definition at line 133 of file MuonPhysValMonitoringTool.h.

◆ m_muonL2SAName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonL2SAName {this, "L2SAMuonContainerName", "HLT_xAOD__L2StandAloneMuonContainer_MuonL2SAInfo"}
private

Definition at line 132 of file MuonPhysValMonitoringTool.h.

◆ m_muonMETrackValidationPlots

std::vector<std::unique_ptr<MuonTrackValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonMETrackValidationPlots
private

Definition at line 179 of file MuonPhysValMonitoringTool.h.

◆ m_muonMSOnlyExtrapolatedTracksName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonMSOnlyExtrapolatedTracksName
private
Initial value:
{this, "MuonOnlyExtrapolatedTrackContainerName",
"MSOnlyExtrapolatedMuonTrackParticles"}

Definition at line 127 of file MuonPhysValMonitoringTool.h.

◆ m_muonMSOnlyMETrackValidationPlots

std::vector<std::unique_ptr<MuonTrackValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonMSOnlyMETrackValidationPlots
private

Definition at line 180 of file MuonPhysValMonitoringTool.h.

◆ m_muonMSTrackValidationPlots

std::vector<std::unique_ptr<MuonTrackValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonMSTrackValidationPlots
private

Definition at line 178 of file MuonPhysValMonitoringTool.h.

◆ m_muonPrinter

ToolHandle<Rec::IMuonPrintingTool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonPrinter {this, "MuonPrinter", "Rec::MuonPrintingTool/MuonPrintingTool"}
private

Definition at line 163 of file MuonPhysValMonitoringTool.h.

◆ m_muonSegmentsName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonSegmentsName {this, "MuonSegmentContainerName", "MuonSegments"}
private

Definition at line 129 of file MuonPhysValMonitoringTool.h.

◆ m_muonSegmentsTruthName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonSegmentsTruthName {this, "MuonTruthSegmentContainerName", "MuonTruthSegments"}
private

Definition at line 130 of file MuonPhysValMonitoringTool.h.

◆ m_muonSegmentValidationPlots

std::vector<std::unique_ptr<MuonSegmentValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonSegmentValidationPlots
private

Definition at line 184 of file MuonPhysValMonitoringTool.h.

◆ m_muonSelectionTool

ToolHandle<CP::IMuonSelectionTool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonSelectionTool {this, "MuonSelector", "CP::MuonSelectionTool/MuonSelectionTool"}
private

Definition at line 162 of file MuonPhysValMonitoringTool.h.

◆ m_muonsName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonsName {this, "MuonContainerName", "Muons"}
private

Definition at line 121 of file MuonPhysValMonitoringTool.h.

◆ m_muonsTruthName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonsTruthName {this, "MuonTruthParticleContainerName", "MuonTruthParticles"}
private

Definition at line 123 of file MuonPhysValMonitoringTool.h.

◆ m_muonTracksName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonTracksName {this, "MuonTrackContainerName", "MuonSpectrometerTrackParticles"}
private

Definition at line 124 of file MuonPhysValMonitoringTool.h.

◆ m_muonValidationPlots

std::vector<std::unique_ptr<MuonValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonValidationPlots
private

Definition at line 176 of file MuonPhysValMonitoringTool.h.

◆ m_nEvents

unsigned int ManagedMonitorToolBase::m_nEvents
protectedinherited

Definition at line 926 of file ManagedMonitorToolBase.h.

◆ m_nEventsIgnoreTrigger

unsigned int ManagedMonitorToolBase::m_nEventsIgnoreTrigger
protectedinherited

Definition at line 927 of file ManagedMonitorToolBase.h.

◆ m_newEventsBlock

bool ManagedMonitorToolBase::m_newEventsBlock
privateinherited

Definition at line 884 of file ManagedMonitorToolBase.h.

◆ m_newHigStatInterval

bool ManagedMonitorToolBase::m_newHigStatInterval
privateinherited

Definition at line 882 of file ManagedMonitorToolBase.h.

◆ m_newLowStat

bool ManagedMonitorToolBase::m_newLowStat
privateinherited

Definition at line 883 of file ManagedMonitorToolBase.h.

◆ m_newLowStatInterval

bool ManagedMonitorToolBase::m_newLowStatInterval
privateinherited

Definition at line 882 of file ManagedMonitorToolBase.h.

◆ m_newLumiBlock

bool ManagedMonitorToolBase::m_newLumiBlock
privateinherited

Definition at line 883 of file ManagedMonitorToolBase.h.

◆ m_newMedStatInterval

bool ManagedMonitorToolBase::m_newMedStatInterval
privateinherited

Definition at line 882 of file ManagedMonitorToolBase.h.

◆ m_newRun

bool ManagedMonitorToolBase::m_newRun
privateinherited

Definition at line 883 of file ManagedMonitorToolBase.h.

◆ m_nLumiBlocks

unsigned int ManagedMonitorToolBase::m_nLumiBlocks
protectedinherited

Definition at line 928 of file ManagedMonitorToolBase.h.

◆ m_oUnmatchedRecoMuonPlots

std::unique_ptr<Muon::RecoMuonPlotOrganizer> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_oUnmatchedRecoMuonPlots
private

Definition at line 185 of file MuonPhysValMonitoringTool.h.

◆ m_oUnmatchedRecoMuonSegmentPlots

std::unique_ptr<Muon::MuonSegmentPlots> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_oUnmatchedRecoMuonSegmentPlots
private

Definition at line 188 of file MuonPhysValMonitoringTool.h.

◆ m_oUnmatchedRecoMuonTrackPlots

std::unique_ptr<Muon::RecoMuonTrackPlotOrganizer> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_oUnmatchedRecoMuonTrackPlots
private

Definition at line 187 of file MuonPhysValMonitoringTool.h.

◆ m_oUnmatchedTruthMuonPlots

std::unique_ptr<Muon::TruthMuonPlotOrganizer> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_oUnmatchedTruthMuonPlots
private

Definition at line 186 of file MuonPhysValMonitoringTool.h.

◆ m_path

std::string ManagedMonitorToolBase::m_path
protectedinherited

Definition at line 915 of file ManagedMonitorToolBase.h.

◆ m_preScaleProp

long ManagedMonitorToolBase::m_preScaleProp
protectedinherited

Definition at line 916 of file ManagedMonitorToolBase.h.

◆ m_procNEventsProp

long ManagedMonitorToolBase::m_procNEventsProp
protectedinherited

Definition at line 914 of file ManagedMonitorToolBase.h.

◆ m_selectComissioning

Gaudi::Property<bool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectComissioning {this, "SelectComissioningMuons", false}
private

Flag to tell whether muons with the comissioning author will be selected or not.

Definition at line 143 of file MuonPhysValMonitoringTool.h.

◆ m_SelectedAuthor

int MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_SelectedAuthor {0}
private

Definition at line 113 of file MuonPhysValMonitoringTool.h.

◆ m_selectHLTMuonItems

Gaudi::Property<std::vector<std::vector<std::string> > > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectHLTMuonItems {this, "SelectHLTMuonItems", {}}
private

Definition at line 144 of file MuonPhysValMonitoringTool.h.

◆ m_selectMuonAuthors

Gaudi::Property<std::vector<unsigned int> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectMuonAuthors
private
Initial value:
{
this,
"SelectMuonAuthors",

Definition at line 138 of file MuonPhysValMonitoringTool.h.

◆ m_selectMuonCategories

Gaudi::Property<std::vector<unsigned int> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectMuonCategories
private
Initial value:
{
this,
"SelectMuonCategories",
{MUCATEGORY::ALL, MUCATEGORY::PROMPT, MUCATEGORY::INFLIGHT, MUCATEGORY::NONISO, MUCATEGORY::REST}}

Definition at line 146 of file MuonPhysValMonitoringTool.h.

◆ m_selectMuonCategoriesStr

std::vector<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectMuonCategoriesStr
private

Definition at line 168 of file MuonPhysValMonitoringTool.h.

◆ m_selectMuonWPs

Gaudi::Property<std::vector<int> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectMuonWPs
private
Initial value:
{
this, "SelectMuonWorkingPoints", {xAOD::Muon::Loose, xAOD::Muon::Medium, xAOD::Muon::Tight}}

Definition at line 136 of file MuonPhysValMonitoringTool.h.

◆ m_slowMuonsName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_slowMuonsName {this, "SlowMuonContainerName", "SlowMuons"}
private

Definition at line 122 of file MuonPhysValMonitoringTool.h.

◆ m_slowMuonValidationPlots

std::vector<std::unique_ptr<SlowMuonValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_slowMuonValidationPlots
private

Definition at line 190 of file MuonPhysValMonitoringTool.h.

◆ m_streamNameFcn

StreamNameFcn* ManagedMonitorToolBase::m_streamNameFcn
protectedinherited

Definition at line 904 of file ManagedMonitorToolBase.h.

◆ m_supportedIntervalsForRebooking

std::set<Interval_t> ManagedMonitorToolBase::m_supportedIntervalsForRebooking
privateinherited

Definition at line 959 of file ManagedMonitorToolBase.h.

◆ m_templateEfficiencies

std::map< Interval_t, std::vector< MgmtParams<TEfficiency> > > ManagedMonitorToolBase::m_templateEfficiencies
protectedinherited

Definition at line 738 of file ManagedMonitorToolBase.h.

◆ m_templateGraphs

std::map< Interval_t, std::vector< MgmtParams<TGraph> > > ManagedMonitorToolBase::m_templateGraphs
protectedinherited

Definition at line 726 of file ManagedMonitorToolBase.h.

◆ m_templateHistograms

std::map< Interval_t, std::vector< MgmtParams<TH1> > > ManagedMonitorToolBase::m_templateHistograms
protectedinherited

Definition at line 722 of file ManagedMonitorToolBase.h.

◆ m_templateLWHistograms

std::map< Interval_t, std::vector< MgmtParams<LWHist> > > ManagedMonitorToolBase::m_templateLWHistograms
protectedinherited

Definition at line 734 of file ManagedMonitorToolBase.h.

◆ m_templateTrees

std::map< Interval_t, std::vector< MgmtParams<TTree> > > ManagedMonitorToolBase::m_templateTrees
protectedinherited

Definition at line 730 of file ManagedMonitorToolBase.h.

◆ m_THistSvc

ServiceHandle<ITHistSvc> ManagedMonitorToolBase::m_THistSvc
protectedinherited

Definition at line 906 of file ManagedMonitorToolBase.h.

◆ m_trackSelector

ToolHandle<Trk::ITrackSelectorTool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_trackSelector {this, "TrackSelector", "InDet::InDetDetailedTrackSelectorTool/MuonCombinedInDetDetailedTrackSelectorTool"}
private

Definition at line 165 of file MuonPhysValMonitoringTool.h.

◆ m_tracksName

Gaudi::Property<std::string> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_tracksName {this, "TrackContainerName", "InDetTrackParticles"}
private

Definition at line 119 of file MuonPhysValMonitoringTool.h.

◆ m_trigDec

ToolHandle<Trig::TrigDecisionTool> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_trigDec {this, "TrigDecTool", "Trig::TrigDecisionTool/TrigDecisionTool"}
private

Definition at line 164 of file MuonPhysValMonitoringTool.h.

◆ m_trigDecTool

PublicToolHandle<Trig::ITrigDecisionTool> ManagedMonitorToolBase::m_trigDecTool {this, "TrigDecisionTool",""}
protectedinherited

Definition at line 908 of file ManagedMonitorToolBase.h.

◆ m_triggerChainProp

std::string ManagedMonitorToolBase::m_triggerChainProp
protectedinherited

Definition at line 917 of file ManagedMonitorToolBase.h.

◆ m_triggerGroupProp

std::string ManagedMonitorToolBase::m_triggerGroupProp
protectedinherited

Definition at line 918 of file ManagedMonitorToolBase.h.

◆ m_TriggerMuonValidationPlots

std::vector<std::unique_ptr<TriggerMuonValidationPlots> > MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_TriggerMuonValidationPlots
private

Definition at line 177 of file MuonPhysValMonitoringTool.h.

◆ m_trigLiveFractionDataKey

SG::ReadCondHandleKey<TrigLiveFractionCondData> ManagedMonitorToolBase::m_trigLiveFractionDataKey {this,"TrigLiveFractionCondDataKey","TrigLiveFractionCondData","SG Key of TrigLiveFractionCondData object"}
privateinherited

Definition at line 953 of file ManagedMonitorToolBase.h.

◆ m_trigTranslator

PublicToolHandle<ITriggerTranslatorTool> ManagedMonitorToolBase::m_trigTranslator {this,"TriggerTranslatorTool",""}
protectedinherited

Definition at line 910 of file ManagedMonitorToolBase.h.

◆ m_useLumi

bool ManagedMonitorToolBase::m_useLumi
privateinherited

Definition at line 957 of file ManagedMonitorToolBase.h.

◆ m_useTrigger

bool ManagedMonitorToolBase::m_useTrigger
protectedinherited

Definition at line 920 of file ManagedMonitorToolBase.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vEFMuons

std::vector<const xAOD::Muon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vEFMuons
private

Definition at line 209 of file MuonPhysValMonitoringTool.h.

◆ m_vEFMuonsSelected

std::vector<const xAOD::Muon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vEFMuonsSelected
private

Definition at line 210 of file MuonPhysValMonitoringTool.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_vL2CBMuons

std::vector<const xAOD::L2CombinedMuon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vL2CBMuons
private

Definition at line 213 of file MuonPhysValMonitoringTool.h.

◆ m_vL2CBMuonsSelected

std::vector<const xAOD::L2CombinedMuon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vL2CBMuonsSelected
private

Definition at line 214 of file MuonPhysValMonitoringTool.h.

◆ m_vL2SAMuons

std::vector<const xAOD::L2StandAloneMuon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vL2SAMuons
private

Definition at line 211 of file MuonPhysValMonitoringTool.h.

◆ m_vL2SAMuonsSelected

std::vector<const xAOD::L2StandAloneMuon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vL2SAMuonsSelected
private

Definition at line 212 of file MuonPhysValMonitoringTool.h.

◆ m_vMatchedMuons

std::vector<const xAOD::Muon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedMuons
private

Definition at line 202 of file MuonPhysValMonitoringTool.h.

◆ m_vMatchedMuonSegments

std::vector<const xAOD::MuonSegment*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedMuonSegments
private

Definition at line 205 of file MuonPhysValMonitoringTool.h.

◆ m_vMatchedMuonTracks

std::vector<const xAOD::TrackParticle*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedMuonTracks
private

Definition at line 204 of file MuonPhysValMonitoringTool.h.

◆ m_vMatchedSlowMuons

std::vector<const xAOD::SlowMuon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedSlowMuons
private

Definition at line 203 of file MuonPhysValMonitoringTool.h.

◆ m_vMatchedTruthMuons

std::vector<const xAOD::TruthParticle*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedTruthMuons
private

Definition at line 201 of file MuonPhysValMonitoringTool.h.

◆ m_vRecoMuons

std::vector<const xAOD::Muon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vRecoMuons
private

Definition at line 215 of file MuonPhysValMonitoringTool.h.

◆ m_vRecoMuons_EffDen

std::vector<const xAOD::Muon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vRecoMuons_EffDen
private

Definition at line 218 of file MuonPhysValMonitoringTool.h.

◆ m_vRecoMuons_EffDen_CB

std::vector<const xAOD::Muon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vRecoMuons_EffDen_CB
private

Definition at line 216 of file MuonPhysValMonitoringTool.h.

◆ m_vRecoMuons_EffDen_MS

std::vector<const xAOD::Muon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vRecoMuons_EffDen_MS
private

Definition at line 217 of file MuonPhysValMonitoringTool.h.

◆ m_vTrigChainNames

std::vector<std::string> ManagedMonitorToolBase::m_vTrigChainNames
protectedinherited

Definition at line 742 of file ManagedMonitorToolBase.h.

◆ m_vTrigGroupNames

std::vector<std::string> ManagedMonitorToolBase::m_vTrigGroupNames
protectedinherited

Definition at line 742 of file ManagedMonitorToolBase.h.

◆ m_vZmumuIDTracks

std::vector<const xAOD::TrackParticle*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vZmumuIDTracks
private

Definition at line 206 of file MuonPhysValMonitoringTool.h.

◆ m_vZmumuMETracks

std::vector<const xAOD::TrackParticle*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vZmumuMETracks
private

Definition at line 207 of file MuonPhysValMonitoringTool.h.

◆ m_vZmumuMuons

std::vector<const xAOD::Muon*> MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vZmumuMuons
private

Definition at line 208 of file MuonPhysValMonitoringTool.h.


The documentation for this class was generated from the following files:
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonExtrapolatedTracksName
Gaudi::Property< std::string > m_muonExtrapolatedTracksName
Definition: MuonPhysValMonitoringTool.h:125
AthenaMonManager::ownedLWHistOfKey
virtual LWHist * ownedLWHistOfKey(const std::string &key) const
Definition: AthenaMonManager.cxx:726
ManagedMonitorToolBase::m_nEvents
unsigned int m_nEvents
Definition: ManagedMonitorToolBase.h:926
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vRecoMuons_EffDen_MS
std::vector< const xAOD::Muon * > m_vRecoMuons_EffDen_MS
Definition: MuonPhysValMonitoringTool.h:217
xAOD::L2CombinedMuon_v1::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
LWHist
Definition: LWHist.h:26
MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleTruthMuonSegment
void handleTruthMuonSegment(const xAOD::MuonSegment *truthMuSeg, const xAOD::TruthParticleContainer *muonTruthContainer, float weight=1.0)
Definition: MuonPhysValMonitoringTool.cxx:857
LikeEnum::Loose
@ Loose
Definition: LikelihoodEnums.h:12
ManagedMonitorToolBase::THistSvc_deReg_fixTGraph
StatusCode THistSvc_deReg_fixTGraph(TFile *file, TGraph *theGraph, std::string &directoryName)
Fixes THistSvc->deReg(obj) when obj is TGraph instance.
Definition: ManagedMonitorToolBase.cxx:1098
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_oUnmatchedRecoMuonPlots
std::unique_ptr< Muon::RecoMuonPlotOrganizer > m_oUnmatchedRecoMuonPlots
Definition: MuonPhysValMonitoringTool.h:185
temp
Definition: JetEventDict.h:21
ManagedMonitorToolBase::m_templateEfficiencies
std::map< Interval_t, std::vector< MgmtParams< TEfficiency > > > m_templateEfficiencies
Definition: ManagedMonitorToolBase.h:738
AthenaMonManager::writeAndDeleteLWHist
virtual LWHist * writeAndDeleteLWHist(const std::string &key, const std::string &streamName)
Definition: AthenaMonManager.cxx:743
ManagedMonitorToolBase::streamNameFunction
virtual StreamNameFcn * streamNameFunction()
Returns the function object that converts logical paramters into a physical stream name.
Definition: ManagedMonitorToolBase.cxx:503
MuonPhysValMonitoring::MuonPhysValMonitoringTool::INFLIGHT
@ INFLIGHT
Definition: MuonPhysValMonitoringTool.h:80
ManagedMonitorToolBase::m_newRun
bool m_newRun
Definition: ManagedMonitorToolBase.h:883
ManagedMonitorToolBase::m_supportedIntervalsForRebooking
std::set< Interval_t > m_supportedIntervalsForRebooking
Definition: ManagedMonitorToolBase.h:959
xAOD::Muon_v1::allAuthors
uint16_t allAuthors() const
Get all the authors of this Muon.
defineDB.smd
string smd
Definition: JetTagCalibration/share/defineDB.py:44
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedTruthMuons
std::vector< const xAOD::TruthParticle * > m_vMatchedTruthMuons
Definition: MuonPhysValMonitoringTool.h:201
ManagedMonitorToolBase::bookHistograms
virtual StatusCode bookHistograms()
An inheriting class should either override this function or bookHists().
Definition: ManagedMonitorToolBase.cxx:1407
ManagedMonitorToolBase::m_DQFilterTools
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Definition: ManagedMonitorToolBase.h:912
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_nObjects
std::vector< TH1F * > m_h_overview_nObjects
Definition: MuonPhysValMonitoringTool.h:193
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
checkFileSG.line
line
Definition: checkFileSG.py:75
ManagedMonitorToolBase::getHist
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.
Definition: ManagedMonitorToolBase.cxx:1589
ManagedMonitorToolBase::m_newEventsBlock
bool m_newEventsBlock
Definition: ManagedMonitorToolBase.h:884
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vRecoMuons
std::vector< const xAOD::Muon * > m_vRecoMuons
Definition: MuonPhysValMonitoringTool.h:215
xAOD::SlowMuon_v1
Class describing a SlowMuon.
Definition: SlowMuon_v1.h:26
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonL2CBName
Gaudi::Property< std::string > m_muonL2CBName
Definition: MuonPhysValMonitoringTool.h:133
xAOD::MuGirl
@ MuGirl
MuGirl.
Definition: TrackingPrimitives.h:141
ManagedMonitorToolBase::Imp::benchPreProcHistograms
void benchPreProcHistograms()
Definition: ManagedMonitorToolBase.cxx:122
get_generator_info.result
result
Definition: get_generator_info.py:21
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
runLayerRecalibration.chain
chain
Definition: runLayerRecalibration.py:175
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonSegmentsName
Gaudi::Property< std::string > m_muonSegmentsName
Definition: MuonPhysValMonitoringTool.h:129
PlotBase::retrieveBookedTrees
std::vector< TreeData > retrieveBookedTrees()
Retrieve all booked trees.
Definition: PlotBase.cxx:67
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonSegmentsTruthName
Gaudi::Property< std::string > m_muonSegmentsTruthName
Definition: MuonPhysValMonitoringTool.h:130
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
xAOD::Muon_v1::trackParticle
const TrackParticle * trackParticle(TrackParticleType type) const
Returns a pointer (which can be NULL) to the TrackParticle used in identification of this muon.
Definition: Muon_v1.cxx:504
ManagedMonitorToolBase::higStat
@ higStat
Definition: ManagedMonitorToolBase.h:115
MuonPhysValMonitoring::MuonPhysValMonitoringTool::printMuonDebug
void printMuonDebug(const xAOD::Muon *mu)
Definition: MuonPhysValMonitoringTool.cxx:1288
ManagedMonitorToolBase::lumiBlock
@ lumiBlock
Definition: ManagedMonitorToolBase.h:114
ManagedMonitorToolBase::m_endOfLumiBlock
bool m_endOfLumiBlock
Definition: ManagedMonitorToolBase.h:885
MuonPhysValMonitoring::MuonPhysValMonitoringTool::MUCATEGORY
MUCATEGORY
Definition: MuonPhysValMonitoringTool.h:80
MuonPhysValMonitoring::MuonPhysValMonitoringTool::findRecoMuonSegment
const xAOD::MuonSegment * findRecoMuonSegment(const xAOD::MuonSegment *truthMuSeg)
Definition: MuonPhysValMonitoringTool.cxx:1366
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vRecoMuons_EffDen_CB
std::vector< const xAOD::Muon * > m_vRecoMuons_EffDen_CB
Definition: MuonPhysValMonitoringTool.h:216
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_eventInfo
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo
Definition: MuonPhysValMonitoringTool.h:159
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
ManagedMonitorToolBase::m_THistSvc
ServiceHandle< ITHistSvc > m_THistSvc
Definition: ManagedMonitorToolBase.h:906
ManagedMonitorToolBase::m_procNEventsProp
long m_procNEventsProp
Definition: ManagedMonitorToolBase.h:914
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
AthenaMonManager::writeAndResetLWHist
virtual LWHist * writeAndResetLWHist(const std::string &key, const std::string &streamName)
Definition: AthenaMonManager.cxx:802
ManagedMonitorToolBase::regTree
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.
Definition: ManagedMonitorToolBase.cxx:1749
AthenaMonManager::runNumber
static unsigned int runNumber()
Definition: AthenaMonManager.cxx:364
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doTrigMuonValidation
Gaudi::Property< bool > m_doTrigMuonValidation
Definition: MuonPhysValMonitoringTool.h:152
MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonTrees
void handleMuonTrees(const xAOD::EventInfo *eventInfo, bool isData)
Definition: MuonPhysValMonitoringTool.cxx:1009
plotmaker.hist
hist
Definition: plotmaker.py:148
AthenaMonManager::fileKey
virtual std::string fileKey() const
Definition: AthenaMonManager.cxx:699
CutsMETMaker::accept
StatusCode accept(const xAOD::Muon *mu)
Definition: CutsMETMaker.cxx:18
ManagedMonitorToolBase::Imp::benchPreFillHistograms
void benchPreFillHistograms()
Definition: ManagedMonitorToolBase.cxx:97
AthenaMonManager::AOD
@ AOD
Definition: AthenaMonManager.h:49
ManagedMonitorToolBase::regManagedGraphs
StatusCode regManagedGraphs(std::vector< MgmtParams< TGraph > > &templateGraphs)
Definition: ManagedMonitorToolBase.cxx:1130
AthenaMonManager::passOwnership
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.
Definition: AthenaMonManager.cxx:707
ManagedMonitorToolBase::Imp::benchPostFillHistograms
void benchPostFillHistograms()
Definition: ManagedMonitorToolBase.cxx:106
RTTAlgmain.trees
list trees
Definition: RTTAlgmain.py:40
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
tree
TChain * tree
Definition: tile_monitor.h:30
ManagedMonitorToolBase::regManagedHistograms
StatusCode regManagedHistograms(std::vector< MgmtParams< TH1 > > &templateHistograms)
Definition: ManagedMonitorToolBase.cxx:1033
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vEFMuons
std::vector< const xAOD::Muon * > m_vEFMuons
Definition: MuonPhysValMonitoringTool.h:209
ManagedMonitorToolBase::lbDuration
virtual double lbDuration(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Luminosity block time (in seconds)
Definition: ManagedMonitorToolBase.cxx:2047
ManagedMonitorToolBase::m_trigDecTool
PublicToolHandle< Trig::ITrigDecisionTool > m_trigDecTool
Definition: ManagedMonitorToolBase.h:908
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonMETrackValidationPlots
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonMETrackValidationPlots
Definition: MuonPhysValMonitoringTool.h:179
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
skel.it
it
Definition: skel.GENtoEVGEN.py:423
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonMSOnlyMETrackValidationPlots
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonMSOnlyMETrackValidationPlots
Definition: MuonPhysValMonitoringTool.h:180
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vZmumuIDTracks
std::vector< const xAOD::TrackParticle * > m_vZmumuIDTracks
Definition: MuonPhysValMonitoringTool.h:206
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
xAOD::MuonRoI_v1::eta
float eta() const
The pseudorapidity ( ) of the muon candidate.
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
xAOD::MuonSegment_v1
Class describing a MuonSegment.
Definition: MuonSegment_v1.h:33
ParticleTest.tp
tp
Definition: ParticleTest.py:25
ManagedMonitorToolBase::m_d
Imp * m_d
Definition: ManagedMonitorToolBase.h:962
ManagedMonitorToolBase::m_lastLowStatInterval
int m_lastLowStatInterval
Definition: ManagedMonitorToolBase.h:924
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
xAOD::MuonRoI_v1::thrValue
float thrValue() const
The highest threshold value (in MeV) passed by the muon candidate.
ManagedMonitorToolBase::m_triggerGroupProp
std::string m_triggerGroupProp
Definition: ManagedMonitorToolBase.h:918
LWHistAthMonWrapper::setStreamName
static void setStreamName(LWHist *, const std::string &streamName)
ManagedMonitorToolBase::Imp::benchPostProcHistograms
void benchPostProcHistograms()
Definition: ManagedMonitorToolBase.cxx:130
MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleTruthMuon
void handleTruthMuon(const xAOD::TruthParticle *truthMu, float weight=1.0)
Definition: MuonPhysValMonitoringTool.cxx:956
ManagedMonitorToolBase::m_dataType
AthenaMonManager::DataType_t m_dataType
Definition: ManagedMonitorToolBase.h:901
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
MuonPhysValMonitoring::MuonPhysValMonitoringTool::findRecoMuon
const xAOD::Muon * findRecoMuon(const xAOD::TruthParticle *truthMu)
Definition: MuonPhysValMonitoringTool.cxx:1300
ALL
@ ALL
Definition: sTGCenumeration.h:14
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonValidationPlots
std::vector< std::unique_ptr< MuonValidationPlots > > m_muonValidationPlots
Definition: MuonPhysValMonitoringTool.h:176
ManagedMonitorToolBase::regGraph
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 gra...
Definition: ManagedMonitorToolBase.cxx:1693
PixelModuleFeMask_create_db.stop
int stop
Definition: PixelModuleFeMask_create_db.py:76
xAOD::Muon_v1::author
Author author() const
ManagedMonitorToolBase::m_newLowStatInterval
bool m_newLowStatInterval
Definition: ManagedMonitorToolBase.h:882
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_counterBits
std::map< std::string, int > m_counterBits
Definition: MuonPhysValMonitoringTool.h:110
ManagedMonitorToolBase::fill
@ fill
Definition: ManagedMonitorToolBase.h:116
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vL2SAMuons
std::vector< const xAOD::L2StandAloneMuon * > m_vL2SAMuons
Definition: MuonPhysValMonitoringTool.h:211
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
python.TrigTLAMonitorAlgorithm.triggers
triggers
Definition: TrigTLAMonitorAlgorithm.py:196
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
ManagedMonitorToolBase::procHistograms
virtual StatusCode procHistograms()
An inheriting class should either override this function or finalHists().
Definition: ManagedMonitorToolBase.cxx:1423
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedMuons
std::vector< const xAOD::Muon * > m_vMatchedMuons
Definition: MuonPhysValMonitoringTool.h:202
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
xAOD::EventInfo_v1::IS_SIMULATION
@ IS_SIMULATION
true: simulation, false: data
Definition: EventInfo_v1.h:151
MuonParameters::CaloTag
@ CaloTag
Definition: MuonParamDefs.h:64
x
#define x
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_slowMuonsName
Gaudi::Property< std::string > m_slowMuonsName
Definition: MuonPhysValMonitoringTool.h:122
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectHLTMuonItems
Gaudi::Property< std::vector< std::vector< std::string > > > m_selectHLTMuonItems
Definition: MuonPhysValMonitoringTool.h:144
ManagedMonitorToolBase::regManagedTrees
StatusCode regManagedTrees(std::vector< MgmtParams< TTree > > &templateTrees)
Definition: ManagedMonitorToolBase.cxx:1261
ManagedMonitorToolBase::registerMetadata
StatusCode registerMetadata(const std::string &streamName, const std::string &hName, const MonGroup &group)
Definition: ManagedMonitorToolBase.cxx:1006
AthenaMonManager::getLBsLowStat
static unsigned int getLBsLowStat()
Definition: AthenaMonManager.cxx:326
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
SG::AuxElement::auxdecor
Decorator< T, ALLOC >::reference_type auxdecor(const std::string &name) const
Fetch an aux decoration, as a non-const reference.
ManagedMonitorToolBase::m_newHigStatInterval
bool m_newHigStatInterval
Definition: ManagedMonitorToolBase.h:882
ManagedMonitorToolBase::m_newMedStatInterval
bool m_newMedStatInterval
Definition: ManagedMonitorToolBase.h:882
TruthTest.itE
itE
Definition: TruthTest.py:25
xAOD::L2StandAloneMuon_v2::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
MuonPhysValMonitoring::MuonPhysValMonitoringTool::EFTriggerResolution
void EFTriggerResolution()
Definition: MuonPhysValMonitoringTool.cxx:1240
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
MuonParameters::MuTagIMO
@ MuTagIMO
Definition: MuonParamDefs.h:66
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_reco_category
TH1F * m_h_overview_reco_category
Definition: MuonPhysValMonitoringTool.h:194
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
AthenaMonManager::environment
static Environment_t environment()
Returns the running environment of the monitoring application to help ManagedMonitorToolBase objects ...
Definition: AthenaMonManager.cxx:321
python.CreateTierZeroArgdict.pairs
pairs
Definition: CreateTierZeroArgdict.py:201
LWHistAthMonWrapper::streamName
static const std::string & streamName(LWHist *)
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonIDTrackValidationPlots
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonIDTrackValidationPlots
Definition: MuonPhysValMonitoringTool.h:181
MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonL2Trigger
void handleMuonL2Trigger(const xAOD::L2StandAloneMuon *L2SAMu)
Definition: MuonPhysValMonitoringTool.cxx:1134
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedSlowMuons
std::vector< const xAOD::SlowMuon * > m_vMatchedSlowMuons
Definition: MuonPhysValMonitoringTool.h:203
Trig::FeatureContainer
Definition: FeatureContainer.h:54
python.checkMetadata.metadata
metadata
Definition: checkMetadata.py:175
xAOD::Muon_v1::charge
float charge() const
AthenaMonManager::getLBsMedStat
static unsigned int getLBsMedStat()
Definition: AthenaMonManager.cxx:329
SCT_CalibAlgs::nbins
@ nbins
Definition: SCT_CalibNumbers.h:10
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonMSOnlyExtrapolatedTracksName
Gaudi::Property< std::string > m_muonMSOnlyExtrapolatedTracksName
Definition: MuonPhysValMonitoringTool.h:127
ManagedMonitorToolBase::m_bookHistogramsInitial
bool m_bookHistogramsInitial
Definition: ManagedMonitorToolBase.h:956
ManagedMonitorToolBase::Imp::m_warnAboutMissingInitialize
bool m_warnAboutMissingInitialize
Definition: ManagedMonitorToolBase.cxx:51
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
LWHist::usingROOTBackend
bool usingROOTBackend() const
Definition: LWHist.h:73
PyPoolBrowser.item
item
Definition: PyPoolBrowser.py:129
ManagedMonitorToolBase::getNewStreamNameFcn
virtual StreamNameFcn * getNewStreamNameFcn() const
Definition: ManagedMonitorToolBase.cxx:2388
ManagedMonitorToolBase::m_preScaleProp
long m_preScaleProp
Definition: ManagedMonitorToolBase.h:916
LWHistAthMonWrapper::removeCustomData
static void removeCustomData(LWHist *)
xAOD::TrackParticle_v1::p4
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
Definition: TrackParticle_v1.cxx:129
MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonSegment
void handleMuonSegment(const xAOD::MuonSegment *muSeg, float weight=1.0)
Definition: MuonPhysValMonitoringTool.cxx:873
ManagedMonitorToolBase::trigChainsArePassed
virtual bool trigChainsArePassed(std::vector< std::string > &)
Definition: ManagedMonitorToolBase.cxx:2325
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
ManagedMonitorToolBase::m_fileKey
std::string m_fileKey
Definition: ManagedMonitorToolBase.h:896
ManagedMonitorToolBase::m_lastLumiBlock
unsigned int m_lastLumiBlock
Definition: ManagedMonitorToolBase.h:922
ManagedMonitorToolBase::m_vTrigGroupNames
std::vector< std::string > m_vTrigGroupNames
Definition: ManagedMonitorToolBase.h:742
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonTracksName
Gaudi::Property< std::string > m_muonTracksName
Definition: MuonPhysValMonitoringTool.h:124
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_L1MuonItems
Gaudi::Property< std::vector< std::string > > m_L1MuonItems
Definition: MuonPhysValMonitoringTool.h:145
xAOD::L2CombinedMuon_v1::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
AthenaMonManager::tier0ESD
@ tier0ESD
Definition: AthenaMonManager.h:49
ManagedMonitorToolBase::lbAverageLivefraction
virtual float lbAverageLivefraction(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Average luminosity livefraction.
Definition: ManagedMonitorToolBase.cxx:1993
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doTrigMuonEFValidation
Gaudi::Property< bool > m_doTrigMuonEFValidation
Definition: MuonPhysValMonitoringTool.h:155
ManagedMonitorToolBase::m_templateGraphs
std::map< Interval_t, std::vector< MgmtParams< TGraph > > > m_templateGraphs
Definition: ManagedMonitorToolBase.h:726
PlotBase::retrieveBookedHistograms
std::vector< HistData > retrieveBookedHistograms()
Retrieve all booked histograms.
Definition: PlotBase.cxx:57
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthenaMonManager::dataType
static DataType_t dataType()
Returns the data type that the monitoring application is running over to help ManagedMonitorToolBase ...
Definition: AthenaMonManager.cxx:338
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
PixelAthClusterMonAlgCfg.histname
histname
Definition: PixelAthClusterMonAlgCfg.py:106
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedMuonSegments
std::vector< const xAOD::MuonSegment * > m_vMatchedMuonSegments
Definition: MuonPhysValMonitoringTool.h:205
SG::ExcBadAuxVar
Exception — Attempt to retrieve nonexistent aux data item.
Definition: Control/AthContainers/AthContainers/exceptions.h:59
ManagedMonitorToolBase::m_manager
AthenaMonManager * m_manager
Definition: ManagedMonitorToolBase.h:892
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonL1TrigName
Gaudi::Property< std::string > m_muonL1TrigName
Definition: MuonPhysValMonitoringTool.h:131
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_L1Seed
std::vector< std::string > m_L1Seed
Definition: MuonPhysValMonitoringTool.h:112
ManagedMonitorToolBase::initialize
virtual StatusCode initialize()
Definition: ManagedMonitorToolBase.cxx:669
LWHistAthMonWrapper::key
static const std::string & key(LWHist *)
ManagedMonitorToolBase::m_lumiDataKey
SG::ReadCondHandleKey< LuminosityCondData > m_lumiDataKey
Definition: ManagedMonitorToolBase.h:950
ManagedMonitorToolBase::m_streamNameFcn
StreamNameFcn * m_streamNameFcn
Definition: ManagedMonitorToolBase.h:904
HepMC::is_simulation_particle
bool is_simulation_particle(const T &p)
Method to establish if a particle (or barcode) was created during the simulation (TODO update to be s...
Definition: MagicNumbers.h:299
xAOD::L2StandAloneMuon_v2::sAddress
int sAddress() const
Get the station address of the muon.
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonEFCombTrigName
Gaudi::Property< std::string > m_muonEFCombTrigName
Definition: MuonPhysValMonitoringTool.h:134
MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonTrigger
void handleMuonTrigger(const xAOD::Muon *mu)
Definition: MuonPhysValMonitoringTool.cxx:1229
lumiFormat.i
int i
Definition: lumiFormat.py:92
PlotBase::initialize
void initialize()
Definition: PlotBase.cxx:33
AthenaMonManager::tier0
@ tier0
Definition: AthenaMonManager.h:49
h
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_isData
Gaudi::Property< bool > m_isData
Definition: MuonPhysValMonitoringTool.h:157
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonIDForwardTrackValidationPlots
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonIDForwardTrackValidationPlots
Definition: MuonPhysValMonitoringTool.h:183
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
extractSporadic.h
list h
Definition: extractSporadic.py:97
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AthenaMonManager::online
@ online
Definition: AthenaMonManager.h:49
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonSegmentValidationPlots
std::vector< std::unique_ptr< MuonSegmentValidationPlots > > m_muonSegmentValidationPlots
Definition: MuonPhysValMonitoringTool.h:184
ManagedMonitorToolBase::file
@ file
Definition: ManagedMonitorToolBase.h:114
ReweightUtils.category
category
Definition: ReweightUtils.py:15
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_reco_authors
std::vector< TH1F * > m_h_overview_reco_authors
Definition: MuonPhysValMonitoringTool.h:195
AthenaMonManager::writeAndDelete
virtual void writeAndDelete(const std::string &key)
If the TObject is owned by this manager, its Write() method is called and it is deleted.
Definition: AthenaMonManager.cxx:870
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_TriggerMuonValidationPlots
std::vector< std::unique_ptr< TriggerMuonValidationPlots > > m_TriggerMuonValidationPlots
Definition: MuonPhysValMonitoringTool.h:177
MuonPhysValMonitoring::MuonPhysValMonitoringTool::getMuonTruthCategory
MuonPhysValMonitoringTool::MUCATEGORY getMuonTruthCategory(const xAOD::IParticle *prt)
Definition: MuonPhysValMonitoringTool.cxx:1414
getLatestRuns.interval
interval
Definition: getLatestRuns.py:24
xAOD::L2CombinedMuon_v1::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonsName
Gaudi::Property< std::string > m_muonsName
Definition: MuonPhysValMonitoringTool.h:121
HepMC::uniqueID
int uniqueID(const T &p)
Definition: MagicNumbers.h:113
ManagedMonitorToolBase::ATTRIB_UNMANAGED
@ ATTRIB_UNMANAGED
Definition: ManagedMonitorToolBase.h:131
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectComissioning
Gaudi::Property< bool > m_selectComissioning
Flag to tell whether muons with the comissioning author will be selected or not.
Definition: MuonPhysValMonitoringTool.h:143
ManagedMonitorToolBase::Imp::benchPostBookHistograms
void benchPostBookHistograms()
Definition: ManagedMonitorToolBase.cxx:87
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthenaMonManager::tier0Raw
@ tier0Raw
Definition: AthenaMonManager.h:49
MuonPhysValMonitoring::MuonPhysValMonitoringTool::SplitString
void SplitString(TString x, const TString &delim, std::vector< TString > &v)
Definition: MuonPhysValMonitoringTool.cxx:1695
ManagedMonitorToolBase::m_triggerChainProp
std::string m_triggerChainProp
Definition: ManagedMonitorToolBase.h:917
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectMuonAuthors
Gaudi::Property< std::vector< unsigned int > > m_selectMuonAuthors
Definition: MuonPhysValMonitoringTool.h:138
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MakeTH3DFromTH2Ds.hists
hists
Definition: MakeTH3DFromTH2Ds.py:72
AthenaMonManager::user
@ user
Definition: AthenaMonManager.h:49
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonSelectionTool
ToolHandle< CP::IMuonSelectionTool > m_muonSelectionTool
Definition: MuonPhysValMonitoringTool.h:162
run
Definition: run.py:1
ManagedMonitorToolBase::ATTRIB_MANAGED
@ ATTRIB_MANAGED
Definition: ManagedMonitorToolBase.h:131
ManagedMonitorToolBase::StreamNameFcn::getStreamName
virtual std::string getStreamName(const ManagedMonitorToolBase *tool, const MonGroup &group, const std::string &objName, bool usePreviousInterval=false)=0
A function that converts a MonGroup of logical parameters into a physical output stream name.
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_Z_mass_ID
TH1F * m_h_overview_Z_mass_ID
Definition: MuonPhysValMonitoringTool.h:199
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_MSTracks
const xAOD::TrackParticleContainer * m_MSTracks
Definition: MuonPhysValMonitoringTool.h:109
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
ManagedMonitorToolBase::ManagedMonitorToolBase
ManagedMonitorToolBase(const std::string &type, const std::string &name, const IInterface *parent)
Definition: ManagedMonitorToolBase.cxx:389
ManagedMonitorToolBase::medStat
@ medStat
Definition: ManagedMonitorToolBase.h:115
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectMuonWPs
Gaudi::Property< std::vector< int > > m_selectMuonWPs
Definition: MuonPhysValMonitoringTool.h:136
ManagedMonitorToolBase::m_templateTrees
std::map< Interval_t, std::vector< MgmtParams< TTree > > > m_templateTrees
Definition: ManagedMonitorToolBase.h:730
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doTrigMuonL1Validation
Gaudi::Property< bool > m_doTrigMuonL1Validation
Definition: MuonPhysValMonitoringTool.h:153
ManagedMonitorToolBase::m_metadataMap
MDMap_t m_metadataMap
Definition: ManagedMonitorToolBase.h:889
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_SelectedAuthor
int m_SelectedAuthor
Definition: MuonPhysValMonitoringTool.h:113
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ManagedMonitorToolBase::m_endOfEventsBlock
bool m_endOfEventsBlock
Definition: ManagedMonitorToolBase.h:885
MuonParameters::NumberOfMuonAuthors
@ NumberOfMuonAuthors
Definition: MuonParamDefs.h:69
fcn
void fcn(int &, double *, double &result, double par[], int)
this is where we write out chi2
Definition: Chi2LJets.cxx:183
ManagedMonitorToolBase::m_trigLiveFractionDataKey
SG::ReadCondHandleKey< TrigLiveFractionCondData > m_trigLiveFractionDataKey
Definition: ManagedMonitorToolBase.h:954
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonMSTrackValidationPlots
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonMSTrackValidationPlots
Definition: MuonPhysValMonitoringTool.h:178
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doTrigMuonL2Validation
Gaudi::Property< bool > m_doTrigMuonL2Validation
Definition: MuonPhysValMonitoringTool.h:154
ManagedMonitorToolBase::m_environment
AthenaMonManager::Environment_t m_environment
Definition: ManagedMonitorToolBase.h:902
beamspotman.dir
string dir
Definition: beamspotman.py:623
SG::AuxElement::auxdata
Accessor< T, ALLOC >::reference_type auxdata(const std::string &name)
Fetch an aux data variable, as a non-const reference.
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
HepMC::UNDEFINED_ID
constexpr int UNDEFINED_ID
Definition: MagicNumbers.h:55
xAOD::IParticle::pt
virtual double pt() const =0
The transverse momentum ( ) of the particle.
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
xAOD::SlowMuon_v1::muonLink
const ElementLink< MuonContainer > & muonLink() const
LikeEnum::Tight
@ Tight
Definition: LikelihoodEnums.h:15
ManagedMonitorToolBase::m_lastRun
unsigned int m_lastRun
Definition: ManagedMonitorToolBase.h:923
ManagedMonitorToolBase::m_newLumiBlock
bool m_newLumiBlock
Definition: ManagedMonitorToolBase.h:883
ManagedMonitorToolBase::m_endOfLowStat
bool m_endOfLowStat
Definition: ManagedMonitorToolBase.h:885
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vMatchedMuonTracks
std::vector< const xAOD::TrackParticle * > m_vMatchedMuonTracks
Definition: MuonPhysValMonitoringTool.h:204
ManagedMonitorToolBase::m_lbDurationDataKey
SG::ReadCondHandleKey< LBDurationCondData > m_lbDurationDataKey
Definition: ManagedMonitorToolBase.h:952
SG::AuxElement::isAvailable
bool isAvailable(const std::string &name, const std::string &clsname="") const
Check if an aux variable is available for reading.
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectMuonCategoriesStr
std::vector< std::string > m_selectMuonCategoriesStr
Definition: MuonPhysValMonitoringTool.h:168
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
ManagedMonitorToolBase::bookHistogramsRecurrent
virtual StatusCode bookHistogramsRecurrent()
An inheriting class should either override this function, bookHists() or bookHistograms().
Definition: ManagedMonitorToolBase.cxx:1395
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_oUnmatchedTruthMuonPlots
std::unique_ptr< Muon::TruthMuonPlotOrganizer > m_oUnmatchedTruthMuonPlots
Definition: MuonPhysValMonitoringTool.h:186
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trig::FeatureContainer::get
const std::vector< Trig::Feature< T > > get(const std::string &label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
returns flattened vector of Features of given type This method is in fact sullied by 3 arguments.
Definition: FeatureContainer.h:151
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_selectMuonCategories
Gaudi::Property< std::vector< unsigned int > > m_selectMuonCategories
Definition: MuonPhysValMonitoringTool.h:146
AthenaMonManager::getLBsHigStat
static unsigned int getLBsHigStat()
Definition: AthenaMonManager.cxx:332
LWHistAthMonWrapper::setKey
static void setKey(LWHist *, const std::string &key)
MuonPhysValMonitoring::MuonPhysValMonitoringTool::printTruthMuonDebug
void printTruthMuonDebug(const xAOD::TruthParticle *truthMu, const xAOD::Muon *mu)
Definition: MuonPhysValMonitoringTool.cxx:1329
MuonPhysValMonitoring::MuonPhysValMonitoringTool::PROMPT
@ PROMPT
Definition: MuonPhysValMonitoringTool.h:80
MuonPhysValMonitoring::MuonPhysValMonitoringTool::L2CBTriggerResolution
void L2CBTriggerResolution()
Definition: MuonPhysValMonitoringTool.cxx:1193
MuonPhysValMonitoring::MuonPhysValMonitoringTool::NONISO
@ NONISO
Definition: MuonPhysValMonitoringTool.h:80
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_oUnmatchedRecoMuonSegmentPlots
std::unique_ptr< Muon::MuonSegmentPlots > m_oUnmatchedRecoMuonSegmentPlots
Definition: MuonPhysValMonitoringTool.h:188
ExtractEBRunDetails.endOfRun
endOfRun
Definition: ExtractEBRunDetails.py:245
MuonParameters::MuidSA
@ MuidSA
Definition: MuonParamDefs.h:59
SG::AuxElement::makePrivateStore
void makePrivateStore()
Create a new (empty) private store for this object.
Definition: AuxElement.cxx:172
MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonTrack
void handleMuonTrack(const xAOD::TrackParticle *tp, xAOD::Muon::TrackParticleType type, float weight=1.0)
Definition: MuonPhysValMonitoringTool.cxx:1020
MuonPhysValMonitoring::MuonPhysValMonitoringTool::passesAcceptanceCuts
bool passesAcceptanceCuts(const xAOD::IParticle *prt)
Definition: MuonPhysValMonitoringTool.cxx:1689
item
Definition: ItemListSvc.h:43
xAOD::TruthParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TruthParticle_v1.cxx:174
xAOD::L2StandAloneMuon_v2::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
ManagedMonitorToolBase::lowStat
@ lowStat
Definition: ManagedMonitorToolBase.h:115
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_trigDec
ToolHandle< Trig::TrigDecisionTool > m_trigDec
Definition: MuonPhysValMonitoringTool.h:164
LWHist::setOwnsROOTHisto
void setOwnsROOTHisto(bool b)
Definition: LWHist.h:75
MuonPhysValMonitoring::MuonPhysValMonitoringTool::L2SATriggerResolution
void L2SATriggerResolution()
Definition: MuonPhysValMonitoringTool.cxx:1146
ManagedMonitorToolBase::m_lwhists
std::set< LWHist * > m_lwhists
Definition: ManagedMonitorToolBase.h:891
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
ManagedMonitorToolBase::m_templateLWHistograms
std::map< Interval_t, std::vector< MgmtParams< LWHist > > > m_templateLWHistograms
Definition: ManagedMonitorToolBase.h:734
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vL2SAMuonsSelected
std::vector< const xAOD::L2StandAloneMuon * > m_vL2SAMuonsSelected
Definition: MuonPhysValMonitoringTool.h:212
ManagedMonitorToolBase::m_managerNameProp
std::string m_managerNameProp
Definition: ManagedMonitorToolBase.h:894
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_fwdtracksName
Gaudi::Property< std::string > m_fwdtracksName
Definition: MuonPhysValMonitoringTool.h:120
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
python.PyAthena.v
v
Definition: PyAthena.py:157
ManagedMonitorToolBase::m_nEventsIgnoreTrigger
unsigned int m_nEventsIgnoreTrigger
Definition: ManagedMonitorToolBase.h:927
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vL2CBMuons
std::vector< const xAOD::L2CombinedMuon * > m_vL2CBMuons
Definition: MuonPhysValMonitoringTool.h:213
Muon::MuonSegmentPlots
Definition: MuonSegmentPlots.h:18
ManagedMonitorToolBase::run
@ run
Definition: ManagedMonitorToolBase.h:116
ManagedMonitorToolBase::m_endOfRun
bool m_endOfRun
Definition: ManagedMonitorToolBase.h:885
MuonParameters::MuidCo
@ MuidCo
Definition: MuonParamDefs.h:60
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vZmumuMETracks
std::vector< const xAOD::TrackParticle * > m_vZmumuMETracks
Definition: MuonPhysValMonitoringTool.h:207
ManagedMonitorToolBase::m_newLowStat
bool m_newLowStat
Definition: ManagedMonitorToolBase.h:883
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doBinnedResolutionPlots
Gaudi::Property< bool > m_doBinnedResolutionPlots
Definition: MuonPhysValMonitoringTool.h:151
AthenaPoolExample_Copy.streamName
string streamName
Definition: AthenaPoolExample_Copy.py:39
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_doMuonTree
Gaudi::Property< bool > m_doMuonTree
Definition: MuonPhysValMonitoringTool.h:156
MC::isStable
bool isStable(const T &p)
Definition: HepMCHelpers.h:30
lumiFormat.lumi
lumi
Definition: lumiFormat.py:113
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_trackSelector
ToolHandle< Trk::ITrackSelectorTool > m_trackSelector
Definition: MuonPhysValMonitoringTool.h:165
CaloLCW_tf.group
group
Definition: CaloLCW_tf.py:28
ManagedMonitorToolBase::regManagedLWHistograms
StatusCode regManagedLWHistograms(std::vector< MgmtParams< LWHist > > &templateLWHistograms)
Definition: ManagedMonitorToolBase.cxx:1315
h
AthenaMonManager::forkedProcess
bool forkedProcess()
Definition: AthenaMonManager.cxx:345
CondAlgsOpts.found
int found
Definition: CondAlgsOpts.py:101
ManagedMonitorToolBase::m_lastHigStatInterval
int m_lastHigStatInterval
Definition: ManagedMonitorToolBase.h:924
MuonPhysValMonitoring::MuonPhysValMonitoringTool::REST
@ REST
Definition: MuonPhysValMonitoringTool.h:80
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
LikeEnum::Medium
@ Medium
Definition: LikelihoodEnums.h:14
MuonPhysValMonitoring::MuonPhysValMonitoringTool::findRecoSlowMuon
const xAOD::SlowMuon * findRecoSlowMuon(const xAOD::TruthParticle *truthMu)
Definition: MuonPhysValMonitoringTool.cxx:1311
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_Z_mass_ME
TH1F * m_h_overview_Z_mass_ME
Definition: MuonPhysValMonitoringTool.h:198
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonL2SAName
Gaudi::Property< std::string > m_muonL2SAName
Definition: MuonPhysValMonitoringTool.h:132
ManagedMonitorToolBase::Imp::benchPreBookHistograms
void benchPreBookHistograms()
Definition: ManagedMonitorToolBase.cxx:78
ManagedMonitorToolBase::m_nLumiBlocks
unsigned int m_nLumiBlocks
Definition: ManagedMonitorToolBase.h:928
AthenaMonManager::altprod
@ altprod
Definition: AthenaMonManager.h:49
MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuonL1Trigger
void handleMuonL1Trigger(const xAOD::MuonRoI *TrigL1mu)
Definition: MuonPhysValMonitoringTool.cxx:1124
ManagedMonitorToolBase::eventsBlock
@ eventsBlock
Definition: ManagedMonitorToolBase.h:114
python.envutil.filelist
filelist
print ("Checking files %s..." % fullfile)
Definition: envutil.py:152
xAOD::IParticle::eta
virtual double eta() const =0
The pseudorapidity ( ) of the particle.
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TH1
Definition: rootspy.cxx:268
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vL2CBMuonsSelected
std::vector< const xAOD::L2CombinedMuon * > m_vL2CBMuonsSelected
Definition: MuonPhysValMonitoringTool.h:214
DEBUG
#define DEBUG
Definition: page_access.h:11
CaloCondBlobAlgs_fillNoiseFromASCII.author
string author
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:26
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_tracksName
Gaudi::Property< std::string > m_tracksName
Definition: MuonPhysValMonitoringTool.h:119
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
ManagedMonitorToolBase::all
@ all
Definition: ManagedMonitorToolBase.h:116
MuonPhysValMonitoring::MuonPhysValMonitoringTool::bookValidationPlots
StatusCode bookValidationPlots(PlotBase &valPlots)
Definition: MuonPhysValMonitoringTool.cxx:237
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_oUnmatchedRecoMuonTrackPlots
std::unique_ptr< Muon::RecoMuonTrackPlotOrganizer > m_oUnmatchedRecoMuonTrackPlots
Definition: MuonPhysValMonitoringTool.h:187
ManagedMonitorToolBase::deregObject
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.
Definition: ManagedMonitorToolBase.cxx:1852
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonsTruthName
Gaudi::Property< std::string > m_muonsTruthName
Definition: MuonPhysValMonitoringTool.h:123
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
covarianceTool.plots
plots
Definition: covarianceTool.py:698
ManagedMonitorToolBase::StreamNameFcn::getDirectoryName
virtual std::string getDirectoryName(const ManagedMonitorToolBase *tool, const MonGroup &group, const std::string &objName, const bool usePreviousInterval)=0
A function that returns TDirectory path in a file that corresponds to a given MonGroup and object nam...
python.grid.isData
def isData(dataset)
Definition: grid.py:491
xAOD::TruthParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TruthParticle_v1.cxx:166
xAOD::L2StandAloneMuon_v2::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
ManagedMonitorToolBase::fillHistograms
virtual StatusCode fillHistograms()
An inheriting class should either override this function or fillHists().
Definition: ManagedMonitorToolBase.cxx:1415
ManagedMonitorToolBase::lbAverageLuminosity
virtual float lbAverageLuminosity(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1)
Definition: ManagedMonitorToolBase.cxx:1960
str
Definition: BTagTrackIpAccessor.cxx:11
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vRecoMuons_EffDen
std::vector< const xAOD::Muon * > m_vRecoMuons_EffDen
Definition: MuonPhysValMonitoringTool.h:218
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vZmumuMuons
std::vector< const xAOD::Muon * > m_vZmumuMuons
Definition: MuonPhysValMonitoringTool.h:208
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
python.Logging.manager
manager
Definition: PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/Logging.py:92
ManagedMonitorToolBase::m_useTrigger
bool m_useTrigger
Definition: ManagedMonitorToolBase.h:920
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
xAOD::L2StandAloneMuon_v2::roiWord
uint32_t roiWord() const
Get the RoI ID of the seeding LVL1 muon.
ManagedMonitorToolBase::m_haveClearedLastEventBlock
bool m_haveClearedLastEventBlock
Definition: ManagedMonitorToolBase.h:929
AthenaMonManager::lumiBlockNumber
static unsigned int lumiBlockNumber()
Definition: AthenaMonManager.cxx:352
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonIDSelectedTrackValidationPlots
std::vector< std::unique_ptr< MuonTrackValidationPlots > > m_muonIDSelectedTrackValidationPlots
Definition: MuonPhysValMonitoringTool.h:182
MuonPhysValMonitoring::MuonPhysValMonitoringTool::modifyHistogram
void modifyHistogram(TH1 *hist)
Definition: MuonPhysValMonitoringTool.cxx:1444
ManagedMonitorToolBase::m_templateHistograms
std::map< Interval_t, std::vector< MgmtParams< TH1 > > > m_templateHistograms
Definition: ManagedMonitorToolBase.h:722
ManagedMonitorToolBase::ATTRIB_X_VS_LB
@ ATTRIB_X_VS_LB
Definition: ManagedMonitorToolBase.h:131
MuonPhysValMonitoring::MuonPhysValMonitoringTool::handleMuon
void handleMuon(const xAOD::Muon *mu, const xAOD::SlowMuon *smu=nullptr, float weight=1.0)
Definition: MuonPhysValMonitoringTool.cxx:889
ManagedMonitorToolBase::Imp::s_svcLocator
static std::atomic< ISvcLocator * > s_svcLocator
Definition: ManagedMonitorToolBase.cxx:41
python.PyAthena.obj
obj
Definition: PyAthena.py:135
ManagedMonitorToolBase::m_trigTranslator
PublicToolHandle< ITriggerTranslatorTool > m_trigTranslator
Definition: ManagedMonitorToolBase.h:910
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
LWHist::getROOTHistBase
virtual TH1 * getROOTHistBase()=0
ManagedMonitorToolBase::m_lastMedStatInterval
int m_lastMedStatInterval
Definition: ManagedMonitorToolBase.h:924
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_slowMuonValidationPlots
std::vector< std::unique_ptr< SlowMuonValidationPlots > > m_slowMuonValidationPlots
Definition: MuonPhysValMonitoringTool.h:190
ManagedMonitorToolBase::m_vTrigChainNames
std::vector< std::string > m_vTrigChainNames
Definition: ManagedMonitorToolBase.h:742
MuonPhysValMonitoring::MuonPhysValMonitoringTool::ALL
@ ALL
Definition: MuonPhysValMonitoringTool.h:80
makeComparison.deltaR
float deltaR
Definition: makeComparison.py:36
python.compressB64.c
def c
Definition: compressB64.py:93
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_muonItems
std::vector< std::string > m_muonItems
Definition: MuonPhysValMonitoringTool.h:111
xAOD::EventInfo_v1::beamSpotWeight
float beamSpotWeight() const
Weight for beam spot size reweighting.
Definition: EventInfo_v1.cxx:970
ManagedMonitorToolBase::regHist
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 ...
Definition: ManagedMonitorToolBase.cxx:1454
merge
Definition: merge.py:1
AthenaMonManager::noOutput
@ noOutput
Definition: AthenaMonManager.h:49
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_h_overview_Z_mass
TH1F * m_h_overview_Z_mass
Definition: MuonPhysValMonitoringTool.h:197
ManagedMonitorToolBase::intervalEnumToString
static std::string intervalEnumToString(Interval_t interval)
Converts a LevelOfDetail_t to a string of the same name.
Definition: ManagedMonitorToolBase.cxx:588
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
MuonPhysValMonitoring::MuonPhysValMonitoringTool::getCorrectedMuon
std::unique_ptr< xAOD::Muon > getCorrectedMuon(const xAOD::Muon &mu)
Definition: MuonPhysValMonitoringTool.cxx:1425
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
xAOD::EventInfo_v1::eventType
bool eventType(EventType type) const
Check for one particular bitmask value.
ManagedMonitorToolBase::m_defaultLBDuration
float m_defaultLBDuration
Definition: ManagedMonitorToolBase.h:958
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_vEFMuonsSelected
std::vector< const xAOD::Muon * > m_vEFMuonsSelected
Definition: MuonPhysValMonitoringTool.h:210
xAOD::MuonRoI_v1::phi
float phi() const
The azimuthal angle ( ) of the muon candidate.
MuonPhysValMonitoring::MuonPhysValMonitoringTool::m_isoTool
ToolHandle< CP::IIsolationSelectionTool > m_isoTool
Definition: MuonPhysValMonitoringTool.h:166