|
ATLAS Offline Software
|
#include <CpmSimMonitorAlgorithm.h>
|
enum | Environment_t {
Environment_t::user = 0,
Environment_t::online,
Environment_t::tier0,
Environment_t::tier0Raw,
Environment_t::tier0ESD,
Environment_t::AOD,
Environment_t::altprod
} |
| Specifies the processing environment. More...
|
|
enum | DataType_t {
DataType_t::userDefined = 0,
DataType_t::monteCarlo,
DataType_t::collisions,
DataType_t::cosmics,
DataType_t::heavyIonCollisions
} |
| Specifies what type of input data is being monitored. More...
|
|
|
| CpmSimMonitorAlgorithm (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~CpmSimMonitorAlgorithm ()=default |
|
virtual StatusCode | initialize () override |
| initialize More...
|
|
virtual StatusCode | fillHistograms (const EventContext &ctx) const override |
| adds event to the monitoring histograms More...
|
|
virtual StatusCode | execute (const EventContext &ctx) const override |
| Applies filters and trigger requirements. More...
|
|
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const |
| Fills a vector of variables to a group by reference. More...
|
|
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const |
| Fills a vector of variables to a group by reference. More...
|
|
template<typename... T> |
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, T &&... variables) const |
| Fills a variadic list of variables to a group by reference. More...
|
|
void | fill (const std::string &groupName, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const |
| Fills a vector of variables to a group by name. More...
|
|
void | fill (const std::string &groupName, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const |
| Fills a vector of variables to a group by name. More...
|
|
template<typename... T> |
void | fill (const std::string &groupName, T &&... variables) const |
| Fills a variadic list of variables to a group by name. More...
|
|
Environment_t | environment () const |
| Accessor functions for the environment. More...
|
|
Environment_t | envStringToEnum (const std::string &str) const |
| Convert the environment string from the python configuration to an enum object. More...
|
|
DataType_t | dataType () const |
| Accessor functions for the data type. More...
|
|
DataType_t | dataTypeStringToEnum (const std::string &str) const |
| Convert the data type string from the python configuration to an enum object. More...
|
|
const ToolHandle< GenericMonitoringTool > & | getGroup (const std::string &name) const |
| Get a specific monitoring tool from the tool handle array. More...
|
|
const ToolHandle< Trig::TrigDecisionTool > & | getTrigDecisionTool () const |
| Get the trigger decision tool member. More...
|
|
bool | trigChainsArePassed (const std::vector< std::string > &vTrigNames) const |
| Check whether triggers are passed. More...
|
|
SG::ReadHandle< xAOD::EventInfo > | GetEventInfo (const EventContext &) const |
| Return a ReadHandle for an EventInfo object (get run/event numbers, etc.) More...
|
|
virtual float | lbAverageInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average mu, i.e. More...
|
|
virtual float | lbInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate instantaneous number of interactions, i.e. More...
|
|
virtual float | lbAverageLuminosity (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1). More...
|
|
virtual float | lbLuminosityPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the instantaneous luminosity per bunch crossing. More...
|
|
virtual double | lbDuration (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the duration of the luminosity block (in seconds) More...
|
|
virtual float | lbAverageLivefraction (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average luminosity livefraction. More...
|
|
virtual float | livefractionPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the live fraction per bunch crossing ID. More...
|
|
virtual double | lbLumiWeight (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average integrated luminosity multiplied by the live fraction. More...
|
|
virtual StatusCode | parseList (const std::string &line, std::vector< std::string > &result) const |
| Parse a string into a vector. More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
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 | 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 |
|
|
ToolHandleArray< GenericMonitoringTool > | m_tools {this,"GMTools",{}} |
| Array of Generic Monitoring Tools. More...
|
|
PublicToolHandle< Trig::TrigDecisionTool > | m_trigDecTool {this, "TrigDecisionTool",""} |
| Tool to tell whether a specific trigger is passed. More...
|
|
ToolHandleArray< IDQFilterTool > | m_DQFilterTools {this,"FilterTools",{}} |
| Array of Data Quality filter tools. More...
|
|
SG::ReadCondHandleKey< LuminosityCondData > | m_lumiDataKey {this,"LuminosityCondDataKey","LuminosityCondData","SG Key of LuminosityCondData object"} |
|
SG::ReadCondHandleKey< LBDurationCondData > | m_lbDurationDataKey {this,"LBDurationCondDataKey","LBDurationCondData","SG Key of LBDurationCondData object"} |
|
SG::ReadCondHandleKey< TrigLiveFractionCondData > | m_trigLiveFractionDataKey {this,"TrigLiveFractionCondDataKey","TrigLiveFractionCondData", "SG Key of TrigLiveFractionCondData object"} |
|
AthMonitorAlgorithm::Environment_t | m_environment |
| Instance of the Environment_t enum. More...
|
|
AthMonitorAlgorithm::DataType_t | m_dataType |
| Instance of the DataType_t enum. More...
|
|
Gaudi::Property< std::string > | m_environmentStr {this,"Environment","user"} |
| Environment string pulled from the job option and converted to enum. More...
|
|
Gaudi::Property< std::string > | m_dataTypeStr {this,"DataType","userDefined"} |
| DataType string pulled from the job option and converted to enum. More...
|
|
Gaudi::Property< std::string > | m_triggerChainString {this,"TriggerChain",""} |
| Trigger chain string pulled from the job option and parsed into a vector. More...
|
|
std::vector< std::string > | m_vTrigChainNames |
| Vector of trigger chain names parsed from trigger chain string. More...
|
|
Gaudi::Property< std::string > | m_fileKey {this,"FileKey",""} |
| Internal Athena name for file. More...
|
|
Gaudi::Property< bool > | m_useLumi {this,"EnableLumi",false} |
| Allows use of various luminosity functions. More...
|
|
Gaudi::Property< float > | m_defaultLBDuration {this,"DefaultLBDuration",60.} |
| Default duration of one lumi block. More...
|
|
Gaudi::Property< int > | m_detailLevel {this,"DetailLevel",0} |
| Sets the level of detail used in the monitoring. More...
|
|
SG::ReadHandleKey< xAOD::EventInfo > | m_EventInfoKey {this,"EventInfoKey","EventInfo"} |
| Key for retrieving EventInfo from StoreGate. More...
|
|
|
enum | SummaryErrors {
EMTowerMismatch,
HadTowerMismatch,
EMRoIMismatch,
TauRoIMismatch,
LeftCMXTobMismatch,
RightCMXTobMismatch,
LocalSumMismatch,
RemoteSumMismatch,
TotalSumMismatch,
TopoMismatch,
NumberOfSummaryBins
} |
|
typedef std::vector< int > | ErrorVector |
|
typedef std::map< int, const xAOD::TriggerTower * > | TriggerTowerMapEm |
|
typedef std::map< int, const xAOD::TriggerTower * > | TriggerTowerMapHad |
|
typedef xAOD::CPMTowerMap_t | CpmTowerMap |
|
typedef std::map< int, const xAOD::CMXCPTob * > | CmxCpTobMap |
|
typedef std::map< int, const xAOD::CMXCPHits * > | CmxCpHitsMap |
|
typedef xAOD::CPMTobRoIMap_t | CpmTobRoiMap |
|
typedef std::vector< std::reference_wrapper< Monitored::IMonitoredVariable > > | MonVarVec_t |
|
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
|
|
const TrigConf::L1Menu * | getL1Menu (const EventContext &ctx) const |
|
StatusCode | setupMap (const xAOD::TriggerTowerContainer *coll, TriggerTowerMapEm &emmap, TriggerTowerMapHad &hadmap) const |
|
StatusCode | setupMap (const xAOD::CPMTowerContainer *coll, CpmTowerMap &map) const |
|
StatusCode | setupMap (const xAOD::CPMTobRoIContainer *coll, CpmTobRoiMap &map) const |
|
StatusCode | setupMap (const xAOD::CMXCPTobContainer *coll, CmxCpTobMap &map, std::vector< int > *parityMap=0) const |
|
StatusCode | setupMap (const xAOD::CMXCPHitsContainer *coll, CmxCpHitsMap &map) const |
|
bool | compareEm (const TriggerTowerMapEm &ttMap, const CpmTowerMap &cpMap, ErrorVector &errors, bool overlap) const |
|
bool | compareHad (const TriggerTowerMapHad &ttMap, const CpmTowerMap &cpMap, ErrorVector &errors, bool overlap) const |
|
void | compare (const CpmTobRoiMap &roiSimMap, const CpmTobRoiMap &roiMap, ErrorVector &errors, const xAOD::RODHeaderContainer *rodTES) const |
|
void | compare (const CmxCpTobMap &simMap, const CmxCpTobMap &datMap, const std::vector< int > &parityMap, ErrorVector &errorsCPM, ErrorVector &errorsCMX, const xAOD::RODHeaderContainer *rodTES) const |
|
void | compare (const CmxCpHitsMap &cmxSimMap, const CmxCpHitsMap &cmxMap, ErrorVector &errors, int selection) const |
|
void | simulate (const CpmTowerMap *towers, const CpmTowerMap *towersOv, xAOD::CPMTobRoIContainer *rois, const EventContext &ctx) const |
|
void | simulate (const CpmTowerMap *towers, xAOD::CPMTobRoIContainer *rois, const EventContext &ctx) const |
|
void | simulate (const xAOD::CPMTobRoIContainer *rois, xAOD::CMXCPTobContainer *tobs) const |
|
void | simulate (const xAOD::CMXCPTobContainer *tobs, xAOD::CMXCPHitsContainer *hits, int selection, const EventContext &ctx) const |
|
void | simulate (const xAOD::CMXCPHitsContainer *hitsIn, xAOD::CMXCPHitsContainer *hitsOut) const |
|
int | fpga (int crate, double phi) const |
|
CpmTowerMap::mapped_type | ttCheck (CpmTowerMap::mapped_type tt, xAOD::CPMTowerContainer *coll) const |
|
bool | limitedRoiSet (int crate, SG::ReadHandle< xAOD::RODHeaderContainer > &rodTES) const |
|
bool | limitedRoiSet (int crate, const xAOD::RODHeaderContainer *rodTES) const |
|
int | thresholdsSame (int val1, int val2, int nThresh, int nBits) const |
|
int | thresholdsDiff (int val1, int val2, int nThresh, int nBits) const |
|
void | fillXVsThresholds (Monitored::Scalar< int > &xitem, Monitored::Scalar< int > &yitem, Monitored::Scalar< int > &witem, int x, int val, int nThresh, int nBits, int offset=0) const |
|
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...
|
|
|
ServiceHandle< TrigConf::ITrigConfigSvc > | m_configSvc {this, "TrigConfigSvc", "TrigConf::xAODConfigSvc/xAODConfigSvc"} |
|
StringProperty | m_packageName {this,"PackageName","CpmSimMonitor","group name for histograming"} |
|
SG::WriteHandleKey< std::vector< int > > | m_errorLocation {this,"ErrorLocation","L1CaloCPMMismatchVector","ErrorVector"} |
|
Gaudi::Property< int > | m_crates {this,"s_crates", 4, "Number of CPM crates"} |
|
Gaudi::Property< int > | m_modules {this,"s_modules", 14, "Number of modules per crate (modules numbered 1-14)"} |
|
Gaudi::Property< int > | m_maxSlices {this,"s_maxSlices", 5, "Maximum number of slices"} |
|
Gaudi::Property< int > | m_cmxs {this,"s_cmxs", 2, "Number of CMXs"} |
|
Gaudi::Property< bool > | m_legacyCpHadInputsDisabled {this,"s_legacyCpHadInputsDisabled", false, "Status of the L1Calo Legacy CP hadronic inputs"} |
|
bool | m_overlapPresent |
|
SG::ReadHandleKey< xAOD::TriggerTowerContainer > | m_triggerTowerLocation {this, "BS_xAODTriggerTowerContainer",LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation,"TriggerTower Location"} |
|
SG::ReadHandleKey< xAOD::CPMTowerContainer > | m_cpmTowerLocation {this, "CPMTowerLocation", LVL1::TrigT1CaloDefs::CPMTowerLocation, "CPM container"} |
|
SG::ReadHandleKey< xAOD::CPMTowerContainer > | m_cpmTowerLocationOverlap {this, "CPMTowerLocationOverlap",LVL1::TrigT1CaloDefs::CPMTowerLocation + "Overlap", "CPM Overlap container"} |
|
SG::ReadHandleKey< xAOD::CPMTobRoIContainer > | m_cpmTobRoiLocation {this, "CPMTobRoILocation", LVL1::TrigT1CaloDefs::CPMTobRoILocation, "CPM RoI container"} |
|
SG::ReadHandleKey< xAOD::CMXCPTobContainer > | m_cmxCpTobLocation {this, "CMXCPTobLocation", LVL1::TrigT1CaloDefs::CMXCPTobLocation, "CMX CP Tob container"} |
|
SG::ReadHandleKey< xAOD::CMXCPHitsContainer > | m_cmxCpHitsLocation {this, "CMXCPHitsLocation", LVL1::TrigT1CaloDefs::CMXCPHitsLocation, "CMX CP Hits container"} |
|
SG::ReadHandleKey< xAOD::RODHeaderContainer > | m_rodHeaderLocation {this, "RodHeaderLocation", LVL1::TrigT1CaloDefs::RODHeaderLocation, "Rod header container"} |
|
SG::ReadHandleKey< TrigConf::L1Menu > | m_L1MenuKey { this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu", "L1 Menu" } |
|
ToolHandle< LVL1::IL1CPCMXTools > | m_cpCmxTool |
|
ToolHandle< LVL1::IL1CPMTools > | m_cpmTool |
|
ToolHandle< LVL1::ITrigT1CaloMonErrorTool > | m_errorTool |
|
std::mutex | m_mutex {} |
|
std::map< uint32_t, int > m_errorLB_tt_counter | ATLAS_THREAD_SAFE |
|
std::map< uint32_t, int > m_errorLB_roi_counter | ATLAS_THREAD_SAFE |
|
std::map< uint32_t, int > m_errorLB_tob_counter | ATLAS_THREAD_SAFE |
|
std::map< uint32_t, int > m_errorLB_thresh_counter | ATLAS_THREAD_SAFE |
|
std::string | m_name |
|
std::unordered_map< std::string, size_t > | m_toolLookupMap |
|
const ToolHandle< GenericMonitoringTool > | m_dummy |
|
Gaudi::Property< bool > | m_enforceExpressTriggers |
|
DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
|
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 |
|
Definition at line 39 of file CpmSimMonitorAlgorithm.h.
◆ CmxCpHitsMap
◆ CmxCpTobMap
◆ CpmTobRoiMap
◆ CpmTowerMap
◆ ErrorVector
◆ MonVarVec_t
◆ StoreGateSvc_t
◆ TriggerTowerMapEm
◆ TriggerTowerMapHad
◆ DataType_t
Specifies what type of input data is being monitored.
An enumeration of the different types of data the monitoring application may be running over. This can be used to select which histograms to produce, e.g. to prevent the production of colliding-beam histograms when running on cosmic-ray data. Strings of the same names may be given as jobOptions.
Enumerator |
---|
userDefined | |
monteCarlo | |
collisions | |
cosmics | |
heavyIonCollisions | |
Definition at line 191 of file AthMonitorAlgorithm.h.
◆ Environment_t
Specifies the processing environment.
The running environment may be used to select which histograms are produced, and where they are located in the output. For example, the output paths of the histograms are different for the "user", "online" and the various offline flags. Strings of the same names may be given as jobOptions.
Enumerator |
---|
user | |
online | |
tier0 | |
tier0Raw | |
tier0ESD | |
AOD | |
altprod | |
Definition at line 172 of file AthMonitorAlgorithm.h.
◆ SummaryErrors
Enumerator |
---|
EMTowerMismatch | |
HadTowerMismatch | |
EMRoIMismatch | |
TauRoIMismatch | |
LeftCMXTobMismatch | |
RightCMXTobMismatch | |
LocalSumMismatch | |
RemoteSumMismatch | |
TotalSumMismatch | |
TopoMismatch | |
NumberOfSummaryBins | |
Definition at line 67 of file CpmSimMonitorAlgorithm.h.
◆ CpmSimMonitorAlgorithm()
CpmSimMonitorAlgorithm::CpmSimMonitorAlgorithm |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~CpmSimMonitorAlgorithm()
virtual CpmSimMonitorAlgorithm::~CpmSimMonitorAlgorithm |
( |
| ) |
|
|
virtualdefault |
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 55 of file AthReentrantAlgorithm.cxx.
◆ compare() [1/3]
Definition at line 1395 of file CpmSimMonitorAlgorithm.cxx.
1399 ATH_MSG_DEBUG(
"Compare Simulated CMX Hit Sums and Data CMX Hit Sums");
1444 CmxCpHitsMap::const_iterator cmxSimMapIter = cmxSimMap.begin();
1445 CmxCpHitsMap::const_iterator cmxSimMapIterEnd = cmxSimMap.end();
1446 CmxCpHitsMap::const_iterator cmxMapIter = cmxMap.begin();
1447 CmxCpHitsMap::const_iterator cmxMapIterEnd = cmxMap.end();
1449 while (cmxSimMapIter != cmxSimMapIterEnd || cmxMapIter != cmxMapIterEnd) {
1453 unsigned int cmxSimHits0 = 0;
1454 unsigned int cmxSimHits1 = 0;
1455 unsigned int cmxHits0 = 0;
1456 unsigned int cmxHits1 = 0;
1461 if (cmxSimMapIter != cmxSimMapIterEnd)
1462 cmxSimKey = cmxSimMapIter->first;
1463 if (cmxMapIter != cmxMapIterEnd)
1464 cmxKey = cmxMapIter->first;
1466 if ((cmxMapIter == cmxMapIterEnd) ||
1467 ((cmxSimMapIter != cmxSimMapIterEnd) && (cmxKey > cmxSimKey))) {
1484 cmxSimHits0 = cmxS->
hits0();
1485 cmxSimHits1 = cmxS->
hits1();
1486 crate = cmxS->
crate();
1489 }
else if ((cmxSimMapIter == cmxSimMapIterEnd) ||
1490 ((cmxMapIter != cmxMapIterEnd) && (cmxSimKey > cmxKey))) {
1509 cmxHits0 = cmxD->
hits0();
1510 cmxHits1 = cmxD->
hits1();
1511 crate = cmxD->
crate();
1536 cmxSimHits0 = cmxS->
hits0();
1537 cmxSimHits1 = cmxS->
hits1();
1538 cmxHits0 = cmxD->
hits0();
1539 cmxHits1 = cmxD->
hits1();
1540 crate = cmxS->
crate();
1544 if (!cmxSimHits0 && !cmxSimHits1 && !cmxHits0 && !cmxHits1)
1549 if (
local || total) {
1550 int loc = crate *
m_cmxs + cmx;
1555 int loc_fill = (
local) ? loc : 14 + cmx;
1556 if (cmxSimHits0 == cmxHits0 && cmxSimHits1 == cmxHits1) {
1558 cmx_sum_loc_SimEqData=loc_fill;
1561 errors[loc + cmxBins] |= bit;
1562 if ((cmxSimHits0 || cmxSimHits1) && (cmxHits0 || cmxHits1)) {
1563 cmx_sum_loc_SimNeData=loc_fill;
1565 }
else if (!cmxHits0 && !cmxHits1) {
1566 cmx_sum_loc_SimNoData=loc_fill;
1569 cmx_sum_loc_DataNoSim=loc_fill;
1574 loc = (
local) ? loc : 14 + cmx;
1577 const int nThresh = 8;
1578 const int thrLen = 3;
1579 int same0 =
thresholdsSame(cmxHits0, cmxSimHits0, nThresh, thrLen);
1580 int diff0 =
thresholdsDiff(cmxHits0, cmxSimHits0, nThresh, thrLen);
1581 int same1 =
thresholdsSame(cmxHits1, cmxSimHits1, nThresh, thrLen);
1582 int diff1 =
thresholdsDiff(cmxHits1, cmxSimHits1, nThresh, thrLen);
1584 fillXVsThresholds(cmx_x_rightsums_SimEqData,cmx_y_rightsums_SimEqData,cmx_w_rightsums_SimEqData,
1585 loc, same0, nThresh, 1);
1586 fillXVsThresholds(cmx_x_rightsums_SimNeData,cmx_y_rightsums_SimNeData,cmx_w_rightsums_SimNeData,
1587 loc, diff0, nThresh, 1);
1588 const int offset = nThresh;
1589 fillXVsThresholds(cmx_x_rightsums_SimEqData,cmx_y_rightsums_SimEqData,cmx_w_rightsums_SimEqData,
1590 loc, same1, nThresh, 1,
offset);
1591 fillXVsThresholds(cmx_x_rightsums_SimNeData,cmx_y_rightsums_SimNeData,cmx_w_rightsums_SimNeData,
1592 loc, diff1, nThresh, 1,
offset);
1594 fillXVsThresholds(cmx_x_leftsums_SimEqData,cmx_y_leftsums_SimEqData,cmx_w_leftsums_SimEqData,
1595 loc, same0, nThresh, 1);
1596 fillXVsThresholds(cmx_x_leftsums_SimNeData,cmx_y_leftsums_SimNeData,cmx_w_leftsums_SimNeData,
1597 loc, diff0, nThresh, 1);
1598 const int offset = nThresh;
1599 fillXVsThresholds(cmx_x_leftsums_SimEqData,cmx_y_leftsums_SimEqData,cmx_w_leftsums_SimEqData,
1600 loc, same1, nThresh, 1,
offset);
1601 fillXVsThresholds(cmx_x_leftsums_SimNeData,cmx_y_leftsums_SimNeData,cmx_w_leftsums_SimNeData,
1602 loc, diff1, nThresh, 1,
offset);
1607 hits0Sim[crate *
m_cmxs + cmx] = cmxSimHits0;
1608 hits1Sim[crate *
m_cmxs + cmx] = cmxSimHits1;
1612 hits0[remCrate *
m_cmxs + cmx] = cmxHits0;
1613 hits1[remCrate *
m_cmxs + cmx] = cmxHits1;
1620 if (cmxSimHits0 == cmxHits0 && cmxSimHits1 == cmxHits1) {
1622 cmxTopoLocXSimEqData=
locX;
1623 cmxTopoLocYSimEqData=
locY;
1627 if ((cmxSimHits0 || cmxSimHits1) && (cmxHits0 || cmxHits1)) {
1628 cmxTopoLocXSimNeData=
locX;
1629 cmxTopoLocYSimNeData=
locY;
1631 }
else if (!cmxHits0 && !cmxHits1) {
1632 cmxTopoLocXSimNoData=
locX;
1633 cmxTopoLocYSimNoData=
locY;
1636 cmxTopoLocXDataNoSim=
locX;
1637 cmxTopoLocYDataNoSim=
locY;
1644 for (
int crate = 0; crate <
m_crates - 1; ++crate) {
1645 for (
int cmx = 0; cmx <
m_cmxs; ++cmx) {
1646 int loc = crate *
m_cmxs + cmx;
1649 const unsigned int hd0 = hits0[loc];
1650 const unsigned int hd1 = hits1[loc];
1651 const unsigned int hs0 = hits0Sim[loc];
1652 const unsigned int hs1 = hits1Sim[loc];
1654 if (!hd0 && !hd1 && !hs0 && !hs1)
1657 int loc_fill = loc + 8;
1658 if (hs0 == hd0 && hs1 == hd1) {
1660 cmx_sum_loc_SimEqData=loc_fill;
1663 errors[loc + cmxBins] |= bit;
1664 if ((hs0 || hs1) && (hd0 || hd1)) {
1665 cmx_sum_loc_SimNeData=loc_fill;
1667 }
else if (!hd0 && !hd1) {
1668 cmx_sum_loc_SimNoData=loc_fill;
1671 cmx_sum_loc_DataNoSim=loc_fill;
1679 const int nThresh = 8;
1680 const int thrLen = 3;
1686 fillXVsThresholds(cmx_x_rightsums_SimEqData,cmx_y_rightsums_SimEqData,cmx_w_rightsums_SimEqData,
1687 loc, same0, nThresh, 1);
1688 fillXVsThresholds(cmx_x_rightsums_SimNeData,cmx_y_rightsums_SimNeData,cmx_w_rightsums_SimNeData,
1689 loc, diff0, nThresh, 1);
1690 const int offset = nThresh;
1691 fillXVsThresholds(cmx_x_rightsums_SimEqData,cmx_y_rightsums_SimEqData,cmx_w_rightsums_SimEqData,
1692 loc, same1, nThresh, 1,
offset);
1693 fillXVsThresholds(cmx_x_rightsums_SimNeData,cmx_y_rightsums_SimNeData,cmx_w_rightsums_SimNeData,
1694 loc, diff1, nThresh, 1,
offset);
1696 fillXVsThresholds(cmx_x_leftsums_SimEqData,cmx_y_leftsums_SimEqData,cmx_w_leftsums_SimEqData,
1697 loc, same0, nThresh, 1);
1698 fillXVsThresholds(cmx_x_leftsums_SimNeData,cmx_y_leftsums_SimNeData,cmx_w_leftsums_SimNeData,
1699 loc, diff0, nThresh, 1);
1700 const int offset = nThresh;
1701 fillXVsThresholds(cmx_x_leftsums_SimEqData,cmx_y_leftsums_SimEqData,cmx_w_leftsums_SimEqData,
1702 loc, same1, nThresh, 1,
offset);
1703 fillXVsThresholds(cmx_x_leftsums_SimNeData,cmx_y_leftsums_SimNeData,cmx_w_leftsums_SimNeData,
1704 loc, diff1, nThresh, 1,
offset);
◆ compare() [2/3]
Definition at line 1094 of file CpmSimMonitorAlgorithm.cxx.
1162 CmxCpTobMap::const_iterator simMapIter = simMap.begin();
1163 CmxCpTobMap::const_iterator simMapIterEnd = simMap.end();
1164 CmxCpTobMap::const_iterator datMapIter = datMap.begin();
1165 CmxCpTobMap::const_iterator datMapIterEnd = datMap.end();
1167 while (simMapIter != simMapIterEnd || datMapIter != datMapIterEnd) {
1179 if (simMapIter != simMapIterEnd)
1180 simKey = simMapIter->first;
1181 if (datMapIter != datMapIterEnd)
1182 datKey = datMapIter->first;
1184 if ((datMapIter == datMapIterEnd) ||
1185 ((simMapIter != simMapIterEnd) && (datKey > simKey))) {
1189 tob = simMapIter->second;
1190 simEnergy = tob->
energy();
1195 }
else if ((simMapIter == simMapIterEnd) ||
1196 ((datMapIter != datMapIterEnd) && (simKey > datKey))) {
1200 tob = datMapIter->second;
1201 datEnergy = tob->
energy();
1211 tob = datMapIter->second;
1212 simEnergy = tobS->
energy();
1215 datEnergy = tob->
energy();
1222 if (!simEnergy && !simIsol && !datEnergy && !datIsol)
1227 const int crate = tob->
crate();
1230 const int cpm = tob->
cpm();
1231 const int cmx = tob->
cmx();
1232 if (!datEnergy && !datIsol) {
1234 if (parityMap[
index])
1240 const int chip = tob->
chip();
1243 const int locY = chip * 4 + loc;
1248 const uint32_t roiWord = ((((((crate << 4) + cpm) << 4) + chip) << 2) + loc)
1255 if (simEnergy || datEnergy) {
1256 if (simEnergy == datEnergy) {
1257 errorsCPM[
locX] |= bit;
1258 errorsCMX[
loc2] |= bit;
1260 cmxRightEnerSimEqDataLocX=
locX;
1261 cmxRightEnerSimEqDataLocY=
locY;
1264 cmxLeftEnerSimEqDataLocX=
locX;
1265 cmxLeftEnerSimEqDataLocY=
locY;
1269 errorsCPM[
locX + cpmBins] |= bit;
1270 errorsCMX[
loc2 + cmxBins] |= bit;
1271 if (simEnergy && datEnergy) {
1273 cmxRightEnerSimNeDataLocX=
locX;
1274 cmxRightEnerSimNeDataLocY=
locY;
1277 cmxLeftEnerSimNeDataLocX=
locX;
1278 cmxLeftEnerSimNeDataLocY=
locY;
1281 }
else if (simEnergy && !datEnergy) {
1283 cmxRightEnerSimNoDataLocX=
locX;
1284 cmxRightEnerSimNoDataLocY=
locY;
1287 cmxLeftEnerSimNoDataLocX=
locX;
1288 cmxLeftEnerSimNoDataLocY=
locY;
1293 cmxRightEnerDataNoSimLocX=
locX;
1294 cmxRightEnerDataNoSimLocY=
locY;
1297 cmxLeftEnerDataNoSimLocX=
locX;
1298 cmxLeftEnerDataNoSimLocY=
locY;
1304 if (simIsol || datIsol) {
1305 if (simIsol == datIsol) {
1306 errorsCPM[
locX] |= bit;
1307 errorsCMX[
loc2] |= bit;
1309 cmxRightIsolSimEqDataLocX=
locX;
1310 cmxRightIsolSimEqDataLocY=
locY;
1313 cmxLeftIsolSimEqDataLocX=
locX;
1314 cmxLeftIsolSimEqDataLocY=
locY;
1318 errorsCPM[
locX + cpmBins] |= bit;
1319 errorsCMX[
loc2 + cmxBins] |= bit;
1320 if (simIsol && datIsol) {
1322 cmxRightIsolSimNeDataLocX=
locX;
1323 cmxRightIsolSimNeDataLocY=
locY;
1326 cmxLeftIsolSimNeDataLocX=
locX;
1327 cmxLeftIsolSimNeDataLocY=
locY;
1330 }
else if (simIsol && !datIsol) {
1332 cmxRightIsolSimNoDataLocX=
locX;
1333 cmxRightIsolSimNoDataLocY=
locY;
1336 cmxLeftIsolSimNoDataLocX=
locX;
1337 cmxLeftIsolSimNoDataLocY=
locY;
1342 cmxRightIsolDataNoSimLocX=
locX;
1343 cmxRightIsolDataNoSimLocY=
locY;
1346 cmxLeftIsolDataNoSimLocX=
locX;
1347 cmxLeftIsolDataNoSimLocY=
locY;
1353 if (simOvf || datOvf) {
1354 if (simOvf == datOvf) {
1355 errorsCPM[
locX] |= bit;
1356 errorsCMX[
loc2] |= bit;
1357 cmxOverLocXSimEqData =
locX;
1358 cmxOverCmxSimEqData = cmx;
1361 errorsCPM[
locX + cpmBins] |= bit;
1362 errorsCMX[
loc2 + cmxBins] |= bit;
1363 cmxOverLocXSimNeData =
locX;
1364 cmxOverCmxSimNeData = cmx;
1368 const double phiMod =
phi * (32./
M_PI) - 0.5;
1370 if (simEnergy == datEnergy && simIsol == datIsol) {
1372 cmxPhiSimEqData=phiMod;
1375 if ((simEnergy || simIsol) && (datEnergy || datIsol)) {
1377 cmxPhiSimNeData=phiMod;
1379 }
else if (!datEnergy && !datIsol) {
1381 cmxPhiSimNoData=phiMod;
1385 cmxPhiDataNoSim=phiMod;
◆ compare() [3/3]
Definition at line 834 of file CpmSimMonitorAlgorithm.cxx.
841 CpmTobRoiMap::const_iterator simMapIter = roiSimMap.begin();
842 CpmTobRoiMap::const_iterator simMapIterEnd = roiSimMap.end();
843 CpmTobRoiMap::const_iterator datMapIter = roiMap.begin();
844 CpmTobRoiMap::const_iterator datMapIterEnd = roiMap.end();
899 while (simMapIter != simMapIterEnd || datMapIter != datMapIterEnd) {
903 unsigned int simEnergy = 0;
904 unsigned int datEnergy = 0;
905 unsigned int simIsol = 0;
906 unsigned int datIsol = 0;
909 if (simMapIter != simMapIterEnd)
910 simKey = simMapIter->first;
911 if (datMapIter != datMapIterEnd)
912 datKey = datMapIter->first;
914 if ((datMapIter == datMapIterEnd) ||
915 ((simMapIter != simMapIterEnd) && (datKey > simKey))) {
919 roi = simMapIter->second;
920 simEnergy = roi->
energy();
924 }
else if ((simMapIter == simMapIterEnd) ||
925 ((datMapIter != datMapIterEnd) && (simKey > datKey))) {
929 roi = datMapIter->second;
930 datEnergy = roi->
energy();
939 roi = datMapIter->second;
940 simEnergy = roiS->
energy();
942 datEnergy = roi->
energy();
948 if (!simEnergy && !simIsol && !datEnergy && !datIsol)
953 const int crate = roi->
crate();
959 const int cpm = roi->
cpm();
960 const int chip = roi->
chip();
973 if (simEnergy || datEnergy) {
974 if (simEnergy == datEnergy) {
977 tauEnerSimEqDataLocX=
locX;
978 tauEnerSimEqDataLocY=
locY;
981 emEnerSimEqDataLocX=
locX;
982 emEnerSimEqDataLocY=
locY;
987 if (simEnergy && datEnergy) {
989 tauEnerSimNeDataLocX=
locX;
990 tauEnerSimNeDataLocY=
locY;
993 emEnerSimNeDataLocX=
locX;
994 emEnerSimNeDataLocY=
locY;
997 }
else if (simEnergy && !datEnergy) {
999 tauEnerSimNoDataLocX=
locX;
1000 tauEnerSimNoDataLocY=
locY;
1003 emEnerSimNoDataLocX=
locX;
1004 emEnerSimNoDataLocY=
locY;
1009 tauEnerDataNoSimLocX=
locX;
1010 tauEnerDataNoSimLocY=
locY;
1013 emEnerDataNoSimLocX=
locX;
1014 emEnerDataNoSimLocY=
locY;
1020 if (simIsol || datIsol) {
1021 if (simIsol == datIsol) {
1024 tauIsolSimEqDataLocX=
locX;
1025 tauIsolSimEqDataLocY=
locY;
1028 emIsolSimEqDataLocX=
locX;
1029 emIsolSimEqDataLocY=
locY;
1035 if (simIsol && datIsol) {
1037 tauIsolSimNeDataLocX=
locX;
1038 tauIsolSimNeDataLocY=
locY;
1041 emIsolSimNeDataLocX=
locX;
1042 emIsolSimNeDataLocY=
locY;
1045 }
else if (simIsol && !datIsol) {
1047 tauIsolSimNoDataLocX=
locX;
1048 tauIsolSimNoDataLocY=
locY;
1051 emIsolSimNoDataLocX=
locX;
1052 emIsolSimNoDataLocY=
locY;
1057 tauIsolDataNoSimLocX=
locX;
1058 tauIsolDataNoSimLocY=
locY;
1061 emIsolDataNoSimLocX=
locX;
1062 emIsolDataNoSimLocY=
locY;
1068 const double phiMod = (
phi * (32./
M_PI)) - 0.5;
1070 if (simEnergy == datEnergy && simIsol == datIsol) {
1072 roiPhiSimEqData=phiMod;
1075 if ((simEnergy || simIsol) && (datEnergy || datIsol)) {
1077 roiPhiSimNeData=phiMod;
1079 }
else if (!datEnergy && !datIsol) {
1081 roiPhiSimNoData=phiMod;
1085 roiPhiDataNoSim=phiMod;
◆ compareEm()
Definition at line 387 of file CpmSimMonitorAlgorithm.cxx.
431 bool mismatch =
false;
433 TriggerTowerMapEm::const_iterator ttMapIter = ttMap.begin();
434 TriggerTowerMapEm::const_iterator ttMapIterEnd = ttMap.end();
435 CpmTowerMap::const_iterator cpMapIter = cpMap.begin();
436 CpmTowerMap::const_iterator cpMapIterEnd = cpMap.end();
438 while (ttMapIter != ttMapIterEnd || cpMapIter != cpMapIterEnd) {
448 if (ttMapIter != ttMapIterEnd)
449 ttKey = ttMapIter->first;
450 if (cpMapIter != cpMapIterEnd)
451 cpKey = cpMapIter->first;
453 if ((cpMapIter == cpMapIterEnd) ||
454 ((ttMapIter != ttMapIterEnd) && (cpKey > ttKey))) {
475 }
else if ((ttMapIter == ttMapIterEnd) ||
476 ((cpMapIter != cpMapIterEnd) && (ttKey > cpKey))) {
484 cpEm =
cp->emEnergy();
503 cpEm =
cp->emEnergy();
518 const int loc = crate *
m_modules + cpm - 1;
521 double phiFPGA =
phi;
523 const double twoPi = 2. *
M_PI;
524 const double piByFour =
M_PI / 4.;
525 if (
phi > 7. * piByFour)
527 else if (
phi < piByFour)
530 const int loc2 =
fpga(crate, phiFPGA);
532 const double phiMod =
phi * (32./
M_PI);
534 if (ttEm && ttEm == cpEm) {
537 eta_em_PpmEqOverlap=
eta;
538 phi_em_PpmEqOverlap=phiMod;
542 phi_em_PpmEqCor=phiMod;
545 loc_PpmEqCpmFpga=loc;
546 loc_fpga_PpmEqCpmFpga=
loc2;
549 }
else if (ttEm != cpEm) {
551 errors[loc + cpmBins] |= bitEm;
554 eta_em_PpmNeOverlap=
eta;
555 phi_em_PpmNeOverlap=phiMod;
559 phi_em_PpmNeCor=phiMod;
562 loc_PpmNeCpmFpga=loc;
563 loc_fpga_PpmNeCpmFpga=
loc2;
568 eta_em_PpmNoOverlap=
eta;
569 phi_em_PpmNoOverlap=phiMod;
573 phi_em_PpmNoCor=phiMod;
576 loc_PpmNoCpmFpga=loc;
577 loc_fpga_PpmNoCpmFpga=
loc2;
583 eta_em_OverlapNoPpm=
eta;
584 phi_em_OverlapNoPpm=phiMod;
587 eta_em_OverlapNoPpm=
eta;
588 phi_em_OverlapNoPpm=phiMod;
591 loc_CpmNoPpmFpga=loc;
592 loc_fpga_CpmNoPpmFpga=
loc2;
596 ATH_MSG_DEBUG(
" EMTowerMismatch key/eta/phi/crate/cpm/tt/cp: "
597 <<
key <<
"/" <<
eta <<
"/" <<
phi <<
"/" << crate
598 <<
"/" << cpm <<
"/" << ttEm <<
"/" << cpEm);
◆ compareHad()
Definition at line 605 of file CpmSimMonitorAlgorithm.cxx.
651 bool mismatch =
false;
653 TriggerTowerMapHad::const_iterator ttMapIter = ttMap.begin();
654 TriggerTowerMapHad::const_iterator ttMapIterEnd = ttMap.end();
655 CpmTowerMap::const_iterator cpMapIter = cpMap.begin();
656 CpmTowerMap::const_iterator cpMapIterEnd = cpMap.end();
658 while (ttMapIter != ttMapIterEnd || cpMapIter != cpMapIterEnd) {
668 if (ttMapIter != ttMapIterEnd)
669 ttKey = ttMapIter->first;
670 if (cpMapIter != cpMapIterEnd)
671 cpKey = cpMapIter->first;
673 if ((cpMapIter == cpMapIterEnd) ||
674 ((ttMapIter != ttMapIterEnd) && (cpKey > ttKey))) {
699 }
else if ((ttMapIter == ttMapIterEnd) ||
700 ((cpMapIter != cpMapIterEnd) && (ttKey > cpKey))) {
708 cpHad =
cp->hadEnergy();
730 cpHad =
cp->hadEnergy();
734 if (!ttHad && !cpHad)
745 const int loc = crate *
m_modules + cpm - 1;
748 double phiFPGA =
phi;
750 const double twoPi = 2. *
M_PI;
751 const double piByFour =
M_PI / 4.;
752 if (
phi > 7. * piByFour)
754 else if (
phi < piByFour)
757 const int loc2 =
fpga(crate, phiFPGA);
758 const int loc2Mod =
loc2+1;
760 const double phiMod =
phi * (32./
M_PI);
761 if (ttHad && ttHad == cpHad) {
764 eta_had_PpmEqOverlap=
eta;
765 phi_had_PpmEqOverlap=phiMod;
768 eta_had_PpmEqCor=
eta;
769 phi_had_PpmEqCor=phiMod;
772 loc_PpmEqCpmFpga=loc;
773 loc_fpga_PpmEqCpmFpga=loc2Mod;
777 }
else if (ttHad != cpHad) {
779 errors[loc + cpmBins] |= bitHad;
780 if (ttHad && cpHad) {
782 eta_had_PpmNeOverlap=
eta;
783 phi_had_PpmNeOverlap=phiMod;
786 eta_had_PpmNeCor=
eta;
787 phi_had_PpmNeCor=phiMod;
790 loc_PpmNeCpmFpga=loc;
791 loc_fpga_PpmNeCpmFpga=loc2Mod;
795 eta_had_PpmNoOverlap=
eta;
796 phi_had_PpmNoOverlap=phiMod;
799 eta_had_PpmNoCor=
eta;
800 phi_had_PpmNoCor=phiMod;
803 loc_PpmNoCpmFpga=loc;
804 loc_fpga_PpmNoCpmFpga=loc2Mod;
809 eta_had_OverlapNoPpm=
eta;
810 phi_had_OverlapNoPpm=phiMod;
813 eta_had_OverlapNoPpm=
eta;
814 phi_had_OverlapNoPpm=phiMod;
817 loc_CpmNoPpmFpga=loc;
818 loc_fpga_CpmNoPpmFpga=loc2Mod;
822 ATH_MSG_DEBUG(
" HadTowerMismatch key/eta/phi/crate/cpm/tt/cp: "
823 <<
key <<
"/" <<
eta <<
"/" <<
phi <<
"/" << crate
824 <<
"/" << cpm <<
"/" << ttHad <<
"/" << cpHad);
◆ dataType()
DataType_t AthMonitorAlgorithm::dataType |
( |
| ) |
const |
|
inlineinherited |
Accessor functions for the data type.
- Returns
- the current value of the class's DataType_t instance.
Definition at line 221 of file AthMonitorAlgorithm.h.
◆ dataTypeStringToEnum()
Convert the data type string from the python configuration to an enum object.
- Returns
- a value in the DataType_t enumeration which matches the input string.
Definition at line 140 of file AthMonitorAlgorithm.cxx.
142 std::string lowerCaseStr =
str;
146 if( lowerCaseStr ==
"userdefined" ) {
148 }
else if( lowerCaseStr ==
"montecarlo" ) {
150 }
else if( lowerCaseStr ==
"collisions" ) {
152 }
else if( lowerCaseStr ==
"cosmics" ) {
154 }
else if( lowerCaseStr ==
"heavyioncollisions" ) {
157 ATH_MSG_WARNING(
"AthMonitorAlgorithm::dataTypeStringToEnum(): Unknown data type "
158 <<
str<<
", returning userDefined.");
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ environment()
Accessor functions for the environment.
- Returns
- the current value of the class's Environment_t instance.
Definition at line 205 of file AthMonitorAlgorithm.h.
◆ envStringToEnum()
Convert the environment string from the python configuration to an enum object.
- Returns
- a value in the Environment_t enumeration which matches the input string.
Definition at line 112 of file AthMonitorAlgorithm.cxx.
114 std::string lowerCaseStr =
str;
118 if( lowerCaseStr ==
"user" ) {
120 }
else if( lowerCaseStr ==
"online" ) {
122 }
else if( lowerCaseStr ==
"tier0" ) {
124 }
else if( lowerCaseStr ==
"tier0raw" ) {
126 }
else if( lowerCaseStr ==
"tier0esd" ) {
128 }
else if( lowerCaseStr ==
"aod" ) {
130 }
else if( lowerCaseStr ==
"altprod" ) {
133 ATH_MSG_WARNING(
"AthMonitorAlgorithm::envStringToEnum(): Unknown environment "
134 <<
str<<
", returning user.");
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode AthMonitorAlgorithm::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtualinherited |
Applies filters and trigger requirements.
Then, calls fillHistograms().
- Parameters
-
ctx | event context for reentrant Athena call |
- Returns
- StatusCode
Definition at line 73 of file AthMonitorAlgorithm.cxx.
78 if (!filterItr->accept()) {
80 return StatusCode::SUCCESS;
87 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
const DataObjIDColl & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ fillHistograms()
StatusCode CpmSimMonitorAlgorithm::fillHistograms |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
adds event to the monitoring histograms
User will overwrite this function. Histogram booking is no longer done in C++. This function is called in execute once the filters are all passed.
- Parameters
-
ctx | forwarded from execute |
- Returns
- StatusCode
Implements AthMonitorAlgorithm.
Definition at line 59 of file CpmSimMonitorAlgorithm.cxx.
64 std::vector<std::reference_wrapper<Monitored::IMonitoredVariable>>
variables;
134 bool overlap =
false;
135 bool mismatchCoreEm =
false;
136 bool mismatchCoreHad =
false;
137 bool mismatchOverlapEm =
false;
138 bool mismatchOverlapHad =
false;
140 mismatchCoreEm =
compareEm(ttMapEm, cpMap, errorsCPM, overlap);
141 mismatchCoreHad =
compareHad(ttMapHad, cpMap, errorsCPM, overlap);
144 mismatchOverlapEm =
compareEm(ttMapEm, ovMap, errorsCPM, overlap);
145 mismatchOverlapHad =
compareHad(ttMapHad, ovMap, errorsCPM, overlap);
151 std::unique_ptr<xAOD::CPMTobRoIContainer> cpmRoiSIM = std::make_unique<xAOD::CPMTobRoIContainer>();
152 std::unique_ptr<xAOD::CPMTobRoIAuxContainer> cpmRoiSIMAux = std::make_unique<xAOD::CPMTobRoIAuxContainer>();
154 cpmRoiSIM.get()->setStore(cpmRoiSIMAux.get());
155 if (mismatchCoreEm || mismatchCoreHad || mismatchOverlapEm ||
156 mismatchOverlapHad) {
157 simulate(&cpMap, &ovMap, cpmRoiSIM.get(), ctx);
159 simulate(&cpMap, cpmRoiSIM.get(), ctx);
165 compare(crSimMap, crMap, errorsCPM, rodTESptr);
170 std::unique_ptr<xAOD::CMXCPTobContainer> cmxCpTobSIM = std::make_unique<xAOD::CMXCPTobContainer>();
171 std::unique_ptr<xAOD::CMXCPTobAuxContainer> cmxCpTobSIMAux = std::make_unique<xAOD::CMXCPTobAuxContainer>();
173 cmxCpTobSIM.get()->setStore(cmxCpTobSIMAux.get());
174 simulate(cpmRoiTESptr, cmxCpTobSIM.get());
178 compare(cbSimMap, cbMap, parityMap, errorsCPM, errorsCMX, rodTESptr);
183 std::unique_ptr<xAOD::CMXCPHitsContainer> cmxLocalSIM = std::make_unique<xAOD::CMXCPHitsContainer>();
184 std::unique_ptr<xAOD::CMXCPHitsAuxContainer> cmxLocalSIMAux = std::make_unique<xAOD::CMXCPHitsAuxContainer>();
185 cmxLocalSIM.get()->setStore(cmxLocalSIMAux.get());
191 cmxLocalSimMap.clear();
200 std::unique_ptr<xAOD::CMXCPHitsContainer> cmxTotalSIM = std::make_unique<xAOD::CMXCPHitsContainer>();
201 std::unique_ptr<xAOD::CMXCPHitsAuxContainer> cmxTotalSIMAux = std::make_unique<xAOD::CMXCPHitsAuxContainer>();
203 cmxTotalSIM->setStore(cmxTotalSIMAux.get());
204 simulate(cmxCpHitsTESptr, cmxTotalSIM.get());
209 cmxTotalSimMap.clear();
214 std::unique_ptr<xAOD::CMXCPHitsContainer> cmxTopoSIM = std::make_unique<xAOD::CMXCPHitsContainer>();
215 std::unique_ptr<xAOD::CMXCPHitsAuxContainer> cmxTopoSIMAux = std::make_unique<xAOD::CMXCPHitsAuxContainer>();
216 cmxTopoSIM.get()->setStore(cmxTopoSIMAux.get());
222 cmxTopoSimMap.clear();
240 const int maxErrorsPerLB=10;
241 bool error_tt{
false}, error_roi{
false}, error_tob{
false}, error_thresh{
false};
250 for (
int loc = 0; loc < cpmBins; ++loc) {
251 if ((errorsCPM[loc] >>
err) & 0
x1) {
256 const long long eventNumber = ctx.eventID().event_number();
257 if ((errorsCPM[loc + cpmBins] >>
err) & 0
x1) {
258 cpmErrorLoc_SimNeData=loc;
259 cpmError_SimNeData=
err;
267 std::lock_guard<std::mutex> lock(
m_mutex);
269 m_errorLB_tt_counter[
lb]+=1;
272 if (m_errorLB_tt_counter[
lb]<=maxErrorsPerLB) {
284 }
else if (
err==2 ||
err==3) {
287 std::lock_guard<std::mutex> lock(
m_mutex);
289 m_errorLB_roi_counter[
lb]+=1;
292 if (m_errorLB_roi_counter[
lb]<=maxErrorsPerLB) {
304 }
else if (
err==4 ||
err==5) {
307 std::lock_guard<std::mutex> lock(
m_mutex);
309 m_errorLB_tob_counter[
lb]+=1;
312 if(m_errorLB_tob_counter[
lb]<=maxErrorsPerLB) {
328 if ((errorsCMX[loc] >>
err) & 0
x1) {
329 cpmErrorLoc=loc+cpmBins;
333 if ((errorsCMX[loc + cmxBins] >>
err) & 0
x1) {
334 cpmErrorLoc_SimNeData=loc+cpmBins;
335 cpmError_SimNeData=
err;
349 std::lock_guard<std::mutex> lock(
m_mutex);
351 m_errorLB_thresh_counter[
lb]+=1;
354 if(m_errorLB_thresh_counter[
lb]<=maxErrorsPerLB) {
372 auto save = std::make_unique<ErrorVector>(crateErr);
376 return StatusCode::FAILURE;
384 return StatusCode::SUCCESS;
◆ fillXVsThresholds()
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ fpga()
int CpmSimMonitorAlgorithm::fpga |
( |
int |
crate, |
|
|
double |
phi |
|
) |
| const |
|
private |
◆ GetEventInfo()
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
- Parameters
-
ctx | EventContext for the event |
- Returns
- a SG::ReadHandle<xAOD::EventInfo>
Definition at line 107 of file AthMonitorAlgorithm.cxx.
◆ getGroup()
Get a specific monitoring tool from the tool handle array.
Finds a specific GenericMonitoringTool instance from the list of monitoring tools (a ToolHandleArray). Throws a FATAL warning if the object found is empty.
- Parameters
-
name | string name of the desired tool |
- Returns
- reference to the desired monitoring tool
Definition at line 164 of file AthMonitorAlgorithm.cxx.
171 if (!isInitialized()) {
173 "It seems that the AthMonitorAlgorithm::initialize was not called "
174 "in derived class initialize method");
178 [](
const std::string&
s,
auto h) { return s +
"," + h.first; });
179 ATH_MSG_FATAL(
"The tool " <<
name <<
" could not be found in the tool array of the "
180 <<
"monitoring algorithm " <<
m_name <<
". This probably reflects a discrepancy between "
181 <<
"your python configuration and c++ filling code. Note: your available groups are {"
182 << available <<
"}.");
◆ getL1Menu()
◆ getTrigDecisionTool()
Get the trigger decision tool member.
The trigger decision tool is used to check whether a specific trigger is passed by an event.
- Returns
- m_trigDecTool
Definition at line 189 of file AthMonitorAlgorithm.cxx.
◆ initialize()
StatusCode CpmSimMonitorAlgorithm::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ isClonable()
bool AthReentrantAlgorithm::isClonable |
( |
| ) |
const |
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in Simulation::BeamEffectsAlg, InDet::SiTrackerSpacePointFinder, InDet::SCT_Clusterization, InDet::SiSPSeededTrackFinder, SCTRawDataProvider, InDet::GNNSeedingTrackMaker, SCT_PrepDataToxAOD, RoIBResultToxAOD, InDet::SiSPGNNTrackMaker, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, SCT_ReadCalibChipDataTestAlg, SCT_TestCablingAlg, SCT_ConfigurationConditionsTestAlg, ITkPixelCablingAlg, ITkStripCablingAlg, SCTEventFlagWriter, SCT_ConditionsSummaryTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_TdaqEnabledTestAlg, SCT_SiliconConditionsTestAlg, SCTSiLorentzAngleTestAlg, SCT_ByteStreamErrorsTestAlg, SCT_ConditionsParameterTestAlg, SCT_FlaggedConditionTestAlg, SCT_StripVetoTestAlg, SCT_RawDataToxAOD, and SCTSiPropertiesTestAlg.
Definition at line 44 of file AthReentrantAlgorithm.cxx.
◆ limitedRoiSet() [1/2]
Definition at line 2017 of file CpmSimMonitorAlgorithm.cxx.
2022 for (; rodIter != rodIterE; ++rodIter) {
2024 const int rodCrate =
rod->crate() - 8;
2025 if (rodCrate >= 0 && rodCrate < m_crates && rod->
dataType() == 1 &&
2026 rod->limitedRoISet()) {
2027 limitedRoi |= (1 << rodCrate);
2030 return (((limitedRoi >> crate) & 0
x1) == 1);
◆ limitedRoiSet() [2/2]
Definition at line 2033 of file CpmSimMonitorAlgorithm.cxx.
2038 for (; rodIter != rodIterE; ++rodIter) {
2040 const int rodCrate =
rod->crate() - 8;
2041 if (rodCrate >= 0 && rodCrate < m_crates && rod->
dataType() == 1 &&
2042 rod->limitedRoISet()) {
2043 limitedRoi |= (1 << rodCrate);
2046 return (((limitedRoi >> crate) & 0
x1) == 1);
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ parseList()
StatusCode AthMonitorAlgorithm::parseList |
( |
const std::string & |
line, |
|
|
std::vector< std::string > & |
result |
|
) |
| const |
|
virtualinherited |
Parse a string into a vector.
The input string is a single long string of all of the trigger names. It parses this string and turns it into a vector, where each element is one trigger or trigger category.
- Parameters
-
line | The input string. |
result | The parsed output vector of strings. |
- Returns
- StatusCode
Definition at line 336 of file AthMonitorAlgorithm.cxx.
338 std::stringstream
ss(
line);
342 while ( std::getline(
ss,
item,
',') ) {
343 std::stringstream iss(
item);
348 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ setupMap() [1/5]
Definition at line 1868 of file CpmSimMonitorAlgorithm.cxx.
1872 for (;
pos != posE; ++
pos) {
1873 const int crate = (*pos)->crate();
1874 const int cmx = (*pos)->cmx();
1875 const int source = (*pos)->sourceComponent();
1876 const int key = (crate * 2 + cmx) * 8 +
source;
1877 map.insert(std::make_pair(
key, *
pos));
1879 return StatusCode::SUCCESS;
◆ setupMap() [2/5]
Definition at line 1840 of file CpmSimMonitorAlgorithm.cxx.
1845 for (;
pos != posE; ++
pos) {
1846 const int crate = (*pos)->crate();
1847 const int cpm = (*pos)->cpm();
1848 const int cmx = (*pos)->cmx();
1849 const int chip = (*pos)->chip();
1850 const int loc = (*pos)->location();
1852 (((((((crate << 1) | cmx) << 4) | cpm) << 4) | chip) << 2) | loc;
1853 map.insert(std::make_pair(
key, *
pos));
1859 (*parityMap)[
index] = parity;
1863 return StatusCode::SUCCESS;
◆ setupMap() [3/5]
Definition at line 1819 of file CpmSimMonitorAlgorithm.cxx.
1824 for (;
pos != posE; ++
pos) {
1825 const int crate = (*pos)->crate();
1826 const int cpm = (*pos)->cpm();
1827 const int chip = (*pos)->chip();
1828 const int loc = (*pos)->location();
1829 const int type = (*pos)->type();
1831 (((((((
type << 2) | crate) << 4) | cpm) << 3) | chip) << 3) | loc;
1832 map.insert(std::make_pair(
key, *
pos));
1835 return StatusCode::SUCCESS;
◆ setupMap() [4/5]
Definition at line 1802 of file CpmSimMonitorAlgorithm.cxx.
1807 for (;
pos != posE; ++
pos) {
1808 CpmTowerMap::mapped_type
cp = (*pos);
1809 const double eta = (*pos)->eta();
1810 const double phi = (*pos)->phi();
1812 map.insert(std::make_pair(
key,
cp));
1814 return StatusCode::SUCCESS;
◆ setupMap() [5/5]
Definition at line 1767 of file CpmSimMonitorAlgorithm.cxx.
1776 for (;
pos != posE; ++
pos) {
1778 const int layer = (*pos)->layer();
1780 emE = (*pos)->cpET();
1783 hadE = (*pos)->cpET();
1785 const double eta = (*pos)->eta();
1786 if (
eta > -2.5 &&
eta < 2.5 && (emE > 0 || hadE > 0)) {
1787 const double phi = (*pos)->phi();
1790 mapEm.insert(std::make_pair(
key,
tt));
1792 mapHad.insert(std::make_pair(
key,
tt));
1796 return StatusCode::SUCCESS;
◆ simulate() [1/5]
Definition at line 1884 of file CpmSimMonitorAlgorithm.cxx.
1890 std::vector<CpmTowerMap> crateMaps(
m_crates);
1892 std::unique_ptr<xAOD::CPMTowerContainer> tempColl = std::make_unique<xAOD::CPMTowerContainer>();
1893 std::unique_ptr<xAOD::CPMTowerAuxContainer> tempCollAux = std::make_unique<xAOD::CPMTowerAuxContainer>();
1895 tempColl.get()->setStore(tempCollAux.get());
1896 for (
const auto& iter : *
towers) {
1897 CpmTowerMap::mapped_type
tt =
ttCheck(iter.second, tempColl.get());
1902 crateMaps[crate].insert(std::make_pair(iter.first,
tt));
1906 CpmTowerMap::mapped_type
tt =
ttCheck(iter.second, tempColl.get());
1911 crateMaps[crate].insert(std::make_pair(iter.first,
tt));
1914 for (
int crate = 0; crate <
m_crates; ++crate) {
1922 for (; roiIter != roiIterE; ++roiIter) {
1923 if ((*roiIter)->crate() == crate) {
1924 rois->push_back(*roiIter);
◆ simulate() [2/5]
◆ simulate() [3/5]
◆ simulate() [4/5]
◆ simulate() [5/5]
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ thresholdsDiff()
int CpmSimMonitorAlgorithm::thresholdsDiff |
( |
int |
val1, |
|
|
int |
val2, |
|
|
int |
nThresh, |
|
|
int |
nBits |
|
) |
| const |
|
private |
Definition at line 1750 of file CpmSimMonitorAlgorithm.cxx.
1754 const int mask = (1 << nBits) - 1;
1755 for (
int thr = 0; thr < nThresh; ++thr) {
1756 const int hit1 = (val1 >> (nBits*thr)) &
mask;
1757 const int hit2 = (val2 >> (nBits*thr)) &
mask;
1758 if (hit1 != hit2)
result |= (1 << thr);
◆ thresholdsSame()
int CpmSimMonitorAlgorithm::thresholdsSame |
( |
int |
val1, |
|
|
int |
val2, |
|
|
int |
nThresh, |
|
|
int |
nBits |
|
) |
| const |
|
private |
Definition at line 1735 of file CpmSimMonitorAlgorithm.cxx.
1739 const int mask = (1 << nBits) - 1;
1740 for (
int thr = 0; thr < nThresh; ++thr) {
1741 const int hit1 = (val1 >> (nBits*thr)) &
mask;
1742 const int hit2 = (val2 >> (nBits*thr)) &
mask;
1743 if (hit1 && (hit1 == hit2))
result |= (1 << thr);
◆ trigChainsArePassed()
bool AthMonitorAlgorithm::trigChainsArePassed |
( |
const std::vector< std::string > & |
vTrigNames | ) |
const |
|
inherited |
Check whether triggers are passed.
For the event, use the trigger decision tool to check that at least one of the triggers listed in the supplied vector is passed.
- Parameters
-
vTrigNames | List of trigger names. |
- Returns
- If empty input, default to true. If at least one trigger is specified, returns whether at least one trigger was passed.
Definition at line 194 of file AthMonitorAlgorithm.cxx.
198 if (vTrigNames.empty())
return true;
210 bool expressPass = passedBits & TrigDefs::Express_passed;
217 return group->isPassed();
◆ ttCheck()
CpmSimMonitorAlgorithm::CpmTowerMap::mapped_type CpmSimMonitorAlgorithm::ttCheck |
( |
CpmTowerMap::mapped_type |
tt, |
|
|
xAOD::CPMTowerContainer * |
coll |
|
) |
| const |
|
private |
Definition at line 1991 of file CpmSimMonitorAlgorithm.cxx.
1997 if ((emParity &&
tt->emEnergy()) || (hadParity &&
tt->hadEnergy())) {
1998 const int peak =
tt->peak();
1999 std::vector<uint8_t> emEnergyVec(
tt->emEnergyVec());
2000 std::vector<uint8_t> hadEnergyVec(
tt->hadEnergyVec());
2001 std::vector<uint32_t> emErrorVec(
tt->emErrorVec());
2002 std::vector<uint32_t> hadErrorVec(
tt->hadErrorVec());
2004 emEnergyVec[peak] = 0;
2006 hadEnergyVec[peak] = 0;
2008 ct->makePrivateStore();
2009 ct->initialize(
tt->eta(),
tt->phi(), emEnergyVec, hadEnergyVec, emErrorVec,
◆ updateVHKA()
◆ ATLAS_THREAD_SAFE [1/4]
std::map<uint32_t, int> m_errorLB_tt_counter CpmSimMonitorAlgorithm::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [2/4]
std::map<uint32_t, int> m_errorLB_roi_counter CpmSimMonitorAlgorithm::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [3/4]
std::map<uint32_t, int> m_errorLB_tob_counter CpmSimMonitorAlgorithm::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [4/4]
std::map<uint32_t, int> m_errorLB_thresh_counter CpmSimMonitorAlgorithm::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ cfg
CpmSimMonitorAlgorithm.cfg |
◆ CpmSimMonitorCfg
CpmSimMonitorAlgorithm.CpmSimMonitorCfg |
◆ False
CpmSimMonitorAlgorithm.False |
◆ Files
CpmSimMonitorAlgorithm.Files |
◆ flags
CpmSimMonitorAlgorithm.flags |
◆ HISTFileName
CpmSimMonitorAlgorithm.HISTFileName |
◆ inputs
CpmSimMonitorAlgorithm.inputs |
◆ m_cmxCpHitsLocation
◆ m_cmxCpTobLocation
◆ m_cmxs
Gaudi::Property<int> CpmSimMonitorAlgorithm::m_cmxs {this,"s_cmxs", 2, "Number of CMXs"} |
|
private |
◆ m_configSvc
◆ m_cpCmxTool
◆ m_cpmTobRoiLocation
◆ m_cpmTool
◆ m_cpmTowerLocation
◆ m_cpmTowerLocationOverlap
SG::ReadHandleKey<xAOD::CPMTowerContainer> CpmSimMonitorAlgorithm::m_cpmTowerLocationOverlap {this, "CPMTowerLocationOverlap",LVL1::TrigT1CaloDefs::CPMTowerLocation + "Overlap", "CPM Overlap container"} |
|
private |
◆ m_crates
Gaudi::Property<int> CpmSimMonitorAlgorithm::m_crates {this,"s_crates", 4, "Number of CPM crates"} |
|
private |
◆ m_dataType
◆ m_dataTypeStr
Gaudi::Property<std::string> AthMonitorAlgorithm::m_dataTypeStr {this,"DataType","userDefined"} |
|
protectedinherited |
◆ m_defaultLBDuration
Gaudi::Property<float> AthMonitorAlgorithm::m_defaultLBDuration {this,"DefaultLBDuration",60.} |
|
protectedinherited |
◆ m_detailLevel
Gaudi::Property<int> AthMonitorAlgorithm::m_detailLevel {this,"DetailLevel",0} |
|
protectedinherited |
◆ m_detStore
◆ m_DQFilterTools
ToolHandleArray<IDQFilterTool> AthMonitorAlgorithm::m_DQFilterTools {this,"FilterTools",{}} |
|
protectedinherited |
◆ m_dummy
◆ m_enforceExpressTriggers
Gaudi::Property<bool> AthMonitorAlgorithm::m_enforceExpressTriggers |
|
privateinherited |
Initial value:{this,
"EnforceExpressTriggers", false,
"Requires that matched triggers made the event enter the express stream"}
Definition at line 372 of file AthMonitorAlgorithm.h.
◆ m_environment
◆ m_environmentStr
Gaudi::Property<std::string> AthMonitorAlgorithm::m_environmentStr {this,"Environment","user"} |
|
protectedinherited |
Environment string pulled from the job option and converted to enum.
Definition at line 352 of file AthMonitorAlgorithm.h.
◆ m_errorLocation
◆ m_errorTool
◆ m_EventInfoKey
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_fileKey
Gaudi::Property<std::string> AthMonitorAlgorithm::m_fileKey {this,"FileKey",""} |
|
protectedinherited |
◆ m_L1MenuKey
◆ m_lbDurationDataKey
◆ m_legacyCpHadInputsDisabled
Gaudi::Property<bool> CpmSimMonitorAlgorithm::m_legacyCpHadInputsDisabled {this,"s_legacyCpHadInputsDisabled", false, "Status of the L1Calo Legacy CP hadronic inputs"} |
|
private |
◆ m_lumiDataKey
◆ m_maxSlices
Gaudi::Property<int> CpmSimMonitorAlgorithm::m_maxSlices {this,"s_maxSlices", 5, "Maximum number of slices"} |
|
private |
◆ m_modules
Gaudi::Property<int> CpmSimMonitorAlgorithm::m_modules {this,"s_modules", 14, "Number of modules per crate (modules numbered 1-14)"} |
|
private |
◆ m_mutex
std::mutex CpmSimMonitorAlgorithm::m_mutex {} |
|
mutableprivate |
◆ m_name
std::string AthMonitorAlgorithm::m_name |
|
privateinherited |
◆ m_overlapPresent
bool CpmSimMonitorAlgorithm::m_overlapPresent |
|
private |
◆ m_packageName
StringProperty CpmSimMonitorAlgorithm::m_packageName {this,"PackageName","CpmSimMonitor","group name for histograming"} |
|
private |
◆ m_rodHeaderLocation
◆ m_toolLookupMap
std::unordered_map<std::string, size_t> AthMonitorAlgorithm::m_toolLookupMap |
|
privateinherited |
◆ m_tools
◆ m_trigDecTool
◆ m_triggerChainString
Gaudi::Property<std::string> AthMonitorAlgorithm::m_triggerChainString {this,"TriggerChain",""} |
|
protectedinherited |
Trigger chain string pulled from the job option and parsed into a vector.
Definition at line 355 of file AthMonitorAlgorithm.h.
◆ m_triggerTowerLocation
◆ m_trigLiveFractionDataKey
◆ m_useLumi
Gaudi::Property<bool> AthMonitorAlgorithm::m_useLumi {this,"EnableLumi",false} |
|
protectedinherited |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_vTrigChainNames
std::vector<std::string> AthMonitorAlgorithm::m_vTrigChainNames |
|
protectedinherited |
◆ nevents
CpmSimMonitorAlgorithm.nevents |
◆ OutputLevel
CpmSimMonitorAlgorithm.OutputLevel |
◆ summariseProps
CpmSimMonitorAlgorithm.summariseProps |
◆ withDetails
CpmSimMonitorAlgorithm.withDetails |
The documentation for this class was generated from the following files:
unsigned int cpModuleOverlap(const Coordinate &coord)
return ID of CP module for overlap coord
int isolation() const
Return isolation.
DataType_t dataType() const
Accessor functions for the data type.
Const iterator class for DataVector/DataList.
void simulate(const CpmTowerMap *towers, const CpmTowerMap *towersOv, xAOD::CPMTobRoIContainer *rois, const EventContext &ctx) const
uint32_t hits0() const
Peak functions - return value of peak bunch crossing Assuming we have got the timing calibration corr...
ToolHandle< LVL1::IL1CPMTools > m_cpmTool
uint8_t crate() const
get crate
ToolHandle< LVL1::ITrigT1CaloMonErrorTool > m_errorTool
Scalar phi() const
phi method
int thresholdsSame(int val1, int val2, int nThresh, int nBits) const
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
const_pointer_type cptr()
Dereference the pointer.
decoder
def channelSelection(self, channelList, groupType): if groupType == self.SingleGroup: pass elif group...
StringProperty m_packageName
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
void fillXVsThresholds(Monitored::Scalar< int > &xitem, Monitored::Scalar< int > &yitem, Monitored::Scalar< int > &witem, int x, int val, int nThresh, int nBits, int offset=0) const
int fpga(int crate, double phi) const
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
SG::ReadHandleKey< xAOD::RODHeaderContainer > m_rodHeaderLocation
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
std::vector< std::string > m_vTrigChainNames
Vector of trigger chain names parsed from trigger chain string.
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)
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
std::unordered_map< std::string, size_t > m_toolLookupMap
AthMonitorAlgorithm::Environment_t m_environment
Instance of the Environment_t enum.
@ loc2
generic first and second local coordinate
int crate() const
Return crate number (0-1)
int thresholdsDiff(int val1, int val2, int nThresh, int nBits) const
Description of CMXCPTob_v1.
const std::string & key() const
Return the StoreGate ID for the referenced object.
ToolHandle< LVL1::IL1CPCMXTools > m_cpCmxTool
CPMTower_v2 CPMTower
Define the latest version of the CPMTower class.
SG::ReadHandleKey< xAOD::CMXCPTobContainer > m_cmxCpTobLocation
bool limitedRoiSet(int crate, SG::ReadHandle< xAOD::RODHeaderContainer > &rodTES) const
bool trigChainsArePassed(const std::vector< std::string > &vTrigNames) const
Check whether triggers are passed.
xAOD::CPMTowerMap_t CpmTowerMap
bool compareHad(const TriggerTowerMapHad &ttMap, const CpmTowerMap &cpMap, ErrorVector &errors, bool overlap) const
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
const ToolHandle< GenericMonitoringTool > m_dummy
SG::ReadHandleKey< xAOD::CPMTowerContainer > m_cpmTowerLocation
SG::ReadHandleKey< xAOD::CPMTowerContainer > m_cpmTowerLocationOverlap
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
void compare(const CpmTobRoiMap &roiSimMap, const CpmTobRoiMap &roiMap, ErrorVector &errors, const xAOD::RODHeaderContainer *rodTES) const
SG::WriteHandleKey< std::vector< int > > m_errorLocation
def save(self, fileName="./columbo.out")
uint8_t cmx() const
get cmx
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Array of Data Quality filter tools.
CoordinateRange class declaration.
std::vector< int > ErrorVector
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Coordinate class declaration.
(Non-const) Iterator class for DataVector/DataList.
int cpm() const
Return CPM number (1-14)
std::map< int, const xAOD::CMXCPTob * > CmxCpTobMap
::StatusCode StatusCode
StatusCode definition for legacy code.
uint32_t error() const
get errorVec at peak bunch crossing
void tolower(std::string &s)
virtual StatusCode fillHistograms(const EventContext &ctx) const =0
adds event to the monitoring histograms
SG::ReadHandleKey< xAOD::CPMTobRoIContainer > m_cpmTobRoiLocation
CpmTowerMap::mapped_type ttCheck(CpmTowerMap::mapped_type tt, xAOD::CPMTowerContainer *coll) const
Description of TriggerTower_v2.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
std::map< int, const xAOD::TriggerTower * > TriggerTowerMapEm
Gaudi::Property< bool > m_legacyCpHadInputsDisabled
unsigned int cpModule(const Coordinate &coord)
return ID of CP module.
int type() const
Return type em/tau (0/1)
uint32_t roiWord() const
get roiWord
StatusCode setupMap(const xAOD::TriggerTowerContainer *coll, TriggerTowerMapEm &emmap, TriggerTowerMapHad &hadmap) const
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
AthConfigFlags cosmics(AthConfigFlags flags, str instanceName, str recoMode)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Gaudi::Property< int > m_cmxs
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
SG::ReadHandleKey< xAOD::TriggerTowerContainer > m_triggerTowerLocation
Gaudi::Property< int > m_crates
virtual bool isValid() override final
Can the handle be successfully dereferenced?
AthMonitorAlgorithm::DataType_t m_dataType
Instance of the DataType_t enum.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
SG::ReadHandleKey< xAOD::CMXCPHitsContainer > m_cmxCpHitsLocation
virtual void renounce()=0
ServiceHandle< TrigConf::ITrigConfigSvc > m_configSvc
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
returns the trigger hardware components associated with a given Coordinate
const std::string selection
uint8_t cmx() const
get cmx
Gaudi::Property< int > m_modules
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setPhiMap phiBin
std::string to_string(const DetectorType &type)
unsigned int cpCrate(const Coordinate &coord)
returns crate ID covering that coord.
virtual StatusCode sysInitialize() override
Override sysInitialize.
Gaudi::Property< bool > m_enforceExpressTriggers
value_type push_back(value_type pElem)
Add an element to the end of the collection.
unsigned int cpCrateOverlap(const Coordinate &coord)
returns crate ID covering that overlap coord.
virtual StatusCode initialize() override
initialize
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
A level 1 calorimeter trigger conversion service: returns the Coordinate represented by a RoI word.
uint8_t energy() const
Peak functions - return value of peak bunch crossing Assuming we have got the timing calibration corr...
Gaudi::Property< int > m_maxSlices
#define ATH_MSG_WARNING(x)
uint8_t crate() const
get crate
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
const TrigConf::L1Menu * getL1Menu(const EventContext &ctx) const
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
int chip() const
Return CP chip number (0-7)
uint8_t isolation() const
get isolationVec at peak bunch crossing
bool compareEm(const TriggerTowerMapEm &ttMap, const CpmTowerMap &cpMap, ErrorVector &errors, bool overlap) const
CPMTobRoIContainer_v1 CPMTobRoIContainer
Define the latest version of the CPMTobRoI class.
SG::ReadHandleKey< TrigConf::L1Menu > m_L1MenuKey
std::map< int, const xAOD::CMXCPHits * > CmxCpHitsMap
xAOD::CPMTobRoIMap_t CpmTobRoiMap
Declare a monitored scalar variable.
virtual unsigned int ttKey(const TriggerTower &tower)
returns the key of the passed tower
uint8_t sourceComponent() const
get source
int energy() const
Return energy.
Description of CMXCPHits_v1.
int location() const
Return location (RoI local coords) (0-7)
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
The TriggerTowerKey object provides the key for each trigger tower depending on its eta-phi coords.
uint32_t hits1() const
get hitsVec1 at peak bunch crossing
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
uint8_t cpm() const
get cpm
Description of CPMTobRoI_v1.
uint8_t location() const
get location
uint8_t chip() const
get chip
Description of CPMTower_v2.