ATLAS Offline Software
Loading...
Searching...
No Matches
PixelAthHitMonAlg Class Reference

#include <PixelAthHitMonAlg.h>

Inheritance diagram for PixelAthHitMonAlg:
Collaboration diagram for PixelAthHitMonAlg:

Public Types

enum class  Environment_t {
  user = 0 , online , tier0 , tier0Raw ,
  tier0ESD , AOD , altprod
}
 Specifies the processing environment. More...
enum class  DataType_t {
  userDefined = 0 , monteCarlo , collisions , cosmics ,
  heavyIonCollisions
}
 Specifies what type of input data is being monitored. More...

Public Member Functions

 PixelAthHitMonAlg (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~PixelAthHitMonAlg ()=default
virtual StatusCode initialize () override
 initialize
virtual StatusCode fillHistograms (const EventContext &ctx) const override
 adds event to the monitoring histograms
std::string findComponentString (int bec, int ld) const
void fill1DProfLumiLayers (const std::string &prof1Dname, int lb, float *weights, int nlayers=PixLayers::COUNT) const
 filling 1DProf per-lumi per-layer histograms ["ECA","ECC","BLayer","Layer1","Layer2","IBL","IBL2D","IBL3D"]
void fill2DProfLumiLayers (const std::string &prof2Dname, int lb, float(*weights)[PixLayers::COUNT], const int *nCategories) const
 filling 2DProf per-lumi per-layer histograms ["ECA","ECC","BLayer","Layer1","Layer2","IBL2D","IBL3D"]
int getPixLayersID (int ec, int ld) const
 helper function to get layers ID
bool isIBL2D (int hashID) const
 helper function to check if module is IBL planar based on pixel hash ID
bool isIBL3D (int hashID) const
 helper function to check if module is IBL 3D based on pixel hash ID
int getNumberOfFEs (int pixlayer, int etaMod) const
 helper function to get number of FEs per module
void getPhiEtaMod (Identifier &id, int &phiMod, int &etaMod, bool &copyFE) const
 helper function to get eta phi coordinates of per-layer arrays
bool isHitOnTrack (Identifier id, std::vector< Identifier > const &RDOIDs) const
 checks if hit is on track
bool isClusterOnTrack (Identifier id, std::vector< std::pair< Identifier, double > > const &ClusterIDs) const
 checks if cluster is on track
bool isClusterOnTrack (Identifier id, std::vector< std::pair< Identifier, double > > const &ClusterIDs, double &cosalpha) const
 checks if cluster is on track and returns its cosalpha
void fill2DProfLayerAccum (const VecAccumulator2DMap &accumulator) const
 take VecAccumulator2DMap and fill the corresponding group
void fill1DModProfAccum (const VecAccumulator2DMap &accumulator, int lumiblock) const
 take VecAccumulator2DMap and fill 3D arrays [layer, pm, em] with its values and lumiblock
void fillFromArrays (const std::string &namePP0, AccumulatorArrays &pixarrays, const std::string &name2DMap="") const
 filling 1DProfile per-pp0(ROD) histograms for ["ECA","ECC","BLayer","Layer1","Layer2","IBLA","IBLC"]
virtual StatusCode execute (const EventContext &ctx) const override
 Applies filters and trigger requirements.
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.
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.
template<typename... T>
void fill (const ToolHandle< GenericMonitoringTool > &groupHandle, T &&... variables) const
 Fills a variadic list of variables to a group by reference.
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.
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.
template<typename... T>
void fill (const std::string &groupName, T &&... variables) const
 Fills a variadic list of variables to a group by name.
Environment_t environment () const
 Accessor functions for the environment.
Environment_t envStringToEnum (const std::string &str) const
 Convert the environment string from the python configuration to an enum object.
DataType_t dataType () const
 Accessor functions for the data type.
DataType_t dataTypeStringToEnum (const std::string &str) const
 Convert the data type string from the python configuration to an enum object.
const ToolHandle< GenericMonitoringTool > & getGroup (const std::string &name) const
 Get a specific monitoring tool from the tool handle array.
const ToolHandle< Trig::TrigDecisionTool > & getTrigDecisionTool () const
 Get the trigger decision tool member.
bool trigChainsArePassed (const std::vector< std::string > &vTrigNames) const
 Check whether triggers are passed.
SG::ReadHandle< xAOD::EventInfoGetEventInfo (const EventContext &) const
 Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
virtual float lbAverageInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the average mu, i.e.
virtual float lbInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate instantaneous number of interactions, i.e.
virtual float lbAverageLuminosity (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1).
virtual float lbLuminosityPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the instantaneous luminosity per bunch crossing.
virtual double lbDuration (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the duration of the luminosity block (in seconds)
virtual float lbAverageLivefraction (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the average luminosity livefraction.
virtual float livefractionPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the live fraction per bunch crossing ID.
virtual double lbLumiWeight (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the average integrated luminosity multiplied by the live fraction.
virtual StatusCode parseList (const std::string &line, std::vector< std::string > &result) const
 Parse a string into a vector.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
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.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Public Attributes

str runtext = ''
int NumLayersDisk = 3
int NumStavesIBL = 14
int NumStavesL0 = 22
int NumStavesL1 = 38
int NumStavesL2 = 52
int NumModulesBarrel = 13
int NumModulesDisk = 48
int NumPP0sEC = 24
str btxt = ";eta index of module"
str sbtxt = ";shifted eta index of module"
str ditxt = ";disk number"
list layers = ["ECA","ECC","BLayer","Layer1","Layer2","IBL2D","IBL3D"]
list baselayers = ["ECA","ECC","BLayer","Layer1","Layer2","IBL"]
list xbinsl = [ 3, 3, 13, 13, 13, 32]
list xminsl = [ -0.5, -0.5,-6.5,-6.5,-6.5,-16.5]
list ybinsl = [ 48, 48, 22, 38, 52, 14]
list etatxt = [ditxt,ditxt,btxt,btxt,btxt,sbtxt]
str phitext = ";phi index of module"
list xbinsfel = [ 24, 24, 104, 104, 104, 32]
list xminsfel = [ -0.5, -0.5, -52, -52, -52,-16.5]
list ybinsfel = [ 96, 96, 44, 76, 104, 14]
list totcuts = [ 15, 15, 15, 15, 15, 4, 4]
list xbinsem = [ 3, 3, 13, 13, 13, 20]
list xminsem = [ 0.5, 0.5,-6.5,-6.5,-6.5, -10]
list xbinstotz = [ 3, 3, 13, 13, 13, 20]
list xminstotz = [ -0.5, -0.5,-0.5,-0.5,-0.5, -0.5]
list ztotbinsy = [ 20, 20, 20, 20, 20, 20, 20]
list ztotminsy = [ 19.5, 19.5, 7.5,19.5,19.5, -0.5, -0.5]
list errbbinsy = [ 17, 17, 17, 17, 17, 27, 27]
list errbminsy = [ 0, 0, 0, 0, 0, 0, 0]
list errbbsizy = [ 1, 1, 1, 1, 1, 1, 1]
list errtbinsy = [ 7, 7, 7, 7, 7, 7, 7]
list pp0layers = ["ECA","ECC","BLayer","Layer1","Layer2","IBLA","IBLC"]
list pp0xbins = [ 24, 24, 22, 38, 52, 14, 14]
list fei3layers = ["ECA","ECC","BLayer","Layer1","Layer2"]
list fei4layers = ["IBL2D","IBL3D"]
str lumitext = ";lumi block"
int lumibinsx = 3000
int bcidbinsx = 3600
list LayersDisk = ["Disk 1", "Disk 2", "Disk 3"]
list ModulesBarrel
list ModulesIBL
list LabelX = [LayersDisk, LayersDisk, ModulesBarrel, ModulesBarrel, ModulesBarrel, ModulesIBL]
list LayersDiskFE
list ModulesBarrelFE
list LabelFEX = [LayersDiskFE, LayersDiskFE, ModulesBarrelFE, ModulesBarrelFE, ModulesBarrelFE, ModulesIBL]
list ModulesECA
list ModulesECC
list StavesL00
list StavesL0
list StavesL1
list StavesL2
list StavesIBL
list LabelY = [ModulesECA, ModulesECC, StavesL0, StavesL1, StavesL2, StavesIBL]
list ModulesFEECA = []
list ModulesFEECC = []
list StavesFEL0 = []
list StavesFEL1 = []
list StavesFEL2 = []
list LabelFEY = [ModulesFEECA, ModulesFEECC, StavesFEL0, StavesFEL1, StavesFEL2, StavesIBL]
list PP0sEC
list PP0LabelX = [PP0sEC, PP0sEC, StavesL0, StavesL1, StavesL2, StavesIBL, StavesIBL]
list ModulesHead = ["D", "D", "L0", "L1", "L2", "LI"]
list ErrStateLabelsFEI3
list ErrStateLabelsFEI4
list ErrCatRODModLabels
list ErrCatRODModLabelsNorm
list ErrCatLabels
list ErrCatLabelsNorm
list ReadingDataErrLabels
dict layergroups = {}

Protected Member Functions

SG::ReadHandle< InDet::SiDetectorElementStatusgetPixelDetElStatus (const SG::ReadHandleKey< InDet::SiDetectorElementStatus > &key, const EventContext &ctx) const
bool isActive (const InDet::SiDetectorElementStatus *element_status, const IdentifierHash &module_hash) const
bool isGood (const InDet::SiDetectorElementStatus *element_status, const IdentifierHash &module_hash) const
std::tuple< bool, bool > isChipGood (const IdentifierHash &module_hash, unsigned int chip_i) const
std::tuple< bool, bool > isChipGood (const InDet::SiDetectorElementStatus &element_active, const InDet::SiDetectorElementStatus &element_status, const IdentifierHash &module_hash, unsigned int chip_i) const
std::tuple< bool, bool > isChipGood (const InDet::SiDetectorElementStatus *element_active, const InDet::SiDetectorElementStatus *element_status, const IdentifierHash &module_hash, unsigned int chip_i) const
bool isChipActive (const IdentifierHash &module_hash, unsigned int chip_i) const
bool isChipActive (const InDet::SiDetectorElementStatus *element_active, const IdentifierHash &module_hash, unsigned int chip_i) const
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
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.

Protected Attributes

ToolHandle< IInDetConditionsToolm_pixelCondSummaryTool
ServiceHandle< InDetDD::IPixelReadoutManagerm_pixelReadout
const PixelIDm_pixelid {}
std::vector< int > m_modData [PixLayers::NBASELAYERS]
SG::ReadHandleKey< InDet::SiDetectorElementStatusm_pixelDetElStatus {this, "PixelDetElStatus", "", "Key of SiDetectorElementStatus for Pixel"}
 Optional read handle to get status data to test whether a pixel detector element is good.
SG::ReadHandleKey< InDet::SiDetectorElementStatusm_pixelDetElStatusActiveOnly {this, "PixelDetElStatusActiveOnly", "", "Key of SiDetectorElementStatus for Pixel which reflects only whether modules or chips are active rather than delivering good data"}
 Optional read handle to get status data to test whether a pixel detector element is active.
ToolHandleArray< GenericMonitoringToolm_tools {this,"GMTools",{}}
 Array of Generic Monitoring Tools.
PublicToolHandle< Trig::TrigDecisionToolm_trigDecTool
 Tool to tell whether a specific trigger is passed.
ToolHandleArray< IDQFilterToolm_DQFilterTools {this,"FilterTools",{}}
 Array of Data Quality filter tools.
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"}
AthMonitorAlgorithm::Environment_t m_environment
 Instance of the Environment_t enum.
AthMonitorAlgorithm::DataType_t m_dataType
 Instance of the DataType_t enum.
Gaudi::Property< std::string > m_environmentStr {this,"Environment","user"}
 Environment string pulled from the job option and converted to enum.
Gaudi::Property< std::string > m_dataTypeStr {this,"DataType","userDefined"}
 DataType string pulled from the job option and converted to enum.
Gaudi::Property< std::string > m_triggerChainString {this,"TriggerChain",""}
 Trigger chain string pulled from the job option and parsed into a vector.
std::vector< std::string > m_vTrigChainNames
 Vector of trigger chain names parsed from trigger chain string.
Gaudi::Property< std::string > m_fileKey {this,"FileKey",""}
 Internal Athena name for file.
Gaudi::Property< bool > m_useLumi {this,"EnableLumi",false}
 Allows use of various luminosity functions.
Gaudi::Property< float > m_defaultLBDuration {this,"DefaultLBDuration",60.}
 Default duration of one lumi block.
Gaudi::Property< int > m_detailLevel {this,"DetailLevel",0}
 Sets the level of detail used in the monitoring.
SG::ReadHandleKey< xAOD::EventInfom_EventInfoKey {this,"EventInfoKey","EventInfo"}
 Key for retrieving EventInfo from StoreGate.

Private Attributes

SG::ReadHandleKey< PixelRDO_Containerm_pixelRDOName
bool m_doOnline {}
bool m_doLumiBlock {}
bool m_doLowOccupancy {}
bool m_doHighOccupancy {}
bool m_doHeavyIonMon {}
bool m_doFEPlots {}

Detailed Description

Definition at line 15 of file PixelAthHitMonAlg.h.

Member Enumeration Documentation

◆ DataType_t

enum class AthMonitorAlgorithm::DataType_t
stronginherited

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 194 of file AthMonitorAlgorithm.h.

194 {
195 userDefined = 0,
196 monteCarlo,
197 collisions,
198 cosmics,
199 heavyIonCollisions,
200 };
AthConfigFlags cosmics(AthConfigFlags flags, str instanceName, str recoMode)

◆ Environment_t

enum class AthMonitorAlgorithm::Environment_t
stronginherited

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 175 of file AthMonitorAlgorithm.h.

175 {
176 user = 0,
177 online,
178 tier0,
179 tier0Raw,
180 tier0ESD,
181 AOD,
182 altprod,
183 };

Constructor & Destructor Documentation

◆ PixelAthHitMonAlg()

PixelAthHitMonAlg::PixelAthHitMonAlg ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 12 of file PixelAthHitMonAlg.cxx.

12 :
13 AthMonitorAlgorithm(name, pSvcLocator)
14{
15 //jo flags
16 declareProperty("doOnline", m_doOnline = false);
17 declareProperty("doLumiBlock", m_doLumiBlock = false);
18 declareProperty("doLowOccupancy", m_doLowOccupancy = false);
19 declareProperty("doHighOccupancy", m_doHighOccupancy = false);
20 declareProperty("doHeavyIonMon", m_doHeavyIonMon = false);
21 declareProperty("doFEPlots", m_doFEPlots = false);
22}
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.

◆ ~PixelAthHitMonAlg()

virtual PixelAthHitMonAlg::~PixelAthHitMonAlg ( )
virtualdefault

Member Function Documentation

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::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.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

64{
65 return 0;
66}

◆ 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 224 of file AthMonitorAlgorithm.h.

224{ return m_dataType; }
AthMonitorAlgorithm::DataType_t m_dataType
Instance of the DataType_t enum.

◆ dataTypeStringToEnum()

AthMonitorAlgorithm::DataType_t AthMonitorAlgorithm::dataTypeStringToEnum ( const std::string & str) const
inherited

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 144 of file AthMonitorAlgorithm.cxx.

144 {
145 // convert the string to all lowercase
146 std::string lowerCaseStr = str;
147 std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(), ::tolower);
148
149 // check if it matches one of the enum choices
150 if( lowerCaseStr == "userdefined" ) {
152 } else if( lowerCaseStr == "montecarlo" ) {
154 } else if( lowerCaseStr == "collisions" ) {
156 } else if( lowerCaseStr == "cosmics" ) {
157 return DataType_t::cosmics;
158 } else if( lowerCaseStr == "heavyioncollisions" ) {
160 } else { // otherwise, warn the user and return "userDefined"
161 ATH_MSG_WARNING("AthMonitorAlgorithm::dataTypeStringToEnum(): Unknown data type "
162 <<str<<", returning userDefined.");
164 }
165}
#define ATH_MSG_WARNING(x)
void tolower(std::string &s)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

◆ environment()

Environment_t AthMonitorAlgorithm::environment ( ) const
inlineinherited

Accessor functions for the environment.

Returns
the current value of the class's Environment_t instance.

Definition at line 208 of file AthMonitorAlgorithm.h.

208{ return m_environment; }
AthMonitorAlgorithm::Environment_t m_environment
Instance of the Environment_t enum.

◆ envStringToEnum()

AthMonitorAlgorithm::Environment_t AthMonitorAlgorithm::envStringToEnum ( const std::string & str) const
inherited

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 116 of file AthMonitorAlgorithm.cxx.

116 {
117 // convert the string to all lowercase
118 std::string lowerCaseStr = str;
119 std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(), ::tolower);
120
121 // check if it matches one of the enum choices
122 if( lowerCaseStr == "user" ) {
123 return Environment_t::user;
124 } else if( lowerCaseStr == "online" ) {
126 } else if( lowerCaseStr == "tier0" ) {
128 } else if( lowerCaseStr == "tier0raw" ) {
130 } else if( lowerCaseStr == "tier0esd" ) {
132 } else if( lowerCaseStr == "aod" ) {
133 return Environment_t::AOD;
134 } else if( lowerCaseStr == "altprod" ) {
136 } else { // otherwise, warn the user and return "user"
137 ATH_MSG_WARNING("AthMonitorAlgorithm::envStringToEnum(): Unknown environment "
138 <<str<<", returning user.");
139 return Environment_t::user;
140 }
141}

◆ evtStore()

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

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

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode AthMonitorAlgorithm::execute ( const EventContext & ctx) const
overridevirtualinherited

Applies filters and trigger requirements.

Then, calls fillHistograms().

Parameters
ctxevent context for reentrant Athena call
Returns
StatusCode

Definition at line 77 of file AthMonitorAlgorithm.cxx.

77 {
78
79 // Checks that all of the DQ filters are passed. If any one of the filters
80 // fails, return SUCCESS code and do not fill the histograms with the event.
81 for ( const auto& filterItr : m_DQFilterTools ) {
82 if (!filterItr->accept()) {
83 ATH_MSG_DEBUG("Event rejected due to filter tool.");
84 return StatusCode::SUCCESS;
85 }
86 }
87
88 // Trigger: If there is a decision tool and the chains fail, skip the event.
90 ATH_MSG_DEBUG("Event rejected due to trigger filter.");
91 return StatusCode::SUCCESS;
92 }
93
94 ATH_MSG_DEBUG("Event accepted!");
95 return fillHistograms(ctx);
96}
#define ATH_MSG_DEBUG(x)
virtual StatusCode fillHistograms(const EventContext &ctx) const =0
adds event to the monitoring histograms
bool trigChainsArePassed(const std::vector< std::string > &vTrigNames) const
Check whether triggers are passed.
std::vector< std::string > m_vTrigChainNames
Vector of trigger chain names parsed from trigger chain string.
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Array of Data Quality filter tools.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthCommonReentrantAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.

90{
91 // If we didn't find any symlinks to add, just return the collection
92 // from the base class. Otherwise, return the extended collection.
93 if (!m_extendedExtraObjects.empty()) {
95 }
97}
An algorithm that can be simultaneously executed in multiple threads.

◆ fill1DModProfAccum()

void PixelAthMonitoringBase::fill1DModProfAccum ( const VecAccumulator2DMap & accumulator,
int lumiblock ) const
inherited

take VecAccumulator2DMap and fill 3D arrays [layer, pm, em] with its values and lumiblock

Definition at line 135 of file PixelAthMonitoringBase.cxx.

135 {
136 auto lb = Monitored::Scalar<int>("pixmvamontool_lb", lumiblock);
137 const int em_offsets[PixLayers::NBASELAYERS] = { 0, 0, 6, 6, 6, 16};
138 // iterate over all actually filled layers
139 //
140 for (const auto& itr : accumulator.m_pm) {
141 int layer = itr.first;
142 auto pm_v = accumulator.m_pm.at(layer);
143 auto em_v = accumulator.m_em.at(layer);
144 auto val_v = accumulator.m_val.at(layer);
145 auto pi = pm_v.begin();
146 auto ei = em_v.begin();
147 auto vi = val_v.begin();
148 while (pi!=pm_v.end() and ei!=em_v.end() and vi!=val_v.end() )
149 {
150 auto pm = *pi++;
151 auto em = em_offsets[layer] + *ei++;
152 pm += em*PixMon::pixPhiSteps[layer];
153 auto val = Monitored::Scalar<float>(accumulator.m_prof2Dname + "_val", *vi++);
154 fill( m_tools[m_modData[layer].at(pm)], lb, val);
155 }
156 }
157}
#define pi
Declare a monitored scalar variable.
int lb
Definition globals.cxx:23
const int pixPhiSteps[PixLayers::NBASELAYERS]
void fill(H5::Group &out_file, size_t iterations)

◆ fill1DProfLumiLayers()

void PixelAthMonitoringBase::fill1DProfLumiLayers ( const std::string & prof1Dname,
int lb,
float * weights,
int nlayers = PixLayers::COUNT ) const
inherited

filling 1DProf per-lumi per-layer histograms ["ECA","ECC","BLayer","Layer1","Layer2","IBL","IBL2D","IBL3D"]

Definition at line 163 of file PixelAthMonitoringBase.cxx.

164 {
165 ATH_MSG_VERBOSE("in fill1DProfLumiLayers()");
166
167 // Define the monitored variables
168 auto lb = Monitored::Scalar<int>(prof1Dname + "_lb", lumiblock);
169 auto val = Monitored::Scalar<float>(prof1Dname + "_val", 1.0);
170
171 int i_start = 0;
172 int i_end = PixLayers::COUNT;
173 if (nlayers == PixLayers::NFEI3LAYERS) i_end = nlayers;
175 for (int i = i_start; i < i_end; i++) {
176 val = values[i];
177 fill(pixLayersLabel[i], lb, val);
178 }
179}
#define ATH_MSG_VERBOSE(x)
const std::string pixLayersLabel[PixLayers::COUNT]

◆ fill2DProfLayerAccum()

void PixelAthMonitoringBase::fill2DProfLayerAccum ( const VecAccumulator2DMap & accumulator) const
inherited

take VecAccumulator2DMap and fill the corresponding group

Definition at line 119 of file PixelAthMonitoringBase.cxx.

119 {
120 // iterate over all actually filled layers
121 for (const auto& itr : accumulator.m_pm) {
122 // Define the monitored variables
123 int layer = itr.first;
124 auto pm = Monitored::Collection(accumulator.m_prof2Dname + "_pm", accumulator.m_pm.at(layer));
125 auto val = Monitored::Collection(accumulator.m_prof2Dname + "_val", accumulator.m_val.at(layer));
126 auto em = Monitored::Collection(accumulator.m_prof2Dname + "_em", accumulator.m_em.at(layer));
127 fill(pixBaseLayersLabel[layer], pm, em, val);
128 }
129}
const std::string pixBaseLayersLabel[PixLayers::NBASELAYERS]
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.

◆ fill2DProfLumiLayers()

void PixelAthMonitoringBase::fill2DProfLumiLayers ( const std::string & prof2Dname,
int lb,
float(*) weights[PixLayers::COUNT],
const int * nCategories ) const
inherited

filling 2DProf per-lumi per-layer histograms ["ECA","ECC","BLayer","Layer1","Layer2","IBL2D","IBL3D"]

Definition at line 186 of file PixelAthMonitoringBase.cxx.

187 {
188 ATH_MSG_VERBOSE("in fill2DProfLumiLayers()");
189
190 // Define the monitored variables
191 auto lb = Monitored::Scalar<int>(prof2Dname + "_lb", lumiblock);
192 auto val = Monitored::Scalar<float>(prof2Dname + "_val", 1.0);
193 auto cat = Monitored::Scalar<int>(prof2Dname + "_cat");
194
195 for (int i = 0; i < PixLayers::COUNT; i++) {
196 for (cat = 0; cat < nCategories[i]; cat++) {
197 val = values[cat][i];
198 fill(pixLayersLabel[i], lb, cat, val);
199 }
200 }
201}

◆ fillFromArrays()

void PixelAthMonitoringBase::fillFromArrays ( const std::string & namePP0,
AccumulatorArrays & pixarrays,
const std::string & name2DMap = "" ) const
inherited

filling 1DProfile per-pp0(ROD) histograms for ["ECA","ECC","BLayer","Layer1","Layer2","IBLA","IBLC"]

Definition at line 209 of file PixelAthMonitoringBase.cxx.

210 {
211 ATH_MSG_VERBOSE("in fillFromArrays()");
212
213 const float weightPix = 1.0 / 46080.0;
214 const float weightIBL = 1.0 / 26880.0;
215
216 bool fillPP0only(name2DMap == "");
217 std::string pospp0varx = namePP0 + "_pospp0x";
218 std::string valvarp = namePP0 + "_val";
219 std::string posvarx = name2DMap + "_em";
220 std::string posvary = name2DMap + "_pm";
221 std::string valvarm = name2DMap + "_val";
222
223 for (unsigned int a = 0; a < PixMon::kNumModulesDisk; ++a) {
224 auto posy = Monitored::Scalar<int>(posvary, a);
225 for (unsigned int b = 0; b < PixMon::kNumLayersDisk; ++b) {
226 // to find out (and fill together into one PP0-histogram bin)
227 // array content of the modules belonging to the same sector (or PP0)
228 // the translation (a-1)/6 is used
229 // to show PP0 values from other disks of the same endcap
230 // in the same plot
231 // the shift (b-1)*8 applies per disk counter b
232 // (there are in total 8 sectors/disk)
233 auto pospp0x = Monitored::Scalar<int>(pospp0varx, a / 6 + b * 8);
234 auto posx = Monitored::Scalar<int>(posvarx, b);
235 auto valp = Monitored::Scalar<float>(valvarp, pixarrays.DA[a][b]);
236 auto valm = Monitored::Scalar<float>(valvarm, pixarrays.DA[a][b] * weightPix);
237 if (pixarrays.DA[a][b] > -1) {
238 fill("ECA", pospp0x, valp);
239 if (!fillPP0only) fill("ECA", posx, posy, valm);
240 }
241 valp = pixarrays.DC[a][b];
242 valm = pixarrays.DC[a][b] * weightPix;
243 if (pixarrays.DC[a][b] > -1) {
244 fill("ECC", pospp0x, valp);
245 if (!fillPP0only) fill("ECC", posx, posy, valm);
246 }
247 }
248 }
249
250 for (unsigned int b = 0; b < PixMon::kNumModulesBarrel; ++b) {
251 // translating array index into old Pixel module eta on a stave
252 // i.e. 0..12 into -6..6 so that standard per-layer histograms
253 // declared by define2DProfHist method can be filled
254 auto posx = Monitored::Scalar<int>(posvarx, b - 6);
255
256 for (unsigned int a = 0; a < PixMon::kNumStavesL0; ++a) {
257 auto posy = Monitored::Scalar<int>(posvary, a);
258 auto pospp0x = Monitored::Scalar<int>(pospp0varx, a);
259 auto valp = Monitored::Scalar<float>(valvarp, pixarrays.B0[a][b]);
260 auto valm = Monitored::Scalar<float>(valvarm, pixarrays.B0[a][b] * weightPix);
261 if (pixarrays.B0[a][b] > -1) {
262 fill("BLayer", pospp0x, valp);
263 if (!fillPP0only) fill("BLayer", posx, posy, valm);
264 }
265 }
266 for (unsigned int a = 0; a < PixMon::kNumStavesL1; ++a) {
267 auto posy = Monitored::Scalar<int>(posvary, a);
268 auto pospp0x = Monitored::Scalar<int>(pospp0varx, a);
269 auto valp = Monitored::Scalar<float>(valvarp, pixarrays.B1[a][b]);
270 auto valm = Monitored::Scalar<float>(valvarm, pixarrays.B1[a][b] * weightPix);
271 if (pixarrays.B1[a][b] > -1) {
272 fill("Layer1", pospp0x, valp);
273 if (!fillPP0only) fill("Layer1", posx, posy, valm);
274 }
275 }
276 for (unsigned int a = 0; a < PixMon::kNumStavesL2; ++a) {
277 auto posy = Monitored::Scalar<int>(posvary, a);
278 auto pospp0x = Monitored::Scalar<int>(pospp0varx, a);
279 auto valp = Monitored::Scalar<float>(valvarp, pixarrays.B2[a][b]);
280 auto valm = Monitored::Scalar<float>(valvarm, pixarrays.B2[a][b] * weightPix);
281 if (pixarrays.B2[a][b] > -1) {
282 fill("Layer2", pospp0x, valp);
283 if (!fillPP0only) fill("Layer2", posx, posy, valm);
284 }
285 }
286 }
287 unsigned int nbina = PixMon::kNumStavesIBL;
288 unsigned int nbinb = PixMon::kNumFEsIBL;
289 for (unsigned int a = 0; a < nbina; ++a) {
290 auto posy = Monitored::Scalar<int>(posvary, a);
291 auto pospp0x = Monitored::Scalar<int>(pospp0varx, a);
292 for (unsigned int b = 0; b < nbinb; ++b) {
293 // translating array index into IBL frontend eta on a stave
294 // i.e. 0..31 into -16..15 so that standard per-layer histograms
295 // declared by define2DProfHist method can be filled
296 auto posx = Monitored::Scalar<int>(posvarx, b - 16);
297 auto valp = Monitored::Scalar<float>(valvarp, pixarrays.IBL[a][b]);
298 auto valm = Monitored::Scalar<float>(valvarm, pixarrays.IBL[a][b] * weightIBL);
299 if (pixarrays.IBL[a][b] > -1) {
300 if (b > (0.5 * nbinb - 1)) {
301 fill("IBLA", pospp0x, valp);
302 } else {
303 fill("IBLC", pospp0x, valp);
304 }
305 if (!fillPP0only) fill("IBL", posx, posy, valm);
306 }
307 }
308 }
309}
static Double_t a
const unsigned int kNumStavesL0
const unsigned int kNumStavesL1
const unsigned int kNumFEsIBL
const unsigned int kNumStavesIBL
const unsigned int kNumModulesDisk
const unsigned int kNumStavesL2
const unsigned int kNumLayersDisk
const unsigned int kNumModulesBarrel

◆ fillHistograms()

StatusCode PixelAthHitMonAlg::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
ctxforwarded from execute
Returns
StatusCode

Implements AthMonitorAlgorithm.

Definition at line 31 of file PixelAthHitMonAlg.cxx.

31 {
32 using namespace Monitored;
33
34 int lb = GetEventInfo(ctx)->lumiBlock();
35 auto lbval = Monitored::Scalar<int>("pixhitsmontool_lb", lb);
36 auto hitGroup = getGroup("Hit");
37
38 unsigned int bcid = GetEventInfo(ctx)->bcid();
39 auto bcidval = Monitored::Scalar<unsigned int>("pixhitsmontool_bcid", bcid);
40 auto rdocontainer = SG::makeHandle(m_pixelRDOName, ctx);
41 if (!(rdocontainer.isValid())) {
42 ATH_MSG_ERROR("Pixel Monitoring: Pixel RDO container " << m_pixelRDOName << " could not be found.");
43 auto dataread_err = Monitored::Scalar<int>("hitdataread_err", DataReadErrors::ContainerInvalid);
44 fill(hitGroup, dataread_err);
45 return StatusCode::RECOVERABLE;
46 } else {
47 ATH_MSG_DEBUG("Pixel Monitoring: Pixel RDO container " << rdocontainer.name() << " is found.");
48 }
49
50 int nhits = 0;
51 float nhits_layer[PixLayers::COUNT] = {
52 0
53 };
54
55 int phiMod(-99);
56 int etaMod(-99);
57 bool copyFEval(false);
58
59 AccumulatorArrays hitsPerEventArray = {{{0}}, {{0}}, {{0}}, {{0}}, {{0}}, {{0}}};
60 SG::ReadHandle<InDet::SiDetectorElementStatus> pixel_status = getPixelDetElStatus(m_pixelDetElStatus, ctx);
61 SG::ReadHandle<InDet::SiDetectorElementStatus> pixel_active = getPixelDetElStatus(m_pixelDetElStatusActiveOnly, ctx);
62 // for inactive or bad modules init corresponding arrays entries to -1
63 for (auto idIt = m_pixelid->wafer_begin(); idIt != m_pixelid->wafer_end(); ++idIt) {
64 Identifier waferID = *idIt;
65 IdentifierHash id_hash = m_pixelid->wafer_hash(waferID);
66 int pixlayer = getPixLayersID(m_pixelid->barrel_ec(waferID), m_pixelid->layer_disk(waferID));
67 if (pixlayer == 99) continue;
68 if (isActive( !m_pixelDetElStatusActiveOnly.empty() ? pixel_active.cptr() : nullptr, id_hash) == false) {
69 getPhiEtaMod(waferID, phiMod, etaMod, copyFEval);
70 switch (pixlayer) {
71 case PixLayers::kECA:
72 hitsPerEventArray.DA[phiMod][etaMod] = -1;
73 break;
74
75 case PixLayers::kECC:
76 hitsPerEventArray.DC[phiMod][etaMod] = -1;
77 break;
78
80 hitsPerEventArray.B0[phiMod][etaMod] = -1;
81 break;
82
84 hitsPerEventArray.B1[phiMod][etaMod] = -1;
85 break;
86
88 hitsPerEventArray.B2[phiMod][etaMod] = -1;
89 break;
90
91 case PixLayers::kIBL:
92 hitsPerEventArray.IBL[phiMod][etaMod] = -1;
93 if (copyFEval) hitsPerEventArray.IBL[phiMod][++etaMod] = -1;
94 break;
95 }
96 }
97 }
98
99 int nGood_layer[PixLayers::COUNT] = {
100 0
101 };
102 int nActive_layer[PixLayers::COUNT] = {
103 0
104 };
105 float avgocc_active_layer[PixLayers::COUNT] = {
106 0
107 };
108 float avgocc_good_layer[PixLayers::COUNT] = {
109 0
110 };
111 float avgocc_ratio_toIBL_layer[PixLayers::COUNT] = {
112 0
113 };
114
115 PixelID::const_id_iterator idIt = m_pixelid->wafer_begin();
116 PixelID::const_id_iterator idItEnd = m_pixelid->wafer_end();
117 for (; idIt != idItEnd; ++idIt) {
118 Identifier waferID = *idIt;
119 IdentifierHash modHash = m_pixelid->wafer_hash(waferID);
120 int pixlayer = getPixLayersID(m_pixelid->barrel_ec(waferID), m_pixelid->layer_disk(waferID));
121 if (pixlayer == 99) continue;
122
123 if (pixlayer == PixLayers::kIBL)
124 {
125 // normalization per FE for IBL
126 //
127 int nFE = getNumberOfFEs(pixlayer, m_pixelid->eta_module(waferID));
128 int iblsublayer = (m_pixelid->eta_module(waferID) > -7 && m_pixelid->eta_module(waferID) < 6) ? PixLayers::kIBL2D : PixLayers::kIBL3D;
129 for (int iFE=0; iFE<nFE; iFE++) {
130 Identifier pixID = m_pixelReadout->getPixelIdfromHash(modHash, iFE, 1, 1);
131 if (not pixID.is_valid()) continue;
132 auto [is_active,is_good] = isChipGood( !m_pixelDetElStatusActiveOnly.empty() ? pixel_active.cptr() : nullptr,
133 !m_pixelDetElStatus.empty() ? pixel_status.cptr() : nullptr,
134 modHash, iFE);
135 if (not is_active) continue;
136 nActive_layer[iblsublayer]++;
137 if (is_good) nGood_layer[iblsublayer]++;
138 }
139 }
140 else
141 {
142 // normalization per module for the old pixel layers
143 //
144 bool is_active = isActive( !m_pixelDetElStatusActiveOnly.empty() ? pixel_active.cptr() : nullptr, modHash);
145 bool is_good = isGood( !m_pixelDetElStatus.empty() ? pixel_status.cptr() : nullptr, modHash);
146 if (is_active) {
147 nActive_layer[pixlayer]++;
148 if (is_good) nGood_layer[pixlayer]++;
149 }
150 }
151 }
152
153 const int nChannels_mod[PixLayers::COUNT] = {
154 46080, 46080, 46080, 46080, 46080, 26880, 26880
155 };
156 float nGoodChannels_layer[PixLayers::COUNT];
157 float nActiveChannels_layer[PixLayers::COUNT];
158 for (int i = 0; i < PixLayers::COUNT; i++) {
159 nGoodChannels_layer[i] = 1.0 * nChannels_mod[i] * nGood_layer[i];
160 nActiveChannels_layer[i] = 1.0 * nChannels_mod[i] * nActive_layer[i];
161 }
162
163 //*******************************************************************************
164 //************************** Begin of filling Hit Histograms ********************
165 //*******************************************************************************
166
167 ATH_MSG_DEBUG("Filling Raw Hit (RDO) Monitoring Histograms");
168
169
170 VecAccumulator2DMap HitMap(*this, "HitMap");
171 VecAccumulator2DMap HitFEMap(*this, "HitFEMap");
172 std::vector<int> hitLvl1a;
173 std::unordered_map<int, std::vector<int> > hitLvl1aLayer;
174 std::unordered_map<int, std::vector<int> > hitToTLayer;
175
176 Identifier rdoID;
177
178 for (auto colNext: *rdocontainer) {
179 const InDetRawDataCollection<PixelRDORawData>* HitCollection(colNext);
180 if (!HitCollection) {
181 ATH_MSG_DEBUG("Pixel Monitoring: Pixel Hit container is empty.");
182 auto dataread_err = Monitored::Scalar<int>("hitdataread_err", DataReadErrors::CollectionInvalid);
183 fill(hitGroup, dataread_err);
184 continue;
185 }
186
187 for (auto p_rdo: *HitCollection) {
188 rdoID = p_rdo->identify();
189 int pixlayer = getPixLayersID(m_pixelid->barrel_ec(rdoID), m_pixelid->layer_disk(rdoID));
190 if (pixlayer == 99) continue;
191
192 HitMap.add(pixlayer, rdoID, 1.0);
193 if (m_doFEPlots) HitFEMap.add(pixlayer, rdoID, m_pixelReadout->getFE(rdoID, rdoID), 1.0);
194
195 nhits++;
196 hitLvl1a.push_back(p_rdo->getLVL1A());
197 getPhiEtaMod(rdoID, phiMod, etaMod, copyFEval);
198 switch (pixlayer) {
199 case PixLayers::kECA:
200 hitsPerEventArray.DA[phiMod][etaMod]++;
201 break;
202
203 case PixLayers::kECC:
204 hitsPerEventArray.DC[phiMod][etaMod]++;
205 break;
206
208 hitsPerEventArray.B0[phiMod][etaMod]++;
209 break;
210
212 hitsPerEventArray.B1[phiMod][etaMod]++;
213 break;
214
216 hitsPerEventArray.B2[phiMod][etaMod]++;
217 break;
218
219 case PixLayers::kIBL:
220 hitsPerEventArray.IBL[phiMod][etaMod]++;
221 break;
222 }
223 if (pixlayer == PixLayers::kIBL)
224 {
225 pixlayer = (m_pixelid->eta_module(rdoID) > -7 && m_pixelid->eta_module(rdoID) < 6) ? PixLayers::kIBL2D : PixLayers::kIBL3D;
226 }
227 nhits_layer[pixlayer]++;
228 hitLvl1aLayer[pixlayer].push_back(p_rdo->getLVL1A());
229 hitToTLayer[pixlayer].push_back(p_rdo->getToT());
230 }
231 }
232
233 fill2DProfLayerAccum(HitMap);
234 if (m_doFEPlots) fill2DProfLayerAccum(HitFEMap);
235
236 auto vals = Monitored::Collection("Hit_LVL1A_pixel", hitLvl1a);
237 fill(hitGroup, vals);
238 for (const auto& itr : hitLvl1aLayer) {
239 int layer = itr.first;
240 try {
241 //cppcheck-suppress containerOutOfBounds
242 auto vals = Monitored::Collection("Hit_LVL1A_layer", hitLvl1aLayer.at(layer));
243 fill(pixLayersLabel[layer], vals);
244 } catch (std::out_of_range& e) {
245 ATH_MSG_ERROR("Out of range access in PixelAthHitMonAlg::fillHistograms");
246 }
247 }
248 for (const auto& itr : hitToTLayer) {
249 int layer = itr.first;
250 try {
251 //cppcheck-suppress containerOutOfBounds
252 auto vals = Monitored::Collection("HitToT_val", hitToTLayer.at(layer));
253 fill(pixLayersLabel[layer], vals);
254 } catch (std::out_of_range& e) {
255 ATH_MSG_ERROR("Out of range access in PixelAthHitMonAlg::fillHistograms");
256 }
257 }
258
259
260 auto nhitsval = Monitored::Scalar<int>("nhits_per_event", nhits);
261 fill(hitGroup, lbval, nhitsval);
262 fill1DProfLumiLayers("HitsPerLumi", lb, nhits_layer);
263
264 fillFromArrays("HitOccupancyPP0", hitsPerEventArray, "OccupancyPerPixelEvent");
265
266 for (int i = 0; i < PixLayers::COUNT; i++) {
267 if (nGoodChannels_layer[i] > 0) avgocc_good_layer[i] = nhits_layer[i] / nGoodChannels_layer[i];
268 auto val = Monitored::Scalar<float>("AvgOccPerBCID_val", avgocc_good_layer[i]);
269 fill(pixLayersLabel[i], bcidval, val);
270 if (nActiveChannels_layer[i] > 0) avgocc_active_layer[i] = nhits_layer[i] / nActiveChannels_layer[i];
271 }
272 fill1DProfLumiLayers("AvgOccActivePerLumi", lb, avgocc_active_layer);
273 fill1DProfLumiLayers("AvgOccGoodPerLumi", lb, avgocc_good_layer);
274
275
276 float nGoodChannels_ibl = nGoodChannels_layer[PixLayers::kIBL2D] + nGoodChannels_layer[PixLayers::kIBL3D];
277 float avgocc_good_ibl(0);
278 if (nGoodChannels_ibl>0) avgocc_good_ibl = (nhits_layer[PixLayers::kIBL2D] + nhits_layer[PixLayers::kIBL3D])/nGoodChannels_ibl;
279 if (avgocc_good_ibl > 0) {
280 for (int i = 0; i < PixLayers::COUNT; i++) {
281 avgocc_ratio_toIBL_layer[i] = avgocc_good_layer[i] / avgocc_good_ibl;
282 }
283 fill1DProfLumiLayers("AvgOccRatioToIBLPerLumi", lb, avgocc_ratio_toIBL_layer);
284 }
285
286 if (nhits == 0) {
287 auto dataread_err = Monitored::Scalar<int>("hitdataread_err", DataReadErrors::EmptyContainer);
288 fill(hitGroup, dataread_err);
289 }
290 //*******************************************************************************
291 //************************** End of filling Hit Histograms **********************
292 //*******************************************************************************
293
294 return StatusCode::SUCCESS;
295}
#define ATH_MSG_ERROR(x)
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
bool is_valid() const
Check if id is in a valid state.
SG::ReadHandleKey< PixelRDO_Container > m_pixelRDOName
void fill2DProfLayerAccum(const VecAccumulator2DMap &accumulator) const
take VecAccumulator2DMap and fill the corresponding group
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_pixelDetElStatusActiveOnly
Optional read handle to get status data to test whether a pixel detector element is active.
int getNumberOfFEs(int pixlayer, int etaMod) const
helper function to get number of FEs per module
void getPhiEtaMod(Identifier &id, int &phiMod, int &etaMod, bool &copyFE) const
helper function to get eta phi coordinates of per-layer arrays
ServiceHandle< InDetDD::IPixelReadoutManager > m_pixelReadout
bool isGood(const InDet::SiDetectorElementStatus *element_status, const IdentifierHash &module_hash) const
void fill1DProfLumiLayers(const std::string &prof1Dname, int lb, float *weights, int nlayers=PixLayers::COUNT) const
filling 1DProf per-lumi per-layer histograms ["ECA","ECC","BLayer","Layer1","Layer2",...
int getPixLayersID(int ec, int ld) const
helper function to get layers ID
std::tuple< bool, bool > isChipGood(const IdentifierHash &module_hash, unsigned int chip_i) const
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_pixelDetElStatus
Optional read handle to get status data to test whether a pixel detector element is good.
bool isActive(const InDet::SiDetectorElementStatus *element_status, const IdentifierHash &module_hash) const
void fillFromArrays(const std::string &namePP0, AccumulatorArrays &pixarrays, const std::string &name2DMap="") const
filling 1DProfile per-pp0(ROD) histograms for ["ECA","ECC","BLayer","Layer1","Layer2",...
SG::ReadHandle< InDet::SiDetectorElementStatus > getPixelDetElStatus(const SG::ReadHandleKey< InDet::SiDetectorElementStatus > &key, const EventContext &ctx) const
std::vector< Identifier >::const_iterator const_id_iterator
Definition PixelID.h:72
const_pointer_type cptr()
Dereference the pointer.
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.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
@ layer
Definition HitInfo.h:79
setEventNumber setTimeStamp bcid

◆ filterPassed()

virtual bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96 {
97 return execState( ctx ).filterPassed();
98 }
virtual bool filterPassed(const EventContext &ctx) const

◆ findComponentString()

std::string PixelAthHitMonAlg::findComponentString ( int bec,
int ld ) const

◆ GetEventInfo()

SG::ReadHandle< xAOD::EventInfo > AthMonitorAlgorithm::GetEventInfo ( const EventContext & ctx) const
inherited

Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)

Parameters
ctxEventContext for the event
Returns
a SG::ReadHandle<xAOD::EventInfo>

Definition at line 111 of file AthMonitorAlgorithm.cxx.

111 {
112 return SG::ReadHandle<xAOD::EventInfo>(m_EventInfoKey, ctx);
113}
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.

◆ getGroup()

const ToolHandle< GenericMonitoringTool > & AthMonitorAlgorithm::getGroup ( const std::string & name) const
inherited

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
namestring name of the desired tool
Returns
reference to the desired monitoring tool

Definition at line 168 of file AthMonitorAlgorithm.cxx.

168 {
169 // get the pointer to the tool, and check that it exists
170 auto idx = m_toolLookupMap.find(name);
171 if (ATH_LIKELY(idx != m_toolLookupMap.end())) {
172 return m_tools[idx->second];
173 }
174 else {
175 // treat empty tool handle case as in Monitored::Group
176 if (m_toolLookupMap.empty()) {
177 return m_dummy;
178 }
179
180 if (!isInitialized()) {
182 "It seems that the AthMonitorAlgorithm::initialize was not called "
183 "in derived class initialize method");
184 } else {
185 std::string available = std::accumulate(
186 m_toolLookupMap.begin(), m_toolLookupMap.end(), std::string(""),
187 [](const std::string& s, auto h) { return s + "," + h.first; });
188 ATH_MSG_FATAL("The tool " << name << " could not be found in the tool array of the "
189 << "monitoring algorithm " << m_name << ". This probably reflects a discrepancy between "
190 << "your python configuration and c++ filling code. Note: your available groups are {"
191 << available << "}.");
192 }
193 }
194 return m_dummy;
195}
#define ATH_MSG_FATAL(x)
#define ATH_LIKELY(x)
std::unordered_map< std::string, size_t > m_toolLookupMap
const ToolHandle< GenericMonitoringTool > m_dummy
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.

◆ getNumberOfFEs()

int PixelAthMonitoringBase::getNumberOfFEs ( int pixlayer,
int etaMod ) const
inherited

helper function to get number of FEs per module

Definition at line 372 of file PixelAthMonitoringBase.cxx.

372 {
373 int nFE(16);
374
375 if (pixlayer == PixLayers::kIBL) {
376 nFE = 1; // IBL 3D
377 if (etaMod > -7 && etaMod < 6) nFE = 2; // IBL Planar
378 }
379 return nFE;
380}

◆ getPhiEtaMod()

void PixelAthMonitoringBase::getPhiEtaMod ( Identifier & id,
int & phiMod,
int & etaMod,
bool & copyFE ) const
inherited

helper function to get eta phi coordinates of per-layer arrays

Definition at line 388 of file PixelAthMonitoringBase.cxx.

389 {
390 phiMod = m_pixelid->phi_module(id);
391
392 int layerDisk = m_pixelid->layer_disk(id);
393 etaMod = layerDisk;
394 copyFE = false;
395 if (m_pixelid->barrel_ec(id) == 0) {
396 etaMod = m_pixelid->eta_module(id);
397 if (layerDisk == 0) {
398 if (etaMod < -6) {
399 etaMod = etaMod - 6;
400 } else if (etaMod > -7 && etaMod < 6) {
401 int feid = 0;
402 if (m_pixelid->eta_index(id) >= 80) feid = 1;
403 etaMod = 2 * etaMod + feid;
404 copyFE = true;
405 } else {
406 etaMod = etaMod + 6;
407 }
408 etaMod = etaMod + 16;
409 } else etaMod = etaMod + 6;
410 }
411}
int eta_index(const Identifier &id) const
Definition PixelID.h:645
int layer_disk(const Identifier &id) const
Definition PixelID.h:607
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition PixelID.h:600
int eta_module(const Identifier &id) const
Definition PixelID.h:632
int phi_module(const Identifier &id) const
Definition PixelID.h:625

◆ getPixelDetElStatus()

SG::ReadHandle< InDet::SiDetectorElementStatus > PixelAthMonitoringBase::getPixelDetElStatus ( const SG::ReadHandleKey< InDet::SiDetectorElementStatus > & key,
const EventContext & ctx ) const
inlineprotectedinherited

Definition at line 158 of file PixelAthMonitoringBase.h.

158 {
160 if (!key.empty()) {
161 pixelDetElStatus = SG::ReadHandle<InDet::SiDetectorElementStatus>(key, ctx);
162 if (!pixelDetElStatus.isValid()) {
163 std::stringstream msg;
164 msg << "Failed to get " << key.key() << " from StoreGate in " << name();
165 throw std::runtime_error(msg.str());
166 }
167 }
168 return pixelDetElStatus;
169 }
virtual bool isValid() override final
Can the handle be successfully dereferenced?
MsgStream & msg
Definition testRead.cxx:32

◆ getPixLayersID()

int PixelAthMonitoringBase::getPixLayersID ( int ec,
int ld ) const
inherited

helper function to get layers ID

Definition at line 317 of file PixelAthMonitoringBase.cxx.

317 {
318 int layer = 99;
319
320 if (ec == 2) {
321 layer = PixLayers::kECA;
322 } else if (ec == -2) {
323 layer = PixLayers::kECC;
324 } else if (ec == 0) {
325 if (ld == 0) layer = PixLayers::kIBL;
326 if (ld == 1) layer = PixLayers::kBLayer;
327 if (ld == 2) layer = PixLayers::kLayer1;
328 if (ld == 3) layer = PixLayers::kLayer2;
329 }
330 return layer;
331}

◆ getTrigDecisionTool()

const ToolHandle< Trig::TrigDecisionTool > & AthMonitorAlgorithm::getTrigDecisionTool ( ) const
inherited

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 198 of file AthMonitorAlgorithm.cxx.

198 {
199 return m_trigDecTool;
200}

◆ initialize()

StatusCode PixelAthHitMonAlg::initialize ( )
overridevirtual

initialize

Returns
StatusCode

Reimplemented from PixelAthMonitoringBase.

Definition at line 24 of file PixelAthHitMonAlg.cxx.

24 {
25 ATH_CHECK( PixelAthMonitoringBase::initialize());
26 ATH_CHECK(m_pixelRDOName.initialize());
27
28 return StatusCode::SUCCESS;
29}
#define ATH_CHECK
Evaluate an expression and check for errors.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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.

◆ isActive()

bool PixelAthMonitoringBase::isActive ( const InDet::SiDetectorElementStatus * element_status,
const IdentifierHash & module_hash ) const
inlineprotectedinherited

Definition at line 170 of file PixelAthMonitoringBase.h.

171 {
172 const EventContext& ctx{Gaudi::Hive::currentContext()};
173 bool ret { element_status ? element_status->isGood(module_hash) : m_pixelCondSummaryTool->isActive(module_hash, ctx) };
174 VALIDATE_STATUS_ARRAY(element_status, element_status->isGood(module_hash), m_pixelCondSummaryTool->isActive(module_hash, ctx) );
175 return ret;
176 }
#define VALIDATE_STATUS_ARRAY(use_info, info_val, summary_val)
bool isGood(IdentifierHash hash) const
ToolHandle< IInDetConditionsTool > m_pixelCondSummaryTool

◆ isChipActive() [1/2]

bool PixelAthMonitoringBase::isChipActive ( const IdentifierHash & module_hash,
unsigned int chip_i ) const
inlineprotectedinherited

Definition at line 198 of file PixelAthMonitoringBase.h.

199 {
200 bool is_active=false;
201 Identifier pixelID = m_pixelReadout->getPixelIdfromHash(module_hash, chip_i, 1, 1);
202 if (pixelID.is_valid()) {
203 const EventContext& ctx{Gaudi::Hive::currentContext()};
204 is_active = m_pixelCondSummaryTool->isActive(module_hash,pixelID, ctx);
205 }
206 return is_active;
207 }

◆ isChipActive() [2/2]

bool PixelAthMonitoringBase::isChipActive ( const InDet::SiDetectorElementStatus * element_active,
const IdentifierHash & module_hash,
unsigned int chip_i ) const
inlineprotectedinherited

Definition at line 229 of file PixelAthMonitoringBase.h.

231 {
232 bool ret( element_active
233 ? element_active->isChipGood(module_hash, chip_i)
234 : isChipActive( module_hash, chip_i) );
235#ifdef DO_VALIDATE_STATUS_ARRAY
236 const EventContext& ctx{Gaudi::Hive::currentContext()};
237 Identifier pixelID = m_pixelReadout->getPixelIdfromHash(module_hash, chip_i, 1, 1);
238 VALIDATE_STATUS_ARRAY(element_active, element_active->isChipGood(module_hash, chip_i), m_pixelCondSummaryTool->isActive(module_hash,pixelID, ctx) );
239#endif
240 return ret;
241 }
bool isChipGood(IdentifierHash hash, unsigned int chip) const

◆ isChipGood() [1/3]

std::tuple< bool, bool > PixelAthMonitoringBase::isChipGood ( const IdentifierHash & module_hash,
unsigned int chip_i ) const
inlineprotectedinherited

Definition at line 184 of file PixelAthMonitoringBase.h.

185 {
186 bool is_active=false;
187 bool is_good=false;
188 Identifier pixelID = m_pixelReadout->getPixelIdfromHash(module_hash, chip_i, 1, 1);
189 if (pixelID.is_valid()) {
190 const EventContext& ctx{Gaudi::Hive::currentContext()};
191 is_active = m_pixelCondSummaryTool->isActive(module_hash,pixelID, ctx);
192 if (is_active) {
193 is_good = m_pixelCondSummaryTool->isGood(module_hash, pixelID, ctx);
194 }
195 }
196 return std::make_tuple(is_active,is_good);
197 }

◆ isChipGood() [2/3]

std::tuple< bool, bool > PixelAthMonitoringBase::isChipGood ( const InDet::SiDetectorElementStatus & element_active,
const InDet::SiDetectorElementStatus & element_status,
const IdentifierHash & module_hash,
unsigned int chip_i ) const
inlineprotectedinherited

Definition at line 208 of file PixelAthMonitoringBase.h.

211 {
212 return std::make_tuple(element_active.isChipGood(module_hash, chip_i), element_status.isChipGood(module_hash, chip_i) );
213 }

◆ isChipGood() [3/3]

std::tuple< bool, bool > PixelAthMonitoringBase::isChipGood ( const InDet::SiDetectorElementStatus * element_active,
const InDet::SiDetectorElementStatus * element_status,
const IdentifierHash & module_hash,
unsigned int chip_i ) const
inlineprotectedinherited

Definition at line 214 of file PixelAthMonitoringBase.h.

217 {
218 std::tuple<bool,bool> ret( element_active && element_status
219 ? isChipGood( *element_active, *element_status, module_hash, chip_i)
220 : isChipGood( module_hash, chip_i) );
221#ifdef DO_VALIDATE_STATUS_ARRAY
222 Identifier pixelID = m_pixelReadout->getPixelIdfromHash(module_hash, chip_i, 1, 1);
223 const EventContext& ctx{Gaudi::Hive::currentContext()};
224 VALIDATE_STATUS_ARRAY(element_active, element_active->isChipGood(module_hash, chip_i), m_pixelCondSummaryTool->isActive(module_hash,pixelID, ctx) );
225 VALIDATE_STATUS_ARRAY(element_status, element_status->isChipGood(module_hash, chip_i), m_pixelCondSummaryTool->isGood(module_hash,pixelID, ctx) );
226#endif
227 return ret;
228 }

◆ isClonable()

◆ isClusterOnTrack() [1/2]

bool PixelAthMonitoringBase::isClusterOnTrack ( Identifier id,
std::vector< std::pair< Identifier, double > > const & ClusterIDs ) const
inherited

checks if cluster is on track

Definition at line 431 of file PixelAthMonitoringBase.cxx.

432 {
433 bool onTrack = false;
434
435 std::pair<Identifier, double> searchVal = std::make_pair(id, -1.0);
436 onTrack = std::binary_search(ClusterIDs.begin(), ClusterIDs.end(), searchVal,
437 [](std::pair<Identifier, double> l, std::pair<Identifier, double> r) -> bool {
438 return l.first < r.first;
439 });
440 return onTrack;
441}
int r
Definition globals.cxx:22

◆ isClusterOnTrack() [2/2]

bool PixelAthMonitoringBase::isClusterOnTrack ( Identifier id,
std::vector< std::pair< Identifier, double > > const & ClusterIDs,
double & cosalpha ) const
inherited

checks if cluster is on track and returns its cosalpha

Definition at line 448 of file PixelAthMonitoringBase.cxx.

450 {
451 bool onTrack(false);
452
453 std::pair<Identifier, double> searchVal = std::make_pair(id, -1.0);
454 auto it = std::lower_bound(ClusterIDs.begin(), ClusterIDs.end(), searchVal,
455 [](std::pair<Identifier, double> l, std::pair<Identifier, double> r) -> bool {
456 return l.first < r.first;
457 });
458
459 if (it != ClusterIDs.end() && !(id < (*it).first)) {
460 onTrack = true;
461 cosalpha = (*it).second;
462 }
463 return onTrack;
464}

◆ isGood()

bool PixelAthMonitoringBase::isGood ( const InDet::SiDetectorElementStatus * element_status,
const IdentifierHash & module_hash ) const
inlineprotectedinherited

Definition at line 177 of file PixelAthMonitoringBase.h.

178 {
179 const EventContext& ctx{Gaudi::Hive::currentContext()};
180 bool ret ( element_status ? element_status->isGood(module_hash) : m_pixelCondSummaryTool->isGood(module_hash, ctx));
181 VALIDATE_STATUS_ARRAY(element_status, element_status->isGood(module_hash), m_pixelCondSummaryTool->isGood(module_hash, ctx) );
182 return ret;
183 }

◆ isHitOnTrack()

bool PixelAthMonitoringBase::isHitOnTrack ( Identifier id,
std::vector< Identifier > const & RDOIDs ) const
inherited

checks if hit is on track

Definition at line 418 of file PixelAthMonitoringBase.cxx.

418 {
419 return binary_search(RDOIDs.begin(), RDOIDs.end(), id);
420
421 ;
422}

◆ isIBL2D()

bool PixelAthMonitoringBase::isIBL2D ( int hashID) const
inherited

helper function to check if module is IBL planar based on pixel hash ID

Definition at line 336 of file PixelAthMonitoringBase.cxx.

336 {
337 bool result(false);
338 if ( hashID>=156 && hashID<=435 ) // IBL
339 {
340 int module = (hashID-156) % 20;
341 if (module>3 && module<16)
342 {
343 result = true;
344 }
345 }
346 return result;
347}

◆ isIBL3D()

bool PixelAthMonitoringBase::isIBL3D ( int hashID) const
inherited

helper function to check if module is IBL 3D based on pixel hash ID

Definition at line 354 of file PixelAthMonitoringBase.cxx.

354 {
355 bool result(false);
356 if ( hashID>=156 && hashID<=435 ) // IBL
357 {
358 int module = (hashID-156) % 20;
359 if (module<4 || module>15)
360 {
361 result = true;
362 }
363 }
364 return result;
365}

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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 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
lineThe input string.
resultThe parsed output vector of strings.
Returns
StatusCode

Definition at line 345 of file AthMonitorAlgorithm.cxx.

345 {
346 std::string item;
347 std::stringstream ss(line);
348
349 ATH_MSG_DEBUG( "AthMonitorAlgorithm::parseList()" );
350
351 while ( std::getline(ss, item, ',') ) {
352 std::stringstream iss(item); // remove whitespace
353 iss >> item;
354 result.push_back(item);
355 }
356
357 return StatusCode::SUCCESS;
358}
static Double_t ss

◆ 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< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
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)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setFilterPassed()

virtual void AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100 {
102 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::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 85 of file AthCommonReentrantAlgorithm.cxx.

77{
78 return BaseAlg::sysExecute (ctx);
79}

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::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 HypoBase, and InputMakerBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

107 {
109
110 if (sc.isFailure()) {
111 return sc;
112 }
113
114 ServiceHandle<ICondSvc> cs("CondSvc",name());
115 for (auto h : outputHandles()) {
116 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
117 // do this inside the loop so we don't create the CondSvc until needed
118 if ( cs.retrieve().isFailure() ) {
119 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
120 return StatusCode::SUCCESS;
121 }
122 if (cs->regHandle(this,*h).isFailure()) {
124 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125 << " with CondSvc");
126 }
127 }
128 }
129 return sc;
130}
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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.

◆ 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
vTrigNamesList 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 203 of file AthMonitorAlgorithm.cxx.

203 {
204
205
206 // If no triggers were given, return true.
207 if (vTrigNames.empty()) return true;
208
209
210 // Trigger: Check if this Algorithm is being run as an Express Stream job.
211 // Events are entering the express stream are chosen randomly, and by chain,
212 // Hence an additional check should be aplied to see if the chain(s)
213 // monitored here are responsible for the event being selected for
214 // the express stream.
215
216 const auto group = m_trigDecTool->getChainGroup(vTrigNames);
218 const auto passedBits = m_trigDecTool->isPassedBits(group);
219 bool expressPass = passedBits & TrigDefs::Express_passed; //bitwise AND
220 if(!expressPass) {
221 return false;
222 }
223 }
224
225 // monitor the event if any of the chains in the chain group passes the event.
226 return group->isPassed();
227
228}
Gaudi::Property< bool > m_enforceExpressTriggers

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

Member Data Documentation

◆ baselayers

list PixelAthMonitoringBase.baselayers = ["ECA","ECC","BLayer","Layer1","Layer2","IBL"]
inherited

Definition at line 25 of file PixelAthMonitoringBase.py.

◆ bcidbinsx

int PixelAthMonitoringBase.bcidbinsx = 3600
inherited

Definition at line 56 of file PixelAthMonitoringBase.py.

◆ btxt

str PixelAthMonitoringBase.btxt = ";eta index of module"
inherited

Definition at line 21 of file PixelAthMonitoringBase.py.

◆ ditxt

str PixelAthMonitoringBase.ditxt = ";disk number"
inherited

Definition at line 23 of file PixelAthMonitoringBase.py.

◆ errbbinsy

list PixelAthMonitoringBase.errbbinsy = [ 17, 17, 17, 17, 17, 27, 27]
inherited

Definition at line 42 of file PixelAthMonitoringBase.py.

◆ errbbsizy

list PixelAthMonitoringBase.errbbsizy = [ 1, 1, 1, 1, 1, 1, 1]
inherited

Definition at line 44 of file PixelAthMonitoringBase.py.

◆ errbminsy

list PixelAthMonitoringBase.errbminsy = [ 0, 0, 0, 0, 0, 0, 0]
inherited

Definition at line 43 of file PixelAthMonitoringBase.py.

◆ ErrCatLabels

list PixelAthMonitoringBase.ErrCatLabels
inherited
Initial value:
= [
("SyncErrors", "Sync Errors (FE/MCC & ROD)"),
("TruncErrors", "Trunc Errors (FE/MCC & ROD)"),
("OpticalErrors", "Preamble/Header Errors"),
("SEUErrors", "SEU Errors"),
("TimeoutErrors", "Timeout Errors")
]

Definition at line 250 of file PixelAthMonitoringBase.py.

◆ ErrCatLabelsNorm

list PixelAthMonitoringBase.ErrCatLabelsNorm
inherited
Initial value:
= [
"SyncErrorsFracPerEvent",
"TruncationErrorsFracPerEvent",
"OpticalErrorsFracPerEvent",
"SEUErrorsFracPerEvent",
"TimeoutErrorsFracPerEvent"
]

Definition at line 258 of file PixelAthMonitoringBase.py.

◆ ErrCatRODModLabels

list PixelAthMonitoringBase.ErrCatRODModLabels
inherited
Initial value:
= [
("SyncErrorsMod", "FE/MCC Sync Errors"),
("SyncErrorsROD", "ROD Sync Errors"),
("TruncErrorsMod", "FE/MCC Trunc Errors"),
("TruncErrorsROD", "ROD Trunc Errors"),
("OpticalErrorsRODMod", "Preamble/Header Errors"),
("SEUErrorsRODMod", "SEU Errors"),
("TimeoutErrorsRODMod", "Timeout Errors")
]

Definition at line 233 of file PixelAthMonitoringBase.py.

◆ ErrCatRODModLabelsNorm

list PixelAthMonitoringBase.ErrCatRODModLabelsNorm
inherited
Initial value:
= [
"SyncErrorsModFracPerEvent",
"SyncErrorsRODFracPerEvent",
"TruncErrorsModFracPerEvent",
"TruncErrorsRODFracPerEvent"
]

Definition at line 243 of file PixelAthMonitoringBase.py.

◆ ErrStateLabelsFEI3

list PixelAthMonitoringBase.ErrStateLabelsFEI3
inherited
Initial value:
= [
("RODTimeout", "ROD Formatter Timeout"),
("RODSyncBCIDErrors", "ROD BCID Sync"),
("RODSyncLVL1IDErrors", "ROD LVL1ID Sync"),
("OpticalErrors", "Preamble/Header"),
("ModSyncLVL1IDErrors", "FE/MCC LVL1ID Sync"),
("ModSyncBCID2Errors", "FE/MCC BCID2 Sync"),
("ModSyncBCID1Errors", "FE/MCC BCID1 Sync"),
("ModTruncEoEOverflowErrors", "FE/MCC EoE Overflow Trunc"),
("ModTruncHitOverflowErrors", "FE/MCC Hit Overflow Trunc"),
("FEWarning", "FE Warning"),
("SEUHitParity", "SEU Hit Parity"),
("SEURegisterParity", "SEU Register Parity"),
("SEUHamming", "SEU Hamming Code"),
("ModTruncEOCErrors", "FE/MCC EoC Trunc"),
("RODTrailerBitErrors", "ROD Trailer Bit"),
("RODTruncHTLimitErrors", "ROD H/T Limit Trunc"),
("RODTruncRODOFErrors", "ROD Overflow Trunc")
]

Definition at line 184 of file PixelAthMonitoringBase.py.

◆ ErrStateLabelsFEI4

list PixelAthMonitoringBase.ErrStateLabelsFEI4
inherited
Initial value:
= [
("RODTimeoutErrors", "ROD Timeout"),
("RODBCIDErrors", "ROD BCID synchronization"),
("RODLVL1IDErrors", "ROD LVL1ID synchronization"),
("RODPreambleErrors", "ROD Preamble"),
("RODTrailerErrors", "ROD Trailer"),
("RODRowColumnErrors", "ROD row-column"),
("RODMaskedLink", "ROD Masked link"),
("RODLimitErrors", "ROD Header Trailer limit"),
("SR0BCIDCounterErrors", "SR0 BCID counter"),
("SR1HammingCode0Errors", "SR1 Hamming code in word 0"),
("SR2HammingCode1Errors", "SR2 Hamming code in word 1"),
("SR3HammingCode2Errors", "SR3 Hamming code in word 2"),
("SR4L1InCounterErrors", "SR4 L1 in counter"),
("SR5L1RequestCounterErrors", "SR5 L1 request counter"),
("SR6L1RegisterErrors", "SR6 L1 register"),
("SR7L1TriggerIDErrors", "SR7 L1 trigger ID"),
("SR8FEReadoutProcessErrors", "SR8 FE readout process"),
("SR15SkipppedTrigCountErrors", "SR15 Skipped trigger counter"),
("SR16TruncatedEventFlagErrors", "SR16 Truncated event"),
("SR24TripleRedundantErrorsCNFGMEM", "SR24 Triple redundant CNFGMEM"),
("SR25WriteRegDataErrors", "SR25 Write register data"),
("SR26AddressErrors", "SR26 Address"),
("SR27OtherCMDDecoderErrors", "SR27 CMD decoder"),
("SR28CMDDecoderBitflipErrors", "SR28 CMD decoder bit flip"),
("SR29TripleRedundantErrorsCMD", "SR29 Triple redundant CMD"),
("SR30DataBusAddressErrors", "SR30 Data bus address"),
("SR31TripleRedundantErrorsEFUSE", "SR31 Triple redundant EFUSE")
]

Definition at line 203 of file PixelAthMonitoringBase.py.

◆ errtbinsy

list PixelAthMonitoringBase.errtbinsy = [ 7, 7, 7, 7, 7, 7, 7]
inherited

Definition at line 45 of file PixelAthMonitoringBase.py.

◆ etatxt

list PixelAthMonitoringBase.etatxt = [ditxt,ditxt,btxt,btxt,btxt,sbtxt]
inherited

Definition at line 29 of file PixelAthMonitoringBase.py.

◆ fei3layers

list PixelAthMonitoringBase.fei3layers = ["ECA","ECC","BLayer","Layer1","Layer2"]
inherited

Definition at line 50 of file PixelAthMonitoringBase.py.

◆ fei4layers

list PixelAthMonitoringBase.fei4layers = ["IBL2D","IBL3D"]
inherited

Definition at line 51 of file PixelAthMonitoringBase.py.

◆ LabelFEX

list PixelAthMonitoringBase.LabelFEX = [LayersDiskFE, LayersDiskFE, ModulesBarrelFE, ModulesBarrelFE, ModulesBarrelFE, ModulesIBL]
inherited

Definition at line 92 of file PixelAthMonitoringBase.py.

◆ LabelFEY

list PixelAthMonitoringBase.LabelFEY = [ModulesFEECA, ModulesFEECC, StavesFEL0, StavesFEL1, StavesFEL2, StavesIBL]
inherited

Definition at line 171 of file PixelAthMonitoringBase.py.

◆ LabelX

list PixelAthMonitoringBase.LabelX = [LayersDisk, LayersDisk, ModulesBarrel, ModulesBarrel, ModulesBarrel, ModulesIBL]
inherited

Definition at line 70 of file PixelAthMonitoringBase.py.

◆ LabelY

list PixelAthMonitoringBase.LabelY = [ModulesECA, ModulesECC, StavesL0, StavesL1, StavesL2, StavesIBL]
inherited

Definition at line 153 of file PixelAthMonitoringBase.py.

◆ layergroups

dict PixelAthMonitoringBase.layergroups = {}
inherited

Definition at line 272 of file PixelAthMonitoringBase.py.

◆ layers

list PixelAthMonitoringBase.layers = ["ECA","ECC","BLayer","Layer1","Layer2","IBL2D","IBL3D"]
inherited

Definition at line 24 of file PixelAthMonitoringBase.py.

◆ LayersDisk

list PixelAthMonitoringBase.LayersDisk = ["Disk 1", "Disk 2", "Disk 3"]
inherited

Definition at line 59 of file PixelAthMonitoringBase.py.

◆ LayersDiskFE

list PixelAthMonitoringBase.LayersDiskFE
inherited
Initial value:
= ["Disk1_FE_8_7","Disk1_FE_9_6","Disk1_FE_10_5","Disk1_FE_11_4","Disk1_FE_12_3","Disk1_FE_13_2","Disk1_FE_14_1","Disk1_FE_15_0",
"Disk2_FE_7_8","Disk2_FE_6_9","Disk2_FE_5_10","Disk2_FE_4_11","Disk2_FE_3_12","Disk2_FE_2_13","Disk2_FE_1_14","Disk2_FE_0_15",
"Disk3_FE_8_7","Disk3_FE_9_6","Disk3_FE_10_5","Disk3_FE_11_4","Disk3_FE_12_3","Disk3_FE_13_2","Disk3_FE_14_1","Disk3_FE_15_0"]

Definition at line 73 of file PixelAthMonitoringBase.py.

◆ lumibinsx

int PixelAthMonitoringBase.lumibinsx = 3000
inherited

Definition at line 54 of file PixelAthMonitoringBase.py.

◆ lumitext

str PixelAthMonitoringBase.lumitext = ";lumi block"
inherited

Definition at line 53 of file PixelAthMonitoringBase.py.

◆ m_dataType

AthMonitorAlgorithm::DataType_t AthMonitorAlgorithm::m_dataType
protectedinherited

Instance of the DataType_t enum.

Definition at line 356 of file AthMonitorAlgorithm.h.

◆ m_dataTypeStr

Gaudi::Property<std::string> AthMonitorAlgorithm::m_dataTypeStr {this,"DataType","userDefined"}
protectedinherited

DataType string pulled from the job option and converted to enum.

Definition at line 358 of file AthMonitorAlgorithm.h.

358{this,"DataType","userDefined"};

◆ m_defaultLBDuration

Gaudi::Property<float> AthMonitorAlgorithm::m_defaultLBDuration {this,"DefaultLBDuration",60.}
protectedinherited

Default duration of one lumi block.

Definition at line 365 of file AthMonitorAlgorithm.h.

365{this,"DefaultLBDuration",60.};

◆ m_detailLevel

Gaudi::Property<int> AthMonitorAlgorithm::m_detailLevel {this,"DetailLevel",0}
protectedinherited

Sets the level of detail used in the monitoring.

Definition at line 366 of file AthMonitorAlgorithm.h.

366{this,"DetailLevel",0};

◆ m_doFEPlots

bool PixelAthHitMonAlg::m_doFEPlots {}
private

Definition at line 33 of file PixelAthHitMonAlg.h.

33{};

◆ m_doHeavyIonMon

bool PixelAthHitMonAlg::m_doHeavyIonMon {}
private

Definition at line 32 of file PixelAthHitMonAlg.h.

32{};

◆ m_doHighOccupancy

bool PixelAthHitMonAlg::m_doHighOccupancy {}
private

Definition at line 31 of file PixelAthHitMonAlg.h.

31{};

◆ m_doLowOccupancy

bool PixelAthHitMonAlg::m_doLowOccupancy {}
private

Definition at line 30 of file PixelAthHitMonAlg.h.

30{};

◆ m_doLumiBlock

bool PixelAthHitMonAlg::m_doLumiBlock {}
private

Definition at line 29 of file PixelAthHitMonAlg.h.

29{};

◆ m_doOnline

bool PixelAthHitMonAlg::m_doOnline {}
private

Definition at line 28 of file PixelAthHitMonAlg.h.

28{};

◆ m_DQFilterTools

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

Array of Data Quality filter tools.

Definition at line 346 of file AthMonitorAlgorithm.h.

346{this,"FilterTools",{}};

◆ m_environment

AthMonitorAlgorithm::Environment_t AthMonitorAlgorithm::m_environment
protectedinherited

Instance of the Environment_t enum.

Definition at line 355 of file AthMonitorAlgorithm.h.

◆ 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 357 of file AthMonitorAlgorithm.h.

357{this,"Environment","user"};

◆ m_EventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> AthMonitorAlgorithm::m_EventInfoKey {this,"EventInfoKey","EventInfo"}
protectedinherited

Key for retrieving EventInfo from StoreGate.

Definition at line 367 of file AthMonitorAlgorithm.h.

367{this,"EventInfoKey","EventInfo"};

◆ m_fileKey

Gaudi::Property<std::string> AthMonitorAlgorithm::m_fileKey {this,"FileKey",""}
protectedinherited

Internal Athena name for file.

Definition at line 363 of file AthMonitorAlgorithm.h.

363{this,"FileKey",""};

◆ m_lbDurationDataKey

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

Definition at line 350 of file AthMonitorAlgorithm.h.

351{this,"LBDurationCondDataKey","LBDurationCondData","SG Key of LBDurationCondData object"};

◆ m_lumiDataKey

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

Definition at line 348 of file AthMonitorAlgorithm.h.

349{this,"LuminosityCondDataKey","LuminosityCondData","SG Key of LuminosityCondData object"};

◆ m_modData

std::vector<int> PixelAthMonitoringBase::m_modData[PixLayers::NBASELAYERS]
protectedinherited

Definition at line 143 of file PixelAthMonitoringBase.h.

◆ m_pixelCondSummaryTool

ToolHandle<IInDetConditionsTool> PixelAthMonitoringBase::m_pixelCondSummaryTool
protectedinherited
Initial value:
{
this, "PixelConditionsSummaryTool", "PixelConditionsSummaryTool", "Tool to retrieve Pixel Conditions summary"
}

Definition at line 135 of file PixelAthMonitoringBase.h.

135 {
136 this, "PixelConditionsSummaryTool", "PixelConditionsSummaryTool", "Tool to retrieve Pixel Conditions summary"
137 };

◆ m_pixelDetElStatus

SG::ReadHandleKey<InDet::SiDetectorElementStatus> PixelAthMonitoringBase::m_pixelDetElStatus {this, "PixelDetElStatus", "", "Key of SiDetectorElementStatus for Pixel"}
protectedinherited

Optional read handle to get status data to test whether a pixel detector element is good.

If set to e.g. PixelDetectorElementStatus the event data will be used instead of the pixel conditions summary tool.

Definition at line 148 of file PixelAthMonitoringBase.h.

149{this, "PixelDetElStatus", "", "Key of SiDetectorElementStatus for Pixel"};

◆ m_pixelDetElStatusActiveOnly

SG::ReadHandleKey<InDet::SiDetectorElementStatus> PixelAthMonitoringBase::m_pixelDetElStatusActiveOnly {this, "PixelDetElStatusActiveOnly", "", "Key of SiDetectorElementStatus for Pixel which reflects only whether modules or chips are active rather than delivering good data"}
protectedinherited

Optional read handle to get status data to test whether a pixel detector element is active.

The optional event data is used to test whether a pixel detector element is active but not necessarily good. If set to e.g. PixelDetectorElementStatusActiveOnly the event data will be used instead of the pixel conditions summary tool.

Definition at line 155 of file PixelAthMonitoringBase.h.

156{this, "PixelDetElStatusActiveOnly", "", "Key of SiDetectorElementStatus for Pixel which reflects only whether modules or chips are active rather than delivering good data"};

◆ m_pixelid

const PixelID* PixelAthMonitoringBase::m_pixelid {}
protectedinherited

Definition at line 142 of file PixelAthMonitoringBase.h.

142{};

◆ m_pixelRDOName

SG::ReadHandleKey<PixelRDO_Container> PixelAthHitMonAlg::m_pixelRDOName
private
Initial value:
{
this, "RDOName", "PixelRDOs", "rdo data key"
}

Definition at line 24 of file PixelAthHitMonAlg.h.

24 {
25 this, "RDOName", "PixelRDOs", "rdo data key"
26 };

◆ m_pixelReadout

ServiceHandle<InDetDD::IPixelReadoutManager> PixelAthMonitoringBase::m_pixelReadout
protectedinherited
Initial value:
{
this, "PixelReadoutManager", "PixelReadoutManager", "Pixel readout manager"
}

Definition at line 138 of file PixelAthMonitoringBase.h.

139 {
140 this, "PixelReadoutManager", "PixelReadoutManager", "Pixel readout manager"
141 };

◆ m_tools

ToolHandleArray<GenericMonitoringTool> AthMonitorAlgorithm::m_tools {this,"GMTools",{}}
protectedinherited

Array of Generic Monitoring Tools.

Definition at line 341 of file AthMonitorAlgorithm.h.

341{this,"GMTools",{}};

◆ m_trigDecTool

PublicToolHandle<Trig::TrigDecisionTool> AthMonitorAlgorithm::m_trigDecTool
protectedinherited

Tool to tell whether a specific trigger is passed.

Definition at line 345 of file AthMonitorAlgorithm.h.

◆ 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 360 of file AthMonitorAlgorithm.h.

360{this,"TriggerChain",""};

◆ m_trigLiveFractionDataKey

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

Definition at line 352 of file AthMonitorAlgorithm.h.

353{this,"TrigLiveFractionCondDataKey","TrigLiveFractionCondData", "SG Key of TrigLiveFractionCondData object"};

◆ m_useLumi

Gaudi::Property<bool> AthMonitorAlgorithm::m_useLumi {this,"EnableLumi",false}
protectedinherited

Allows use of various luminosity functions.

Definition at line 364 of file AthMonitorAlgorithm.h.

364{this,"EnableLumi",false};

◆ m_vTrigChainNames

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

Vector of trigger chain names parsed from trigger chain string.

Definition at line 361 of file AthMonitorAlgorithm.h.

◆ ModulesBarrel

list PixelAthMonitoringBase.ModulesBarrel
inherited
Initial value:
= [
"M6C", "M5C", "M4C", "M3C", "M2C", "M1C", "M0","M1A", "M2A", "M3A", "M4A",
"M5A", "M6A"]

Definition at line 61 of file PixelAthMonitoringBase.py.

◆ ModulesBarrelFE

list PixelAthMonitoringBase.ModulesBarrelFE
inherited
Initial value:
= [
"M6C_FE_8_7","M6C_FE_9_6","M6C_FE_10_5","M6C_FE_11_4","M6C_FE_12_3","M6C_FE_13_2","M6C_FE_14_1","M6C_FE_15_0",
"M5C_FE_8_7","M5C_FE_9_6","M5C_FE_10_5","M5C_FE_11_4","M5C_FE_12_3","M5C_FE_13_2","M5C_FE_14_1","M5C_FE_15_0",
"M4C_FE_8_7","M4C_FE_9_6","M4C_FE_10_5","M4C_FE_11_4","M4C_FE_12_3","M4C_FE_13_2","M4C_FE_14_1","M4C_FE_15_0",
"M3C_FE_8_7","M3C_FE_9_6","M3C_FE_10_5","M3C_FE_11_4","M3C_FE_12_3","M3C_FE_13_2","M3C_FE_14_1","M3C_FE_15_0",
"M2C_FE_8_7","M2C_FE_9_6","M2C_FE_10_5","M2C_FE_11_4","M2C_FE_12_3","M2C_FE_13_2","M2C_FE_14_1","M2C_FE_15_0",
"M1C_FE_8_7","M1C_FE_9_6","M1C_FE_10_5","M1C_FE_11_4","M1C_FE_12_3","M1C_FE_13_2","M1C_FE_14_1","M1C_FE_15_0",
"M0_FE_8_7","M0_FE_9_6","M0_FE_10_5","M0_FE_11_4","M0_FE_12_3","M0_FE_13_2","M0_FE_14_1","M0_FE_15_0",
"M1A_FE_8_7","M1A_FE_9_6","M1A_FE_10_5","M1A_FE_11_4","M1A_FE_12_3","M1A_FE_13_2","M1A_FE_14_1","M1A_FE_15_0",
"M2A_FE_8_7","M2A_FE_9_6","M2A_FE_10_5","M2A_FE_11_4","M2A_FE_12_3","M2A_FE_13_2","M2A_FE_14_1","M2A_FE_15_0",
"M3A_FE_8_7","M3A_FE_9_6","M3A_FE_10_5","M3A_FE_11_4","M3A_FE_12_3","M3A_FE_13_2","M3A_FE_14_1","M3A_FE_15_0",
"M4A_FE_8_7","M4A_FE_9_6","M4A_FE_10_5","M4A_FE_11_4","M4A_FE_12_3","M4A_FE_13_2","M4A_FE_14_1","M4A_FE_15_0",
"M5A_FE_8_7","M5A_FE_9_6","M5A_FE_10_5","M5A_FE_11_4","M5A_FE_12_3","M5A_FE_13_2","M5A_FE_14_1","M5A_FE_15_0",
"M6A_FE_8_7","M6A_FE_9_6","M6A_FE_10_5","M6A_FE_11_4","M6A_FE_12_3","M6A_FE_13_2","M6A_FE_14_1","M6A_FE_15_0"]

Definition at line 77 of file PixelAthMonitoringBase.py.

◆ ModulesECA

list PixelAthMonitoringBase.ModulesECA
inherited
Initial value:
= [
"B01_S2_M1", "B01_S2_M6", "B01_S2_M2", "B01_S2_M5", "B01_S2_M3",
"B01_S2_M4", "B02_S1_M1", "B02_S1_M6", "B02_S1_M2", "B02_S1_M5",
"B02_S1_M3", "B02_S1_M4", "B02_S2_M1", "B02_S2_M6", "B02_S2_M2",
"B02_S2_M5", "B02_S2_M3", "B02_S2_M4", "B03_S1_M1", "B03_S1_M6",
"B03_S1_M2", "B03_S1_M5", "B03_S1_M3", "B03_S1_M4", "B03_S2_M1",
"B03_S2_M6", "B03_S2_M2", "B03_S2_M5", "B03_S2_M3", "B03_S2_M4",
"B04_S1_M1", "B04_S1_M6", "B04_S1_M2", "B04_S1_M5", "B04_S1_M3",
"B04_S1_M4", "B04_S2_M1", "B04_S2_M6", "B04_S2_M2", "B04_S2_M5",
"B04_S2_M3", "B04_S2_M4", "B01_S1_M1", "B01_S1_M6", "B01_S1_M2",
"B01_S1_M5", "B01_S1_M3", "B01_S1_M4"]

Definition at line 94 of file PixelAthMonitoringBase.py.

◆ ModulesECC

list PixelAthMonitoringBase.ModulesECC
inherited
Initial value:
= [
"B01_S2_M4", "B01_S2_M3", "B01_S2_M5", "B01_S2_M2", "B01_S2_M6",
"B01_S2_M1", "B02_S1_M4", "B02_S1_M3", "B02_S1_M5", "B02_S1_M2",
"B02_S1_M6", "B02_S1_M1", "B02_S2_M4", "B02_S2_M3", "B02_S2_M5",
"B02_S2_M2", "B02_S2_M6", "B02_S2_M1", "B03_S1_M4", "B03_S1_M3",
"B03_S1_M5", "B03_S1_M2", "B03_S1_M6", "B03_S1_M1", "B03_S2_M4",
"B03_S2_M3", "B03_S2_M5", "B03_S2_M2", "B03_S2_M6", "B03_S2_M1",
"B04_S1_M4", "B04_S1_M3", "B04_S1_M5", "B04_S1_M2", "B04_S1_M6",
"B04_S1_M1", "B04_S2_M4", "B04_S2_M3", "B04_S2_M5", "B04_S2_M2",
"B04_S2_M6", "B04_S2_M1", "B01_S1_M4", "B01_S1_M3", "B01_S1_M5",
"B01_S1_M2", "B01_S1_M6", "B01_S1_M1"]

Definition at line 105 of file PixelAthMonitoringBase.py.

◆ ModulesFEECA

list PixelAthMonitoringBase.ModulesFEECA = []
inherited

Definition at line 156 of file PixelAthMonitoringBase.py.

◆ ModulesFEECC

list PixelAthMonitoringBase.ModulesFEECC = []
inherited

Definition at line 159 of file PixelAthMonitoringBase.py.

◆ ModulesHead

list PixelAthMonitoringBase.ModulesHead = ["D", "D", "L0", "L1", "L2", "LI"]
inherited

Definition at line 182 of file PixelAthMonitoringBase.py.

◆ ModulesIBL

list PixelAthMonitoringBase.ModulesIBL
inherited
Initial value:
= [
"C8_0", "C8_1", "C7_0", "C7_1", "C6_0", "C6_1", "C5_0", "C5_1", "C4_0", "C4_1", "C3_0", "C3_1", "C2_0", "C2_1",
"C1_0", "C1_1", "A1_0", "A1_1", "A2_0", "A2_1", "A3_0", "A3_1", "A4_0", "A4_1", "A5_0", "A5_1", "A6_0", "A6_1",
"A7_0", "A7_1", "A8_0", "A8_1"]

Definition at line 65 of file PixelAthMonitoringBase.py.

◆ NumLayersDisk

int PixelAthMonitoringBase.NumLayersDisk = 3
inherited

Definition at line 11 of file PixelAthMonitoringBase.py.

◆ NumModulesBarrel

int PixelAthMonitoringBase.NumModulesBarrel = 13
inherited

Definition at line 17 of file PixelAthMonitoringBase.py.

◆ NumModulesDisk

int PixelAthMonitoringBase.NumModulesDisk = 48
inherited

Definition at line 18 of file PixelAthMonitoringBase.py.

◆ NumPP0sEC

int PixelAthMonitoringBase.NumPP0sEC = 24
inherited

Definition at line 19 of file PixelAthMonitoringBase.py.

◆ NumStavesIBL

int PixelAthMonitoringBase.NumStavesIBL = 14
inherited

Definition at line 12 of file PixelAthMonitoringBase.py.

◆ NumStavesL0

int PixelAthMonitoringBase.NumStavesL0 = 22
inherited

Definition at line 13 of file PixelAthMonitoringBase.py.

◆ NumStavesL1

int PixelAthMonitoringBase.NumStavesL1 = 38
inherited

Definition at line 14 of file PixelAthMonitoringBase.py.

◆ NumStavesL2

int PixelAthMonitoringBase.NumStavesL2 = 52
inherited

Definition at line 15 of file PixelAthMonitoringBase.py.

◆ phitext

str PixelAthMonitoringBase.phitext = ";phi index of module"
inherited

Definition at line 30 of file PixelAthMonitoringBase.py.

◆ PP0LabelX

list PixelAthMonitoringBase.PP0LabelX = [PP0sEC, PP0sEC, StavesL0, StavesL1, StavesL2, StavesIBL, StavesIBL]
inherited

Definition at line 179 of file PixelAthMonitoringBase.py.

◆ pp0layers

list PixelAthMonitoringBase.pp0layers = ["ECA","ECC","BLayer","Layer1","Layer2","IBLA","IBLC"]
inherited

Definition at line 47 of file PixelAthMonitoringBase.py.

◆ PP0sEC

list PixelAthMonitoringBase.PP0sEC
inherited
Initial value:
= [
"D1_B01_S2", "D1_B02_S1", "D1_B02_S2", "D1_B03_S1", "D1_B03_S2", "D1_B04_S1", "D1_B04_S2", "D1_B01_S1",
"D2_B01_S2", "D2_B02_S1", "D2_B02_S2", "D2_B03_S1", "D2_B03_S2", "D2_B04_S1", "D2_B04_S2", "D2_B01_S1",
"D3_B01_S2", "D3_B02_S1", "D3_B02_S2", "D3_B03_S1", "D3_B03_S2", "D3_B04_S1", "D3_B04_S2", "D3_B01_S1"]

Definition at line 174 of file PixelAthMonitoringBase.py.

◆ pp0xbins

list PixelAthMonitoringBase.pp0xbins = [ 24, 24, 22, 38, 52, 14, 14]
inherited

Definition at line 48 of file PixelAthMonitoringBase.py.

◆ ReadingDataErrLabels

list PixelAthMonitoringBase.ReadingDataErrLabels
inherited
Initial value:
= [
"Invalid container",
"Invalid collection",
"Container empty"
]

Definition at line 266 of file PixelAthMonitoringBase.py.

◆ runtext

str PixelAthMonitoringBase.runtext = ''
inherited

Definition at line 9 of file PixelAthMonitoringBase.py.

◆ sbtxt

str PixelAthMonitoringBase.sbtxt = ";shifted eta index of module"
inherited

Definition at line 22 of file PixelAthMonitoringBase.py.

◆ StavesFEL0

list PixelAthMonitoringBase.StavesFEL0 = []
inherited

Definition at line 162 of file PixelAthMonitoringBase.py.

◆ StavesFEL1

list PixelAthMonitoringBase.StavesFEL1 = []
inherited

Definition at line 165 of file PixelAthMonitoringBase.py.

◆ StavesFEL2

list PixelAthMonitoringBase.StavesFEL2 = []
inherited

Definition at line 168 of file PixelAthMonitoringBase.py.

◆ StavesIBL

list PixelAthMonitoringBase.StavesIBL
inherited
Initial value:
= [
"S01(0.33)", "S02(0.78)", "S03(1.23)", "S04(1.68)", "S05(2.12)", "S06(2.57)", "S07(3.02)",
"S08(-2.81)", "S09(-2.36)", "S10(-1.91)", "S11(-1.47)", "S12(-1.02)", "S13(-0.57)","S14(-0.12)"]

Definition at line 149 of file PixelAthMonitoringBase.py.

◆ StavesL0

list PixelAthMonitoringBase.StavesL0
inherited
Initial value:
= [
"B11_S2(-0.29)", "B01_S1(0.0)", "B01_S2(0.29)", "B02_S1(0.57)", "B02_S2(0.87)", "B03_S1(1.14)", "B03_S2(1.43)",
"B04_S1(1.71)", "B04_S2(2.0)", "B05_S1(2.28)", "B05_S2(2.57)", "B06_S1(2.86)", "B06_S2(3.14)", "B07_S1(-2.86)",
"B07_S2(-2.57)", "B08_S1(2.28)", "B08_S2(-2.0)", "B09_S1(-1.71)", "B09_S2(-1.43)", "B10_S1(-1.14)",
"B10_S2(-0.86)", "B11_S1(-0.57)"]

Definition at line 125 of file PixelAthMonitoringBase.py.

◆ StavesL00

list PixelAthMonitoringBase.StavesL00
inherited
Initial value:
= [
"B11_S2", "B01_S1", "B01_S2", "B02_S1", "B02_S2", "B03_S1", "B03_S2",
"B04_S1", "B04_S2", "B05_S1", "B05_S2", "B06_S1", "B06_S2", "B07_S1",
"B07_S2", "B08_S1", "B08_S2", "B09_S1", "B09_S2", "B10_S1", "B10_S2",
"B11_S1"]

Definition at line 119 of file PixelAthMonitoringBase.py.

◆ StavesL1

list PixelAthMonitoringBase.StavesL1
inherited
Initial value:
= [
"B01_S1", "B01_S2", "B02_S1", "B02_S2", "B03_S1", "B03_S2", "B04_S1",
"B04_S2", "B05_S1", "B05_S2", "B06_S1", "B06_S2", "B07_S1", "B07_S2",
"B08_S1", "B08_S2", "B09_S1", "B09_S2", "B10_S1", "B10_S2", "B11_S1",
"B11_S2", "B12_S1", "B12_S2", "B13_S1", "B13_S2", "B14_S1", "B14_S2",
"B15_S1", "B15_S2", "B16_S1", "B16_S2", "B17_S1", "B17_S2", "B18_S1",
"B18_S2", "B19_S1", "B19_S2"]

Definition at line 131 of file PixelAthMonitoringBase.py.

◆ StavesL2

list PixelAthMonitoringBase.StavesL2
inherited
Initial value:
= [
"B01_S2", "B02_S1", "B02_S2", "B03_S1", "B03_S2", "B04_S1", "B04_S2",
"B05_S1", "B05_S2", "B06_S1", "B06_S2", "B07_S1", "B07_S2", "B08_S1",
"B08_S2", "B09_S1", "B09_S2", "B10_S1", "B10_S2", "B11_S1", "B11_S2",
"B12_S1", "B12_S2", "B13_S1", "B13_S2", "B14_S1", "B14_S2", "B15_S1",
"B15_S2", "B16_S1", "B16_S2", "B17_S1", "B17_S2", "B18_S1", "B18_S2",
"B19_S1", "B19_S2", "B20_S1", "B20_S2", "B21_S1", "B21_S2", "B22_S1",
"B22_S2", "B23_S1", "B23_S2", "B24_S1", "B24_S2", "B25_S1", "B25_S2",
"B26_S1", "B26_S2", "B01_S1"]

Definition at line 139 of file PixelAthMonitoringBase.py.

◆ totcuts

list PixelAthMonitoringBase.totcuts = [ 15, 15, 15, 15, 15, 4, 4]
inherited

Definition at line 35 of file PixelAthMonitoringBase.py.

◆ xbinsem

list PixelAthMonitoringBase.xbinsem = [ 3, 3, 13, 13, 13, 20]
inherited

Definition at line 36 of file PixelAthMonitoringBase.py.

◆ xbinsfel

list PixelAthMonitoringBase.xbinsfel = [ 24, 24, 104, 104, 104, 32]
inherited

Definition at line 31 of file PixelAthMonitoringBase.py.

◆ xbinsl

list PixelAthMonitoringBase.xbinsl = [ 3, 3, 13, 13, 13, 32]
inherited

Definition at line 26 of file PixelAthMonitoringBase.py.

◆ xbinstotz

list PixelAthMonitoringBase.xbinstotz = [ 3, 3, 13, 13, 13, 20]
inherited

Definition at line 38 of file PixelAthMonitoringBase.py.

◆ xminsem

list PixelAthMonitoringBase.xminsem = [ 0.5, 0.5,-6.5,-6.5,-6.5, -10]
inherited

Definition at line 37 of file PixelAthMonitoringBase.py.

◆ xminsfel

list PixelAthMonitoringBase.xminsfel = [ -0.5, -0.5, -52, -52, -52,-16.5]
inherited

Definition at line 32 of file PixelAthMonitoringBase.py.

◆ xminsl

list PixelAthMonitoringBase.xminsl = [ -0.5, -0.5,-6.5,-6.5,-6.5,-16.5]
inherited

Definition at line 27 of file PixelAthMonitoringBase.py.

◆ xminstotz

list PixelAthMonitoringBase.xminstotz = [ -0.5, -0.5,-0.5,-0.5,-0.5, -0.5]
inherited

Definition at line 39 of file PixelAthMonitoringBase.py.

◆ ybinsfel

list PixelAthMonitoringBase.ybinsfel = [ 96, 96, 44, 76, 104, 14]
inherited

Definition at line 33 of file PixelAthMonitoringBase.py.

◆ ybinsl

list PixelAthMonitoringBase.ybinsl = [ 48, 48, 22, 38, 52, 14]
inherited

Definition at line 28 of file PixelAthMonitoringBase.py.

◆ ztotbinsy

list PixelAthMonitoringBase.ztotbinsy = [ 20, 20, 20, 20, 20, 20, 20]
inherited

Definition at line 40 of file PixelAthMonitoringBase.py.

◆ ztotminsy

list PixelAthMonitoringBase.ztotminsy = [ 19.5, 19.5, 7.5,19.5,19.5, -0.5, -0.5]
inherited

Definition at line 41 of file PixelAthMonitoringBase.py.


The documentation for this class was generated from the following files: