ATLAS Offline Software
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
SCTHitEffMonAlg Class Reference

#include <SCTHitEffMonAlg.h>

Inheritance diagram for SCTHitEffMonAlg:
Collaboration diagram for SCTHitEffMonAlg:

Public Types

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

Public Member Functions

 SCTHitEffMonAlg (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~SCTHitEffMonAlg ()=default
 
virtual StatusCode initialize () override final
 initialize More...
 
virtual StatusCode fillHistograms (const EventContext &ctx) const override final
 adds event to the monitoring histograms More...
 
virtual StatusCode execute (const EventContext &ctx) const override
 Applies filters and trigger requirements. More...
 
void fill (const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
 Fills a vector of variables to a group by reference. More...
 
void fill (const ToolHandle< GenericMonitoringTool > &groupHandle, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const
 Fills a vector of variables to a group by reference. More...
 
template<typename... T>
void fill (const ToolHandle< GenericMonitoringTool > &groupHandle, T &&... variables) const
 Fills a variadic list of variables to a group by reference. More...
 
void fill (const std::string &groupName, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
 Fills a vector of variables to a group by name. More...
 
void fill (const std::string &groupName, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const
 Fills a vector of variables to a group by name. More...
 
template<typename... T>
void fill (const std::string &groupName, T &&... variables) const
 Fills a variadic list of variables to a group by name. More...
 
Environment_t environment () const
 Accessor functions for the environment. More...
 
Environment_t envStringToEnum (const std::string &str) const
 Convert the environment string from the python configuration to an enum object. More...
 
DataType_t dataType () const
 Accessor functions for the data type. More...
 
DataType_t dataTypeStringToEnum (const std::string &str) const
 Convert the data type string from the python configuration to an enum object. More...
 
const ToolHandle< GenericMonitoringTool > & getGroup (const std::string &name) const
 Get a specific monitoring tool from the tool handle array. More...
 
const ToolHandle< Trig::TrigDecisionTool > & getTrigDecisionTool () const
 Get the trigger decision tool member. More...
 
bool trigChainsArePassed (const std::vector< std::string > &vTrigNames) const
 Check whether triggers are passed. More...
 
SG::ReadHandle< xAOD::EventInfoGetEventInfo (const EventContext &) const
 Return a ReadHandle for an EventInfo object (get run/event numbers, etc.) More...
 
virtual float lbAverageInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the average mu, i.e. More...
 
virtual float lbInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate instantaneous number of interactions, i.e. More...
 
virtual float lbAverageLuminosity (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1). More...
 
virtual float lbLuminosityPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the instantaneous luminosity per bunch crossing. More...
 
virtual double lbDuration (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the duration of the luminosity block (in seconds) More...
 
virtual float lbAverageLivefraction (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the average luminosity livefraction. More...
 
virtual float livefractionPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the live fraction per bunch crossing ID. More...
 
virtual double lbLumiWeight (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Calculate the average integrated luminosity multiplied by the live fraction. More...
 
virtual StatusCode parseList (const std::string &line, std::vector< std::string > &result) const
 Parse a string into a vector. More...
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual bool isClonable () const override
 Specify if the algorithm is clonable. More...
 
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
 
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
virtual bool filterPassed (const EventContext &ctx) const
 
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Public Attributes

 flags = initConfigFlags()
 
 Files
 
 isMC
 
 HISTFileName
 
 Dynamic
 
 GeometryID
 
 GeometryPixel
 
 GeometrySCT
 
 GeometryTRT
 
 cfg = MainServicesCfg(flags)
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Protected Attributes

ToolHandleArray< GenericMonitoringToolm_tools {this,"GMTools",{}}
 Array of Generic Monitoring Tools. More...
 
PublicToolHandle< Trig::TrigDecisionToolm_trigDecTool {this, "TrigDecisionTool",""}
 Tool to tell whether a specific trigger is passed. More...
 
ToolHandleArray< IDQFilterToolm_DQFilterTools {this,"FilterTools",{}}
 Array of Data Quality filter tools. More...
 
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. More...
 
AthMonitorAlgorithm::DataType_t m_dataType
 Instance of the DataType_t enum. More...
 
Gaudi::Property< std::string > m_environmentStr {this,"Environment","user"}
 Environment string pulled from the job option and converted to enum. More...
 
Gaudi::Property< std::string > m_dataTypeStr {this,"DataType","userDefined"}
 DataType string pulled from the job option and converted to enum. More...
 
Gaudi::Property< std::string > m_triggerChainString {this,"TriggerChain",""}
 Trigger chain string pulled from the job option and parsed into a vector. More...
 
std::vector< std::string > m_vTrigChainNames
 Vector of trigger chain names parsed from trigger chain string. More...
 
Gaudi::Property< std::string > m_fileKey {this,"FileKey",""}
 Internal Athena name for file. More...
 
Gaudi::Property< bool > m_useLumi {this,"EnableLumi",false}
 Allows use of various luminosity functions. More...
 
Gaudi::Property< float > m_defaultLBDuration {this,"DefaultLBDuration",60.}
 Default duration of one lumi block. More...
 
Gaudi::Property< int > m_detailLevel {this,"DetailLevel",0}
 Sets the level of detail used in the monitoring. More...
 
SG::ReadHandleKey< xAOD::EventInfom_EventInfoKey {this,"EventInfoKey","EventInfo"}
 Key for retrieving EventInfo from StoreGate. More...
 

Private Types

typedef std::vector< std::reference_wrapper< Monitored::IMonitoredVariable > > MonVarVec_t
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode failCut (bool value, const std::string &name) const
 
StatusCode findAnglesToWaferSurface (const Amg::Vector3D &mom, const Identifier id, const InDetDD::SiDetectorElementCollection *elements, double &theta, double &phi) const
 
int previousChip (double xl, int side, bool swap) const
 
double getResidual (const Identifier &surfaceID, const Trk::TrackParameters *trkParam, const InDet::SCT_ClusterContainer *p_sctclcontainer) const
 
SCT_Monitoring::BecIndex layerIndex2becIndex (const int index) const
 
int layerIndex2layer (const int index) const
 Convert a layer/disk number (0-21) to a layer number (0-8 for endcaps, 0-3 for barrel) More...
 
int becIdxLayer2Index (const int becIdx, const int layer) const
 
int getWaferIndex (const int barrel_bc, const int layer_disk, const int side) const
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

std::string m_path
 
SG::ReadHandleKey< InDet::SCT_ClusterContainerm_sctContainerName {this, "SCT_ClusterContainer", "SCT_Clusters"}
 
SG::ReadHandleKey< TrackCollectionm_TrackName {this, "TrackName", "CombinedInDetTracks"}
 
SG::ReadHandleKey< ComTimem_comTimeName {this, "ComTimeKey", "TRT_Phase"}
 
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
 
SG::ReadCondHandleKey< BunchCrossingCondDatam_bunchCrossingKey {this, "BunchCrossingKey", "BunchCrossingData", "Key BunchCrossing CDO" }
 
SG::ReadCondHandleKey< AtlasFieldCacheCondObjm_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}
 
ToolHandle< Trk::IResidualPullCalculatorm_residualPullCalculator {this, "ResPullCalc", "Trk::ResidualPullCalculator/ResidualPullCalculator"}
 
ToolHandle< Trk::IRIO_OnTrackCreatorm_rotcreator {this, "ROTCreator", "InDet::SCT_ClusterOnTrackTool/SCT_ClusterOnTrackTool"}
 
ToolHandle< Trk::ITrackHoleSearchToolm_holeSearchTool {this, "HoleSearch", "InDet::InDetTrackHoleSearchTool"}
 
ToolHandle< ISCT_ConfigurationConditionsToolm_configConditions
 
const PixelIDm_pixelId {nullptr}
 
const SCT_IDm_sctId {nullptr}
 
const TRT_IDm_trtId {nullptr}
 
IntegerProperty m_minSCTHits {this, "MinSCTHits", -1}
 
IntegerProperty m_minTRTHits {this, "MinTRTHits", -1}
 
IntegerProperty m_minOtherHits {this, "MinOtherHits", 6}
 
IntegerProperty m_minPixelHits {this, "MinPixelHits", -1}
 
FloatProperty m_maxPhiAngle {this, "MaxPhiAngle", 40., "Degrees, 100 implies no cut."}
 
FloatProperty m_maxChi2 {this, "MaxChi2", 3.}
 
FloatProperty m_maxD0 {this, "Maxd0", 10., "mm of D0"}
 
FloatProperty m_minPt {this, "MinPt", 1000., "minimu pt in MeV/c"}
 
FloatProperty m_effdistcut {this, "effDistanceCut", 0.2, "mm"}
 
FloatProperty m_maxZ0sinTheta {this, "MaxZ0sinTheta", 0.}
 
UnsignedIntegerProperty m_maxTracks {this, "MaxTracks", 500}
 
UnsignedIntegerProperty m_minSiHits {this, "MinimumNumberOfSiHits", 8, "Threshold for number of Si hits. Count Si hits excluding hits in the wafer under investigation to reduce track selection bias"}
 
UnsignedIntegerProperty m_maxSiHoles {this, "MaximumNumberOfSiHoles", 1, "Threshold for number of Si holes. Count Si holes excluding holes in the wafer under investigation to reduce track selection bias"}
 
BooleanProperty m_insideOutOnly {this, "InsideOutOnly", false}
 
BooleanProperty m_isCosmic {this, "IsCosmic", false}
 
BooleanProperty m_useTRTPhase {this, "UseTRTPhase", false}
 
BooleanProperty m_useSCTorTRT {this, "UseSCTorTRT", false}
 
BooleanProperty m_requireEnclosingHits {this, "RequireEnclosingHits", false}
 
BooleanProperty m_requireOtherFace {this, "RequireOtherFace", false}
 
BooleanProperty m_requireGuardRing {this, "RequireGuardRing", false, "should be returned to true"}
 
BooleanProperty m_vetoBadChips {this, "VetoBadChips", true}
 
BooleanProperty m_useIDGlobal {this, "useIDGlobal", false}
 
std::string m_name
 
std::unordered_map< std::string, size_t > m_toolLookupMap
 
const ToolHandle< GenericMonitoringToolm_dummy
 
Gaudi::Property< bool > m_enforceExpressTriggers
 
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 38 of file SCTHitEffMonAlg.h.

Member Typedef Documentation

◆ MonVarVec_t

typedef std::vector<std::reference_wrapper<Monitored::IMonitoredVariable> > AthMonitorAlgorithm::MonVarVec_t
privateinherited

Definition at line 365 of file AthMonitorAlgorithm.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ DataType_t

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

191  {
192  userDefined = 0,
193  monteCarlo,
194  collisions,
195  cosmics,
196  heavyIonCollisions,
197  };

◆ Environment_t

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

172  {
173  user = 0,
174  online,
175  tier0,
176  tier0Raw,
177  tier0ESD,
178  AOD,
179  altprod,
180  };

Constructor & Destructor Documentation

◆ SCTHitEffMonAlg()

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

Definition at line 75 of file SCTHitEffMonAlg.cxx.

76  :AthMonitorAlgorithm(name,pSvcLocator) {
77 }

◆ ~SCTHitEffMonAlg()

virtual SCTHitEffMonAlg::~SCTHitEffMonAlg ( )
virtualdefault

Member Function Documentation

◆ becIdxLayer2Index()

int SCTHitEffMonAlg::becIdxLayer2Index ( const int  becIdx,
const int  layer 
) const
private

Definition at line 124 of file SCTHitEffMonAlg.cxx.

124  {
125  switch( becIdx ) {
127  return layer;
132  default:
133  return -1;
134  }
135 }

◆ cardinality()

unsigned int AthReentrantAlgorithm::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Override this to return 0 for reentrant algorithms.

Definition at line 55 of file AthReentrantAlgorithm.cxx.

56 {
57  return 0;
58 }

◆ dataType()

DataType_t AthMonitorAlgorithm::dataType ( ) const
inlineinherited

Accessor functions for the data type.

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

Definition at line 221 of file AthMonitorAlgorithm.h.

221 { return m_dataType; }

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

140  {
141  // convert the string to all lowercase
142  std::string lowerCaseStr = str;
143  std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(), ::tolower);
144 
145  // check if it matches one of the enum choices
146  if( lowerCaseStr == "userdefined" ) {
148  } else if( lowerCaseStr == "montecarlo" ) {
149  return DataType_t::monteCarlo;
150  } else if( lowerCaseStr == "collisions" ) {
151  return DataType_t::collisions;
152  } else if( lowerCaseStr == "cosmics" ) {
153  return DataType_t::cosmics;
154  } else if( lowerCaseStr == "heavyioncollisions" ) {
156  } else { // otherwise, warn the user and return "userDefined"
157  ATH_MSG_WARNING("AthMonitorAlgorithm::dataTypeStringToEnum(): Unknown data type "
158  <<str<<", returning userDefined.");
160  }
161 }

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [4/4]

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

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

Definition at line 199 of file AthCommonDataStore.h.

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

◆ declareProperty() [1/6]

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

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

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

◆ declareProperty() [2/6]

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

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

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

◆ declareProperty() [3/6]

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

Definition at line 259 of file AthCommonDataStore.h.

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

◆ declareProperty() [4/6]

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

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

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

◆ declareProperty() [5/6]

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

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

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

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

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

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

95 { return m_detStore; }

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

205 { return m_environment; }

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

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

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

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

73  {
74 
75  // Checks that all of the DQ filters are passed. If any one of the filters
76  // fails, return SUCCESS code and do not fill the histograms with the event.
77  for ( const auto& filterItr : m_DQFilterTools ) {
78  if (!filterItr->accept()) {
79  ATH_MSG_DEBUG("Event rejected due to filter tool.");
80  return StatusCode::SUCCESS;
81  }
82  }
83 
84  // Trigger: If there is a decision tool and the chains fail, skip the event.
86  ATH_MSG_DEBUG("Event rejected due to trigger filter.");
87  return StatusCode::SUCCESS;
88  }
89 
90  ATH_MSG_DEBUG("Event accepted!");
91  return fillHistograms(ctx);
92 }

◆ 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 & AthReentrantAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 79 of file AthReentrantAlgorithm.cxx.

80 {
81  // If we didn't find any symlinks to add, just return the collection
82  // from the base class. Otherwise, return the extended collection.
83  if (!m_extendedExtraObjects.empty()) {
85  }
86  return Algorithm::extraOutputDeps();
87 }

◆ failCut()

StatusCode SCTHitEffMonAlg::failCut ( bool  value,
const std::string &  name 
) const
private

Definition at line 233 of file SCTHitEffMonAlg.cxx.

233  {
234  if (value) {
235  ATH_MSG_VERBOSE("Passed " << name);
236  return StatusCode::FAILURE;
237  }
238  ATH_MSG_VERBOSE("Failed " << name);
239  return StatusCode::SUCCESS;
240 }

◆ fillHistograms()

StatusCode SCTHitEffMonAlg::fillHistograms ( const EventContext &  ctx) const
finaloverridevirtual

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 242 of file SCTHitEffMonAlg.cxx.

242  {
243  ATH_MSG_VERBOSE("SCTHitEffMonTool::fillHistograms()");
244 
245  const std::map<Identifier, unsigned int>* badChips{nullptr};
246  if (m_vetoBadChips) {
247  badChips = m_configConditions->badChips(ctx);
248  }
249 
250  double timecor{-20.};
251  if (m_useTRTPhase or m_isCosmic) {
252  SG::ReadHandle<ComTime> theComTime{m_comTimeName, ctx};
253  if (theComTime.isValid()) {
254  timecor = theComTime->getTime();
255  ATH_MSG_VERBOSE("Retrieved ComTime object with name " << m_comTimeName.key() << " found: Time = " << timecor);
256  } else {
257  timecor = -18.;
258  ATH_MSG_WARNING("ComTime object not found with name " << m_comTimeName.key());
259  }
260  }
261  // If we are going to use TRT phase in anger, need run-dependent corrections.
262  const EventIDBase& pEvent{ctx.eventID()};
263  unsigned BCID{pEvent.bunch_crossing_id()};
265  if (!bcidHdl.isValid()) {
266  ATH_MSG_ERROR( "Unable to retrieve BunchCrossing conditions object" );
267  return StatusCode::FAILURE;
268  }
269  const BunchCrossingCondData* bcData{*bcidHdl};
271 
273  const AtlasFieldCacheCondObj* fieldCondObj{*fieldHandle};
274  if (fieldCondObj==nullptr) {
275  ATH_MSG_ERROR("AtlasFieldCacheCondObj cannot be retrieved.");
276  return StatusCode::RECOVERABLE;
277  }
278  MagField::AtlasFieldCache fieldCache;
279  fieldCondObj->getInitializedCache(fieldCache);
280  const bool solenoidOn{fieldCache.solenoidOn()};
281 
282  // ---- First try if m_tracksName is a TrackCollection
284  if (not tracks.isValid()) {
285  ATH_MSG_WARNING("Tracks not found: " << tracks << " / " << m_TrackName.key());
286  return StatusCode::SUCCESS;
287  } else {
288  ATH_MSG_VERBOSE("Successfully retrieved " << m_TrackName.key() << " : " << tracks->size() << " items");
289  }
290 
292  if (not p_sctclcontainer.isValid()) {
293  ATH_MSG_WARNING("SCT clusters container not found: " << m_sctContainerName.key());
294  return StatusCode::SUCCESS;
295  }
296 
297  // cut on number of tracks (skip this cut for online)
299  if (failCut(tracks->size() <= m_maxTracks, "# of tracks cut")) {
300  return StatusCode::SUCCESS;
301  }
302  }
303 
305  const InDetDD::SiDetectorElementCollection* elements{sctDetEle.retrieve()};
306  if (elements==nullptr) {
307  ATH_MSG_FATAL(m_SCTDetEleCollKey.fullKey() << " could not be retrieved in fillHistograms()");
308  return StatusCode::FAILURE;
309  }
310 
311 
312  // Loop over track collection to count tracks
313  for (const Trk::Track* pthisTrack: *tracks) {
314  if (pthisTrack==nullptr) {
315  continue;
316  }
317  if (failCut(pthisTrack and pthisTrack->trackParameters() and pthisTrack->trackParameters()->size(),
318  "track cut: presence")) {
319  continue;
320  }
321 
322  if (m_insideOutOnly and failCut(pthisTrack->info().patternRecoInfo(Trk::TrackInfo::SiSPSeededFinder),
323  "track cut: inside-out only")) {
324  continue;
325  }
326  if (pthisTrack->perigeeParameters() == nullptr) {
327  continue;
328  }
329  const Trk::Perigee* perigee{pthisTrack->perigeeParameters()};
330  const AmgVector(5)& perigeeParameters{perigee->parameters()};
331  const double d0{perigeeParameters[Trk::d0]};
332  const double z0{perigeeParameters[Trk::z0]};
333  const double perigeeTheta{perigeeParameters[Trk::theta]};
334 
335  if (solenoidOn and failCut(perigee->pT() >= m_minPt, "track cut: Min Pt")) {
336  continue;
337  }
338  if (not m_isCosmic and failCut(std::abs(d0) <= m_maxD0, "track cut: max D0")) {
339  continue;
340  }
341  if (m_maxZ0sinTheta and failCut(std::abs(z0 * sin(perigeeTheta)) <= m_maxZ0sinTheta, "track cut: Max Z0sinTheta")) {
342  continue;
343  }
344  }
345 
346  // Loop over original track collection
347  for (const Trk::Track* pthisTrack: *tracks) {
348 
349  // First, go through all cuts in this block
350  ATH_MSG_VERBOSE("Starting new track");
351  if (pthisTrack==nullptr) {
352  continue;
353  }
354  if (failCut(pthisTrack and pthisTrack->trackParameters() and pthisTrack->trackParameters()->size(),
355  "track cut: presence")) {
356  continue;
357  }
358 
359  if (m_insideOutOnly and failCut(pthisTrack->info().patternRecoInfo(Trk::TrackInfo::SiSPSeededFinder),
360  "track cut: inside-out only")) {
361  continue;
362  }
363  if (pthisTrack->perigeeParameters() == nullptr) {
364  continue;
365  }
366  const Trk::Perigee* perigee{pthisTrack->perigeeParameters()};
367  const AmgVector(5)& perigeeParameters{perigee->parameters()};
368  const double d0{perigeeParameters[Trk::d0]};
369  const double z0{perigeeParameters[Trk::z0]};
370  const double perigeeTheta{perigeeParameters[Trk::theta]};
371 
372  if (failCut(perigee->pT() >= m_minPt, "track cut: Min Pt")) {
373  continue;
374  }
375  if (not m_isCosmic and failCut(std::abs(d0) <= m_maxD0, "track cut: max D0")) {
376  continue;
377  }
378  if (m_maxZ0sinTheta and failCut(std::abs(z0 * sin(perigeeTheta)) <= m_maxZ0sinTheta, "track cut: Max Z0sinTheta")) {
379  continue;
380  }
381 
382  const Trk::TrackSummary* summary{pthisTrack->trackSummary()};
383 
384  if (summary and (summary->get(Trk::numberOfSCTHits) < 1)) {
385  continue;
386  }
387 
388  std::unique_ptr<const Trk::Track> trackWithHoles(m_holeSearchTool->getTrackWithHoles(*pthisTrack));
389  if (not trackWithHoles) {
390  ATH_MSG_WARNING("trackWithHoles pointer is invalid");
391  continue;
392  }
393  ATH_MSG_VERBOSE("Found " << trackWithHoles->trackStateOnSurfaces()->size() << " states on track");
394 
395  int NHits[N_REGIONS] = {
396  0, 0, 0
397  };
398  int pixelNHits{0};
399  int pixelNHoles{0};
400  int trtNHits{0};
401 
402  int sctNHitsPerRegion[N_LAYERS_TOTAL*N_SIDES] = {0};
403  int sctNHolesPerRegion[N_LAYERS_TOTAL*N_SIDES] = {0};
404  // Above two variables hold the number of hits for each SCT disk / layer.
405  // [N_LAYERS_TOTAL*N_SIDES(= 44)] indicates the waferIndex defined as below.
406  // 0- 7: B3 side0, B3 side1, B4 side0, ... B6 side1
407  // 8-25: EA0 side0, EA1 side1, ... EA8 side1
408  // 26-43: EC0 side0, EC1 side1, ... EC8 side1
409 
410  std::map < Identifier, double > mapOfTrackHitResiduals;
413  double zpos{0.};
414  float layerSide{-1};
415  float min_layerSide{999.};
416  float max_layerSide{-1.};
417  Identifier surfaceID;
418 
419  // Loop over all TSOS (track state on surface) on track to check number of hits / holes on Pixel, SCT and TRT
420  for (const Trk::TrackStateOnSurface* tsos: *(trackWithHoles->trackStateOnSurfaces())) {
421  surfaceID = surfaceOnTrackIdentifier(tsos);
422 
423  if (not surfaceID.is_valid()) {
424  continue;
425  }
426 
427  // Check waferIndex; if the default value of -1 is kept, the corresponding TSOS is not associated with SCT.
428  int waferIndex = -1;
429  // Calculate waferIndex
430  if (m_sctId->is_sct(surfaceID)) {
431  waferIndex = getWaferIndex(m_sctId->barrel_ec(surfaceID),
432  m_sctId->layer_disk(surfaceID),
433  m_sctId->side(surfaceID));
434  }
435 
437  if (m_pixelId->is_pixel(surfaceID)) {
438  pixelNHits++;
439  }
440  if (m_trtId->is_trt(surfaceID)) {
441  trtNHits++;
442  }
443  if (m_sctId->is_sct(surfaceID)) {
444  NHits[bec2Index(m_sctId->barrel_ec(surfaceID))]++;
445  mapOfTrackHitResiduals[surfaceID] = getResidual(surfaceID, tsos->trackParameters(), &*p_sctclcontainer);
446  sctNHitsPerRegion[waferIndex]++;
447  }
448  } else if (tsos->type(Trk::TrackStateOnSurface::Hole)) {
449  if (m_pixelId->is_pixel(surfaceID)) {
450  pixelNHoles++;
451  } else if (m_sctId->is_sct(surfaceID)) {
452  sctNHolesPerRegion[waferIndex]++;
453  }
454  }
455 
456  if (tsos->type(Trk::TrackStateOnSurface::Measurement)) { // Determine zmin and zmax taking multiple
457  // hits/side into account
458  if (m_isCosmic) { // If this is cosmics use z, bad method but ok...
459  if (tsos->trackParameters()) {
460  zpos = tsos->trackParameters()->position().z();
461  zmax = std::max(zpos, zmax);
462  zmin = std::min(zpos, zmin);
463  } else {
464  ATH_MSG_WARNING("No track parameter found. Zmin and Zmax not recalculated.");
465  }
466  } else { // else use layer/side number : better but does not work for cosmics
467  if (m_sctId->is_sct(surfaceID)) {
468  layerSide = (m_sctId->barrel_ec(surfaceID) != 0) * N_BARRELS +
469  static_cast<float>(m_sctId->layer_disk(surfaceID)) + (static_cast<float>(m_sctId->side(surfaceID)) == 0) * 0.5;
470  min_layerSide = std::min(min_layerSide, layerSide);
471  max_layerSide = std::max(max_layerSide, layerSide);
472  } else if (m_pixelId->is_pixel(surfaceID)) {
473  min_layerSide = -1;
474  } else if (m_trtId->is_trt(surfaceID)) {
475  max_layerSide = N_BARRELS + N_ENDCAPS + 1;
476  }
477  }
478  }
479  }
480 
481  int sctNHits{NHits[ENDCAP_C_INDEX] + NHits[BARREL_INDEX] + NHits[ENDCAP_A_INDEX]};
482  std::vector<bool> layersCrossedByTrack[N_REGIONS];
483  std::vector<int> nHolesOnLayer[N_REGIONS];
484  std::vector<int> nHolesDistOnLayer[N_REGIONS];
485  for (int i{0}; i < N_REGIONS; ++i) {
486  nHolesDistOnLayer[i].resize(n_layers[i] * 2, 0);
487  nHolesOnLayer[i].resize(n_layers[i] * 2, 0);
488  layersCrossedByTrack[i].resize(n_layers[i] * 2, false);
489  }
490 
491  // Loop over all TSOS again; this time, to extract SCT-related hits and holes.
492  for (const Trk::TrackStateOnSurface* tsos: *(trackWithHoles->trackStateOnSurfaces())) {
493  ATH_MSG_VERBOSE("Starting new hit");
494  surfaceID = surfaceOnTrackIdentifier(tsos);
495 
496  if (failCut(m_sctId->is_sct(surfaceID), "hit cut: is in SCT")) {
497  continue;
498  }
499 
500 
501  int side{m_sctId->side(surfaceID)};
502  int layer{m_sctId->layer_disk(surfaceID)};
503  int bec{m_sctId->barrel_ec(surfaceID)};
504  unsigned int isub{bec2Index(bec)};
505  ATH_MSG_VERBOSE("New SCT candidate: " << m_sctId->print_to_string(surfaceID));
506 
507  int waferIndex = getWaferIndex(bec, layer, side);
508 
509  Int_t sctNHitsExceptThisWafer{0};
510  Int_t sctNHolesExceptThisWafer{0};
511 
512  for (Int_t i=0; i<N_LAYERS_TOTAL*N_SIDES; i++) {
513  if (i != waferIndex) {
514  sctNHitsExceptThisWafer += sctNHitsPerRegion[i];
515  sctNHolesExceptThisWafer += sctNHolesPerRegion[i];
516  }
517  }
518 
519  // The track is required to satisfy:
520  // - Number of Si hits to be >= 8
521  // - Number of Si holes to be <= 1
522  // without counting on this TSOS object. (avoid tracking bias.)
523  if ((unsigned int)(sctNHitsExceptThisWafer + pixelNHits) < m_minSiHits) {
524  ATH_MSG_VERBOSE("This track is rejected due to the number of hits: " << sctNHitsExceptThisWafer * pixelNHits);
525  continue;
526  }
527  if ((unsigned int)(sctNHolesExceptThisWafer + pixelNHoles) > m_maxSiHoles) {
528  ATH_MSG_VERBOSE("This track is rejected due to the number of holes: " << sctNHolesExceptThisWafer * pixelNHoles);
529  continue;
530  }
531 
532  std::string etaPhiSuffix = "_" + std::to_string(layer) + "_" + std::to_string(side);
533  const int detIndex{becIdxLayer2Index(isub, layer)};
534  if (detIndex == -1) {
535  ATH_MSG_WARNING("The detector region (barrel, endcap A, endcap C) could not be determined");
536  continue;
537  }
538  float eff{0.};
539  IdentifierHash sideHash{m_sctId->wafer_hash(surfaceID)};
540  Identifier module_id{m_sctId->module_id(surfaceID)};
541  float layerPlusHalfSide{static_cast<float>(layer) + static_cast<float>(side) * 0.5f};
542  float dedicated_layerPlusHalfSide{static_cast<float>(layer) + static_cast<float>((side + 1) % 2) * 0.5f};
543  const Trk::TrackParameters* trkParamOnSurface{tsos->trackParameters()};
544  double trackHitResidual{getResidual(surfaceID, trkParamOnSurface, &*p_sctclcontainer)};
545 
546  float distCut{m_effdistcut};
547 
549  eff = 1.;
550  } else if (tsos->type(Trk::TrackStateOnSurface::Hole) and (std::abs(trackHitResidual) < distCut)) {
551  eff = 1.;
552  }
553 
554  bool otherFaceFound{false};
555  IdentifierHash otherSideHash;
556  Identifier otherSideSurfaceID;
557  IdContext context{m_sctId->wafer_context()};
558  m_sctId->get_other_side(sideHash, otherSideHash);
559  m_sctId->get_id(otherSideHash, otherSideSurfaceID, &context);
560  otherFaceFound = mapOfTrackHitResiduals.find(otherSideSurfaceID) != mapOfTrackHitResiduals.end();
561 
562  int nOther{sctNHits};
564  --nOther;
565  }
566 
567  // Get the track phi; we may cut on it.
568  double phiUp{90.};
569  double theta{90.};
570  if (trkParamOnSurface and (not findAnglesToWaferSurface(trkParamOnSurface->momentum(), surfaceID, elements, theta, phiUp))) {
571  ATH_MSG_WARNING("Error from findAngles");
572  }
573 
574  if (m_useSCTorTRT) {
575  if (failCut(trtNHits >= m_minTRTHits or
576  sctNHits >= m_minSCTHits, "track cut: min TRT or SCT hits")) {
577  continue;
578  }
579  } else {
580  if (failCut(trtNHits >= m_minTRTHits, "track cut: min TRT hits")) {
581  continue;
582  }
583  if (failCut(sctNHits >= m_minSCTHits, "track cut: min SCT hits")) {
584  continue;
585  }
586  if (failCut(pixelNHits >= m_minPixelHits, "track cut: min Pixel hits")) {
587  continue;
588  }
589  }
590 
591  if (failCut(nOther >= m_minOtherHits, "track cut: minOtherHits")) {
592  continue;
593  }
594 
595  ATH_MSG_DEBUG("Use TRT phase " << m_useTRTPhase << " is cosmic? " << m_isCosmic << " timecor " << timecor);
596  if (m_useTRTPhase or m_isCosmic) {
597  if (timecor == 0) {
598  continue;
599  }
600  static const double tmin{-15.};
601  static const double tmax{10.};
602  if (failCut((timecor >= tmin) and (timecor <= tmax), "track cut: timing cut")) {
603  continue;
604  }
605  ATH_MSG_DEBUG(timecor << " " << tmin << " " << tmax);
606  }
607 
608  bool enclosingHits{true};
609  if (m_isCosmic) {
610  if (tsos->trackParameters()) {
611  zpos = tsos->trackParameters()->position().z();
612  enclosingHits = ((zpos > zmin) and (zpos < zmax));
613  } else {
614  ATH_MSG_WARNING("No track parameters found. Cannot determine whether it is an enclosed hit.");
615  enclosingHits = false;
616  }
617  } else {
618  layerSide = (m_sctId->barrel_ec(surfaceID) != 0) * N_BARRELS
619  + static_cast<float>(m_sctId->layer_disk(surfaceID))
620  + (static_cast<float>(m_sctId->side(surfaceID)) == 0) * 0.5;
621  enclosingHits = ((layerSide > min_layerSide) and (layerSide < max_layerSide));
622  }
623 
624  if (m_requireEnclosingHits and
625  (not (layerPlusHalfSide == 0.5)) and
626  (not ((isub == 1) and (layerPlusHalfSide == 3))) and
627  (not (layerPlusHalfSide == 8))) {
628  if (failCut(enclosingHits, "hit cut: enclosing hits")) {
629  continue;
630  }
631  }
632 
633  // Now fill with the local z
634  double chi2{trackWithHoles->fitQuality()->chiSquared()};
635  int ndf{trackWithHoles->fitQuality()->numberDoF()};
636  double chi2_div_ndf{ndf > 0. ? chi2 / ndf : -1.};
637 
638  if (failCut(std::abs(phiUp) <= m_maxPhiAngle, "hit cut: incidence angle")) {
639  continue;
640  }
641 
642  if (failCut((ndf > 0) and (chi2_div_ndf <= m_maxChi2), "track cut: chi2 cut")) {
643  continue;
644  }
645 
646  if (m_requireOtherFace and failCut(otherFaceFound, "hit cut: other face found")) {
647  continue;
648  }
649 
650  if (not trkParamOnSurface) continue;
651  double xl{trkParamOnSurface->localPosition()[0]};
652  double yl{trkParamOnSurface->localPosition()[1]};
653 
654  // Check guard ring
655  bool insideGuardRing{true};
656  if (isub == BARREL_INDEX) {
657  const float xGuard{m_effdistcut};
658  static const float yGuard{3.};
659  if (xl < -30.7 + xGuard) {
660  insideGuardRing = false;
661  }
662  if (xl > 30.7 - xGuard) {
663  insideGuardRing = false;
664  }
665 
666  static const double yend{63.960 + 0.03 - 1.}; // The far sensitive end
667  static const double ydead{2.06 / 2.}; // the near sensitive end
668  if (yl > yend - yGuard) {
669  insideGuardRing = false;
670  }
671  if (yl < -yend + yGuard) {
672  insideGuardRing = false;
673  }
674  if ((yl < ydead + yGuard) and (yl > -ydead - yGuard)) {
675  insideGuardRing = false;
676  }
677  } else {
678  // No guard ring for the endcaps for now...just set true.
679  insideGuardRing = true;
680  }
681 
682  if (m_requireGuardRing and failCut(insideGuardRing, "hit cut: inside guard ring")) {
683  continue;
684  }
685 
686  // Check bad chips
687  if (m_vetoBadChips) {
688  bool nearBadChip{false};
689  IdentifierHash waferHash{m_sctId->wafer_hash(surfaceID)};
690  const InDetDD::SiDetectorElement* pElement{elements->getDetectorElement(waferHash)};
691  bool swap{(pElement->swapPhiReadoutDirection()) ? true : false};
692  int chipPos{previousChip(xl, side, swap)};
693  unsigned int status{0};
694  std::map<Identifier, unsigned int>::const_iterator badChip{badChips->find(module_id)};
695  if (badChip != badChips->end()) {
696  status = (*badChip).second;
697  // Veto if either of closest two chips is dead
698  const bool nearBadChipDead{(status & (1 << chipPos)) != 0};
699  const bool nextBadChipDead{(status & (1 << (chipPos + 1))) != 0};
700  const bool isNotEndChip{(chipPos != 5) and (chipPos != 11)}; // cant have a 'next' if its the end chip on that
701  // side
702  // nearBadChip = status & (1 << chipPos) or
703  // (chipPos != 5 and chipPos != 11 and status & (1 << (chipPos + 1)));
704  // clarify logic:
705  nearBadChip = nearBadChipDead or (isNotEndChip and nextBadChipDead);
706  }
707  if (failCut(not nearBadChip, "hit cut: not near bad chip")) {
708  continue;
709  }
710  }
711  ATH_MSG_VERBOSE("Candidate passed all cuts");
712 
713  const int ieta{m_sctId->eta_module(surfaceID)};
714  const int iphi{m_sctId->phi_module(surfaceID)};
715 
716  auto effAcc{Monitored::Scalar<float>("eff", eff)};
717  auto ineffAcc{Monitored::Scalar<float>("ineff", (testOffline ? 1. : 1.-eff))};
718  auto ietaAcc{Monitored::Scalar<int>("ieta"+etaPhiSuffix, ieta)};
719  auto iphiAcc{Monitored::Scalar<int>("iphi"+etaPhiSuffix, iphi)};
720  auto layerAcc{Monitored::Scalar<float>("layerPlusHalfSide", dedicated_layerPlusHalfSide)};
721  auto lumiAcc{Monitored::Scalar<int>("LumiBlock", ctx.eventID().lumi_block())};
722  auto isubAcc{Monitored::Scalar<int>("isub", isub)};
723  auto sideHashAcc{Monitored::Scalar<int>("sideHash", sideHash)};
724  auto isFirstBCIDAcc{Monitored::Scalar<bool>("isFirstBCID", (BCIDpos <= 0))};
725 
726  //fill the histograms
727  fill(regionNames[isub].data(), effAcc, ineffAcc, ietaAcc, iphiAcc, layerAcc, lumiAcc, isFirstBCIDAcc);
728  fill("SCTHitEffMonitor", effAcc, lumiAcc, isubAcc, sideHashAcc, isFirstBCIDAcc);
729 
730  if (testOffline) {
731  ATH_MSG_INFO("Filling " << detIndex << ", " << side << " eta " << ieta << " phi " << iphi);
732  }
733  } // End of loop over hits/holes
734  }
735  ATH_MSG_VERBOSE("finished loop over tracks = " << tracks->size());
736 
737  return StatusCode::SUCCESS;
738 }

◆ filterPassed()

virtual bool AthReentrantAlgorithm::filterPassed ( const EventContext &  ctx) const
inlinevirtualinherited

Definition at line 135 of file AthReentrantAlgorithm.h.

135  {
136  return execState( ctx ).filterPassed();
137  }

◆ findAnglesToWaferSurface()

StatusCode SCTHitEffMonAlg::findAnglesToWaferSurface ( const Amg::Vector3D mom,
const Identifier  id,
const InDetDD::SiDetectorElementCollection elements,
double &  theta,
double &  phi 
) const
private

Definition at line 190 of file SCTHitEffMonAlg.cxx.

194  {
195  phi = 90.;
196  theta = 90.;
197 
198  const Identifier waferId{m_sctId->wafer_id(id)};
199  const IdentifierHash waferHash{m_sctId->wafer_hash(waferId)};
200  const InDetDD::SiDetectorElement* element{elements->getDetectorElement(waferHash)};
201  if (not element) {
202  ATH_MSG_VERBOSE("findAnglesToWaferSurface: failed to find detector element for id = " << m_sctId->print_to_string(id));
203  return StatusCode::FAILURE;
204  }
205  double pNormal{mom.dot(element->normal())};
206  double pEta{mom.dot(element->etaAxis())};
207  double pPhi{mom.dot(element->phiAxis())};
208  if (pPhi < 0.) {
209  phi = -90.;
210  }
211  if (pEta < 0.) {
212  theta = -90.;
213  }
214  if (pNormal != 0.) {
215  phi = std::atan(pPhi / pNormal) * radianDegrees;
216  theta = std::atan(pEta / pNormal) * radianDegrees;
217  }
218  return StatusCode::SUCCESS;
219 }

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

107  {
109 }

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

164  {
165  // get the pointer to the tool, and check that it exists
166  auto idx = m_toolLookupMap.find(name);
167  if (ATH_LIKELY(idx != m_toolLookupMap.end())) {
168  return m_tools[idx->second];
169  }
170  else {
171  if (!isInitialized()) {
173  "It seems that the AthMonitorAlgorithm::initialize was not called "
174  "in derived class initialize method");
175  } else {
176  std::string available = std::accumulate(
177  m_toolLookupMap.begin(), m_toolLookupMap.end(), std::string(""),
178  [](const std::string& s, auto h) { return s + "," + h.first; });
179  ATH_MSG_FATAL("The tool " << name << " could not be found in the tool array of the "
180  << "monitoring algorithm " << m_name << ". This probably reflects a discrepancy between "
181  << "your python configuration and c++ filling code. Note: your available groups are {"
182  << available << "}.");
183  }
184  }
185  return m_dummy;
186 }

◆ getResidual()

double SCTHitEffMonAlg::getResidual ( const Identifier surfaceID,
const Trk::TrackParameters trkParam,
const InDet::SCT_ClusterContainer p_sctclcontainer 
) const
private

Definition at line 155 of file SCTHitEffMonAlg.cxx.

157  {
158  double trackHitResidual{-999.};
159 
160  if (trkParam==nullptr) {
161  ATH_MSG_WARNING("Not track parameters found. Returning default residual value.");
162  return trackHitResidual;
163  }
164  IdentifierHash idh{m_sctId->wafer_hash(surfaceID)};
165  auto containerIterator{p_sctclcontainer->indexFindPtr(idh)};
166  if (containerIterator != nullptr) {
167  for (const InDet::SCT_Cluster* cluster: *containerIterator) {
168  if ((cluster==nullptr) or (cluster->detectorElement()==nullptr)) {
169  ATH_MSG_WARNING("nullptr to RIO or detElement");
170  continue;
171  }
172  if (surfaceID == m_sctId->wafer_id(cluster->detectorElement()->identify())) {
173  const Trk::PrepRawData* rioo{dynamic_cast<const Trk::PrepRawData *>(cluster)};
174  std::unique_ptr<const Trk::RIO_OnTrack> rio{m_rotcreator->correct(*rioo, *trkParam)};
175  if (not m_residualPullCalculator.empty()) {
176  std::optional<Trk::ResidualPull> residualPull{m_residualPullCalculator->residualPull(rio.get(), trkParam,
178  if (not residualPull) continue;
179  if (std::abs(residualPull->residual()[Trk::loc1]) < std::abs(trackHitResidual)) {
180  trackHitResidual = residualPull->residual()[Trk::loc1];
181  }
182  }
183  }
184  }
185  }
186  return trackHitResidual;
187 }

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

189  {
190  return m_trigDecTool;
191 }

◆ getWaferIndex()

int SCTHitEffMonAlg::getWaferIndex ( const int  barrel_bc,
const int  layer_disk,
const int  side 
) const
private

Definition at line 137 of file SCTHitEffMonAlg.cxx.

137  {
138  int waferIndex = -1;
139  if (barrel_ec == BARREL) {
140  // corresponds to the waferIndex of B3 side0
141  waferIndex = 0;
142  } else if (barrel_ec == ENDCAP_A) {
143  // corresponds to the waferIndex of EA0 side0
144  waferIndex = N_BARRELS*N_SIDES;
145  } else if (barrel_ec == ENDCAP_C) {
146  // corresponds to the waferIndex of EC0 side0
147  waferIndex = N_BARRELS*N_SIDES + N_ENDCAPS*N_SIDES;
148  } else {
149  ATH_MSG_WARNING("The barrel_bc index" << barrel_ec << " is not defined.");
150  return waferIndex;
151  }
152  return waferIndex + layer_disk * N_SIDES + side;
153 }

◆ initialize()

StatusCode SCTHitEffMonAlg::initialize ( )
finaloverridevirtual

initialize

Returns
StatusCode

Reimplemented from AthMonitorAlgorithm.

Definition at line 79 of file SCTHitEffMonAlg.cxx.

79  {
80  ATH_MSG_INFO("Initializing SCTHitEffMonAlg");
81 
82  ATH_CHECK(detStore()->retrieve(m_sctId, "SCT_ID"));
83  ATH_CHECK(detStore()->retrieve(m_pixelId, "PixelID"));
84  ATH_CHECK(detStore()->retrieve(m_trtId, "TRT_ID"));
85 
87  ATH_MSG_INFO("Retrieved pull calculator tool " << m_residualPullCalculator);
88 
89  ATH_CHECK(m_holeSearchTool.retrieve());
90  ATH_MSG_INFO("Retrieved hole search tool " << m_holeSearchTool);
91 
92  ATH_CHECK(m_rotcreator.retrieve());
93 
94  ATH_MSG_INFO("Retrieved tool " << m_rotcreator);
96  ATH_CHECK(m_configConditions.retrieve());
97 
98  m_path = (m_useIDGlobal) ? ("/InDetGlobal/") : ("");
99  ATH_MSG_INFO("End");
100 
101  if ((m_minSCTHits == -1) and (m_minTRTHits == -1) and (m_minOtherHits == -1)) {
102  if (m_isCosmic) {
103  m_minTRTHits = 45;
104  m_minSCTHits = 7;
105  m_minOtherHits = 5;
106  } else {
107  m_minTRTHits = 30;
108  m_minSCTHits = 4;
109  m_minOtherHits = 3;
110  }
111  }
112 
114  ATH_CHECK( m_TrackName.initialize() );
116 
119 
121 }

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

◆ isClonable()

bool AthReentrantAlgorithm::isClonable ( ) const
overridevirtualinherited

◆ layerIndex2becIndex()

SCT_Monitoring::BecIndex SCTHitEffMonAlg::layerIndex2becIndex ( const int  index) const
private

◆ layerIndex2layer()

int SCTHitEffMonAlg::layerIndex2layer ( const int  index) const
private

Convert a layer/disk number (0-21) to a layer number (0-8 for endcaps, 0-3 for barrel)

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< 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 336 of file AthMonitorAlgorithm.cxx.

336  {
337  std::string item;
338  std::stringstream ss(line);
339 
340  ATH_MSG_DEBUG( "AthMonitorAlgorithm::parseList()" );
341 
342  while ( std::getline(ss, item, ',') ) {
343  std::stringstream iss(item); // remove whitespace
344  iss >> item;
345  result.push_back(item);
346  }
347 
348  return StatusCode::SUCCESS;
349 }

◆ previousChip()

int SCTHitEffMonAlg::previousChip ( double  xl,
int  side,
bool  swap 
) const
private

Definition at line 221 of file SCTHitEffMonAlg.cxx.

221  {
222  double xLeftEdge{xl + N_STRIPS / 2. * stripWidth}; // xl defined wrt center of module, convert to edge of module
223  int chipPos{static_cast<int>(xLeftEdge / (stripWidth * N_STRIPS) * N_CHIPS)};
224 
225  if (side == 0) {
226  chipPos = swap ? 5 - chipPos : chipPos;
227  } else {
228  chipPos = swap ? 11 - chipPos : 6 + chipPos;
229  }
230  return chipPos;
231 }

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
366  }

◆ setFilterPassed()

virtual void AthReentrantAlgorithm::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 139 of file AthReentrantAlgorithm.h.

139  {
140  execState( ctx ).setFilterPassed( state );
141  }

◆ sysExecute()

StatusCode AthReentrantAlgorithm::sysExecute ( const EventContext &  ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 67 of file AthReentrantAlgorithm.cxx.

68 {
69  return Gaudi::Algorithm::sysExecute (ctx);
70 }

◆ sysInitialize()

StatusCode AthReentrantAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in InputMakerBase, and HypoBase.

Definition at line 96 of file AthReentrantAlgorithm.cxx.

96  {
98 
99  if (sc.isFailure()) {
100  return sc;
101  }
102 
103  ServiceHandle<ICondSvc> cs("CondSvc",name());
104  for (auto h : outputHandles()) {
105  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
106  // do this inside the loop so we don't create the CondSvc until needed
107  if ( cs.retrieve().isFailure() ) {
108  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
109  return StatusCode::SUCCESS;
110  }
111  if (cs->regHandle(this,*h).isFailure()) {
112  sc = StatusCode::FAILURE;
113  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
114  << " with CondSvc");
115  }
116  }
117  }
118  return sc;
119 }

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

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

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ cfg

SCTHitEffMonAlg.cfg = MainServicesCfg(flags)

Definition at line 269 of file SCTHitEffMonAlg.py.

◆ Dynamic

SCTHitEffMonAlg.Dynamic

Definition at line 259 of file SCTHitEffMonAlg.py.

◆ Files

SCTHitEffMonAlg.Files

Definition at line 256 of file SCTHitEffMonAlg.py.

◆ flags

SCTHitEffMonAlg.flags = initConfigFlags()

Definition at line 255 of file SCTHitEffMonAlg.py.

◆ GeometryID

SCTHitEffMonAlg.GeometryID

Definition at line 260 of file SCTHitEffMonAlg.py.

◆ GeometryPixel

SCTHitEffMonAlg.GeometryPixel

Definition at line 261 of file SCTHitEffMonAlg.py.

◆ GeometrySCT

SCTHitEffMonAlg.GeometrySCT

Definition at line 262 of file SCTHitEffMonAlg.py.

◆ GeometryTRT

SCTHitEffMonAlg.GeometryTRT

Definition at line 263 of file SCTHitEffMonAlg.py.

◆ HISTFileName

SCTHitEffMonAlg.HISTFileName

Definition at line 258 of file SCTHitEffMonAlg.py.

◆ isMC

SCTHitEffMonAlg.isMC

Definition at line 257 of file SCTHitEffMonAlg.py.

◆ m_bunchCrossingKey

SG::ReadCondHandleKey<BunchCrossingCondData> SCTHitEffMonAlg::m_bunchCrossingKey {this, "BunchCrossingKey", "BunchCrossingData", "Key BunchCrossing CDO" }
private

Definition at line 78 of file SCTHitEffMonAlg.h.

◆ m_comTimeName

SG::ReadHandleKey<ComTime> SCTHitEffMonAlg::m_comTimeName {this, "ComTimeKey", "TRT_Phase"}
private

Definition at line 76 of file SCTHitEffMonAlg.h.

◆ m_configConditions

ToolHandle<ISCT_ConfigurationConditionsTool> SCTHitEffMonAlg::m_configConditions
private
Initial value:
{this, "ConfigConditions",
"SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool", "Tool to retrieve SCT Configuration Tool"}

Definition at line 84 of file SCTHitEffMonAlg.h.

◆ m_dataType

AthMonitorAlgorithm::DataType_t AthMonitorAlgorithm::m_dataType
protectedinherited

Instance of the DataType_t enum.

Definition at line 351 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 353 of file AthMonitorAlgorithm.h.

◆ m_defaultLBDuration

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

Default duration of one lumi block.

Definition at line 360 of file AthMonitorAlgorithm.h.

◆ m_detailLevel

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

Sets the level of detail used in the monitoring.

Definition at line 361 of file AthMonitorAlgorithm.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_DQFilterTools

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

Array of Data Quality filter tools.

Definition at line 341 of file AthMonitorAlgorithm.h.

◆ m_dummy

const ToolHandle<GenericMonitoringTool> AthMonitorAlgorithm::m_dummy
privateinherited

Definition at line 369 of file AthMonitorAlgorithm.h.

◆ m_effdistcut

FloatProperty SCTHitEffMonAlg::m_effdistcut {this, "effDistanceCut", 0.2, "mm"}
private

Definition at line 102 of file SCTHitEffMonAlg.h.

◆ m_enforceExpressTriggers

Gaudi::Property<bool> AthMonitorAlgorithm::m_enforceExpressTriggers
privateinherited
Initial value:
{this,
"EnforceExpressTriggers", false,
"Requires that matched triggers made the event enter the express stream"}

Definition at line 372 of file AthMonitorAlgorithm.h.

◆ m_environment

AthMonitorAlgorithm::Environment_t AthMonitorAlgorithm::m_environment
protectedinherited

Instance of the Environment_t enum.

Definition at line 350 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 352 of file AthMonitorAlgorithm.h.

◆ m_EventInfoKey

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

Key for retrieving EventInfo from StoreGate.

Definition at line 362 of file AthMonitorAlgorithm.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 153 of file AthReentrantAlgorithm.h.

◆ m_fieldCondObjInputKey

SG::ReadCondHandleKey<AtlasFieldCacheCondObj> SCTHitEffMonAlg::m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}
private

Definition at line 79 of file SCTHitEffMonAlg.h.

◆ m_fileKey

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

Internal Athena name for file.

Definition at line 358 of file AthMonitorAlgorithm.h.

◆ m_holeSearchTool

ToolHandle<Trk::ITrackHoleSearchTool> SCTHitEffMonAlg::m_holeSearchTool {this, "HoleSearch", "InDet::InDetTrackHoleSearchTool"}
private

Definition at line 83 of file SCTHitEffMonAlg.h.

◆ m_insideOutOnly

BooleanProperty SCTHitEffMonAlg::m_insideOutOnly {this, "InsideOutOnly", false}
private

Definition at line 108 of file SCTHitEffMonAlg.h.

◆ m_isCosmic

BooleanProperty SCTHitEffMonAlg::m_isCosmic {this, "IsCosmic", false}
private

Definition at line 109 of file SCTHitEffMonAlg.h.

◆ m_lbDurationDataKey

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

Definition at line 345 of file AthMonitorAlgorithm.h.

◆ m_lumiDataKey

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

Definition at line 343 of file AthMonitorAlgorithm.h.

◆ m_maxChi2

FloatProperty SCTHitEffMonAlg::m_maxChi2 {this, "MaxChi2", 3.}
private

Definition at line 99 of file SCTHitEffMonAlg.h.

◆ m_maxD0

FloatProperty SCTHitEffMonAlg::m_maxD0 {this, "Maxd0", 10., "mm of D0"}
private

Definition at line 100 of file SCTHitEffMonAlg.h.

◆ m_maxPhiAngle

FloatProperty SCTHitEffMonAlg::m_maxPhiAngle {this, "MaxPhiAngle", 40., "Degrees, 100 implies no cut."}
private

Definition at line 98 of file SCTHitEffMonAlg.h.

◆ m_maxSiHoles

UnsignedIntegerProperty SCTHitEffMonAlg::m_maxSiHoles {this, "MaximumNumberOfSiHoles", 1, "Threshold for number of Si holes. Count Si holes excluding holes in the wafer under investigation to reduce track selection bias"}
private

Definition at line 106 of file SCTHitEffMonAlg.h.

◆ m_maxTracks

UnsignedIntegerProperty SCTHitEffMonAlg::m_maxTracks {this, "MaxTracks", 500}
private

Definition at line 104 of file SCTHitEffMonAlg.h.

◆ m_maxZ0sinTheta

FloatProperty SCTHitEffMonAlg::m_maxZ0sinTheta {this, "MaxZ0sinTheta", 0.}
private

Definition at line 103 of file SCTHitEffMonAlg.h.

◆ m_minOtherHits

IntegerProperty SCTHitEffMonAlg::m_minOtherHits {this, "MinOtherHits", 6}
private

Definition at line 94 of file SCTHitEffMonAlg.h.

◆ m_minPixelHits

IntegerProperty SCTHitEffMonAlg::m_minPixelHits {this, "MinPixelHits", -1}
private

Definition at line 96 of file SCTHitEffMonAlg.h.

◆ m_minPt

FloatProperty SCTHitEffMonAlg::m_minPt {this, "MinPt", 1000., "minimu pt in MeV/c"}
private

Definition at line 101 of file SCTHitEffMonAlg.h.

◆ m_minSCTHits

IntegerProperty SCTHitEffMonAlg::m_minSCTHits {this, "MinSCTHits", -1}
private

Definition at line 92 of file SCTHitEffMonAlg.h.

◆ m_minSiHits

UnsignedIntegerProperty SCTHitEffMonAlg::m_minSiHits {this, "MinimumNumberOfSiHits", 8, "Threshold for number of Si hits. Count Si hits excluding hits in the wafer under investigation to reduce track selection bias"}
private

Definition at line 105 of file SCTHitEffMonAlg.h.

◆ m_minTRTHits

IntegerProperty SCTHitEffMonAlg::m_minTRTHits {this, "MinTRTHits", -1}
private

Definition at line 93 of file SCTHitEffMonAlg.h.

◆ m_name

std::string AthMonitorAlgorithm::m_name
privateinherited

Definition at line 366 of file AthMonitorAlgorithm.h.

◆ m_path

std::string SCTHitEffMonAlg::m_path
private

Definition at line 72 of file SCTHitEffMonAlg.h.

◆ m_pixelId

const PixelID* SCTHitEffMonAlg::m_pixelId {nullptr}
private

Definition at line 87 of file SCTHitEffMonAlg.h.

◆ m_requireEnclosingHits

BooleanProperty SCTHitEffMonAlg::m_requireEnclosingHits {this, "RequireEnclosingHits", false}
private

Definition at line 112 of file SCTHitEffMonAlg.h.

◆ m_requireGuardRing

BooleanProperty SCTHitEffMonAlg::m_requireGuardRing {this, "RequireGuardRing", false, "should be returned to true"}
private

Definition at line 114 of file SCTHitEffMonAlg.h.

◆ m_requireOtherFace

BooleanProperty SCTHitEffMonAlg::m_requireOtherFace {this, "RequireOtherFace", false}
private

Definition at line 113 of file SCTHitEffMonAlg.h.

◆ m_residualPullCalculator

ToolHandle<Trk::IResidualPullCalculator> SCTHitEffMonAlg::m_residualPullCalculator {this, "ResPullCalc", "Trk::ResidualPullCalculator/ResidualPullCalculator"}
private

Definition at line 81 of file SCTHitEffMonAlg.h.

◆ m_rotcreator

ToolHandle<Trk::IRIO_OnTrackCreator> SCTHitEffMonAlg::m_rotcreator {this, "ROTCreator", "InDet::SCT_ClusterOnTrackTool/SCT_ClusterOnTrackTool"}
private

Definition at line 82 of file SCTHitEffMonAlg.h.

◆ m_sctContainerName

SG::ReadHandleKey<InDet::SCT_ClusterContainer> SCTHitEffMonAlg::m_sctContainerName {this, "SCT_ClusterContainer", "SCT_Clusters"}
private

Definition at line 74 of file SCTHitEffMonAlg.h.

◆ m_SCTDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> SCTHitEffMonAlg::m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
private

Definition at line 77 of file SCTHitEffMonAlg.h.

◆ m_sctId

const SCT_ID* SCTHitEffMonAlg::m_sctId {nullptr}
private

Definition at line 88 of file SCTHitEffMonAlg.h.

◆ m_toolLookupMap

std::unordered_map<std::string, size_t> AthMonitorAlgorithm::m_toolLookupMap
privateinherited

Definition at line 367 of file AthMonitorAlgorithm.h.

◆ m_tools

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

Array of Generic Monitoring Tools.

Definition at line 338 of file AthMonitorAlgorithm.h.

◆ m_TrackName

SG::ReadHandleKey<TrackCollection> SCTHitEffMonAlg::m_TrackName {this, "TrackName", "CombinedInDetTracks"}
private

Definition at line 75 of file SCTHitEffMonAlg.h.

◆ m_trigDecTool

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

Tool to tell whether a specific trigger is passed.

Definition at line 340 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 355 of file AthMonitorAlgorithm.h.

◆ m_trigLiveFractionDataKey

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

Definition at line 347 of file AthMonitorAlgorithm.h.

◆ m_trtId

const TRT_ID* SCTHitEffMonAlg::m_trtId {nullptr}
private

Definition at line 89 of file SCTHitEffMonAlg.h.

◆ m_useIDGlobal

BooleanProperty SCTHitEffMonAlg::m_useIDGlobal {this, "useIDGlobal", false}
private

Definition at line 116 of file SCTHitEffMonAlg.h.

◆ m_useLumi

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

Allows use of various luminosity functions.

Definition at line 359 of file AthMonitorAlgorithm.h.

◆ m_useSCTorTRT

BooleanProperty SCTHitEffMonAlg::m_useSCTorTRT {this, "UseSCTorTRT", false}
private

Definition at line 111 of file SCTHitEffMonAlg.h.

◆ m_useTRTPhase

BooleanProperty SCTHitEffMonAlg::m_useTRTPhase {this, "UseTRTPhase", false}
private

Definition at line 110 of file SCTHitEffMonAlg.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vetoBadChips

BooleanProperty SCTHitEffMonAlg::m_vetoBadChips {this, "VetoBadChips", true}
private

Definition at line 115 of file SCTHitEffMonAlg.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_vTrigChainNames

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

Vector of trigger chain names parsed from trigger chain string.

Definition at line 356 of file AthMonitorAlgorithm.h.


The documentation for this class was generated from the following files:
SCT_Monitoring::ENDCAP_C_INDEX
@ ENDCAP_C_INDEX
Definition: SCT_MonitoringNumbers.h:19
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
AtlasDetectorID::is_pixel
bool is_pixel(Identifier id) const
Definition: AtlasDetectorID.h:760
covarianceTool.ndf
ndf
Definition: covarianceTool.py:678
SCT_CalibAlgs::bec2Index
unsigned int bec2Index(const int bec)
Definition: SCT_CalibUtilities.cxx:60
SCTHitEffMonAlg::m_maxPhiAngle
FloatProperty m_maxPhiAngle
Definition: SCTHitEffMonAlg.h:98
SCTHitEffMonAlg::becIdxLayer2Index
int becIdxLayer2Index(const int becIdx, const int layer) const
Definition: SCTHitEffMonAlg.cxx:124
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
AthMonitorAlgorithm::environment
Environment_t environment() const
Accessor functions for the environment.
Definition: AthMonitorAlgorithm.h:205
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
AthMonitorAlgorithm::Environment_t::tier0Raw
@ tier0Raw
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
checkFileSG.line
line
Definition: checkFileSG.py:75
SCTHitEffMonAlg::m_path
std::string m_path
Definition: SCTHitEffMonAlg.h:72
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
BunchCrossingCondData
Definition: BunchCrossingCondData.h:23
get_generator_info.result
result
Definition: get_generator_info.py:21
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
max
#define max(a, b)
Definition: cfImp.cxx:41
perigeeParameters
Definition: ExtrapolatorComparisonTest.h:42
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:30
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
AthMonitorAlgorithm::m_trigDecTool
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
Definition: AthMonitorAlgorithm.h:340
SCT_ConditionsData::N_REGIONS
@ N_REGIONS
Definition: SCT_ConditionsParameters.h:28
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
SCTHitEffMonAlg::m_maxTracks
UnsignedIntegerProperty m_maxTracks
Definition: SCTHitEffMonAlg.h:104
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
SCTHitEffMonAlg::m_rotcreator
ToolHandle< Trk::IRIO_OnTrackCreator > m_rotcreator
Definition: SCTHitEffMonAlg.h:82
AthMonitorAlgorithm::Environment_t::tier0
@ tier0
AthMonitorAlgorithm::Environment_t::AOD
@ AOD
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
SCTHitEffMonAlg::m_useIDGlobal
BooleanProperty m_useIDGlobal
Definition: SCTHitEffMonAlg.h:116
AtlasDetectorID::is_sct
bool is_sct(Identifier id) const
Definition: AtlasDetectorID.h:770
SCTHitEffMonAlg::m_requireEnclosingHits
BooleanProperty m_requireEnclosingHits
Definition: SCTHitEffMonAlg.h:112
PixelAthClusterMonAlgCfg.zmin
zmin
Definition: PixelAthClusterMonAlgCfg.py:176
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
SCT_Monitoring::N_ENDCAPS
@ N_ENDCAPS
Definition: SCT_MonitoringNumbers.h:46
SCTHitEffMonAlg::m_maxD0
FloatProperty m_maxD0
Definition: SCTHitEffMonAlg.h:100
accumulate
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
Definition: FPGATrackSimMatrixAccumulator.cxx:22
SCTHitEffMonAlg::getResidual
double getResidual(const Identifier &surfaceID, const Trk::TrackParameters *trkParam, const InDet::SCT_ClusterContainer *p_sctclcontainer) const
Definition: SCTHitEffMonAlg.cxx:155
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
AthMonitorAlgorithm::m_vTrigChainNames
std::vector< std::string > m_vTrigChainNames
Vector of trigger chain names parsed from trigger chain string.
Definition: AthMonitorAlgorithm.h:356
SCTHitEffMonAlg::m_maxZ0sinTheta
FloatProperty m_maxZ0sinTheta
Definition: SCTHitEffMonAlg.h:103
AthCommonDataStore::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 > renounce(T &h)
Definition: AthCommonDataStore.h:380
AthMonitorAlgorithm::m_EventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.
Definition: AthMonitorAlgorithm.h:362
Trk::ResidualPull::Unbiased
@ Unbiased
RP with track state that has measurement not included.
Definition: ResidualPull.h:57
SCT::N_SIDES
constexpr unsigned int N_SIDES
Definition: SCT_ChipUtils.h:16
SCTHitEffMonAlg::m_insideOutOnly
BooleanProperty m_insideOutOnly
Definition: SCTHitEffMonAlg.h:108
SCTHitEffMonAlg::failCut
StatusCode failCut(bool value, const std::string &name) const
Definition: SCTHitEffMonAlg.cxx:233
SCTHitEffMonAlg::m_requireGuardRing
BooleanProperty m_requireGuardRing
Definition: SCTHitEffMonAlg.h:114
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
AthMonitorAlgorithm::m_toolLookupMap
std::unordered_map< std::string, size_t > m_toolLookupMap
Definition: AthMonitorAlgorithm.h:367
Trk::z0
@ z0
Definition: ParamDefs.h:70
AthMonitorAlgorithm::m_environment
AthMonitorAlgorithm::Environment_t m_environment
Instance of the Environment_t enum.
Definition: AthMonitorAlgorithm.h:350
athena.value
value
Definition: athena.py:122
SCT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: SCT_ID.h:728
cosmics
Definition: cosmics.py:1
SCT_Monitoring::BARREL_INDEX
@ BARREL_INDEX
Definition: SCT_MonitoringNumbers.h:19
AtlasDetectorID::is_trt
bool is_trt(Identifier id) const
Definition: AtlasDetectorID.h:782
SCT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: SCT_ID.h:740
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SCT_Monitoring::N_STRIPS
@ N_STRIPS
Definition: SCT_MonitoringNumbers.h:36
SCTHitEffMonAlg::m_trtId
const TRT_ID * m_trtId
Definition: SCTHitEffMonAlg.h:89
SCTHitEffMonAlg::m_requireOtherFace
BooleanProperty m_requireOtherFace
Definition: SCTHitEffMonAlg.h:113
SCTHitEffMonAlg::m_residualPullCalculator
ToolHandle< Trk::IResidualPullCalculator > m_residualPullCalculator
Definition: SCTHitEffMonAlg.h:81
SCT_ID::module_id
Identifier module_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
Definition: SCT_ID.h:416
AthMonitorAlgorithm::trigChainsArePassed
bool trigChainsArePassed(const std::vector< std::string > &vTrigNames) const
Check whether triggers are passed.
Definition: AthMonitorAlgorithm.cxx:194
AthMonitorAlgorithm::Environment_t::user
@ user
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
AthMonitorAlgorithm::m_dummy
const ToolHandle< GenericMonitoringTool > m_dummy
Definition: AthMonitorAlgorithm.h:369
SCT_ID::get_id
virtual int get_id(const IdentifierHash &hash_id, Identifier &id, const IdContext *context=0) const override final
Create compact id from hash id (return == 0 for OK)
Definition: SCT_ID.cxx:666
Trk::TrackStateOnSurface::Outlier
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
Definition: TrackStateOnSurface.h:122
SCTHitEffMonAlg::m_effdistcut
FloatProperty m_effdistcut
Definition: SCTHitEffMonAlg.h:102
TRT::Hit::side
@ side
Definition: HitInfo.h:83
SCT_Monitoring::ENDCAP_A_INDEX
@ ENDCAP_A_INDEX
Definition: SCT_MonitoringNumbers.h:19
SCTHitEffMonAlg::m_isCosmic
BooleanProperty m_isCosmic
Definition: SCTHitEffMonAlg.h:109
PixelByteStreamErrors::BCID
@ BCID
Definition: PixelByteStreamErrors.h:13
PyPoolBrowser.item
item
Definition: PyPoolBrowser.py:129
TileSynchronizeBch.online
online
Definition: TileSynchronizeBch.py:88
SCTHitEffMonAlg::m_minSCTHits
IntegerProperty m_minSCTHits
Definition: SCTHitEffMonAlg.h:92
SCT_Monitoring::N_BARRELS
@ N_BARRELS
Definition: SCT_MonitoringNumbers.h:43
SCTHitEffMonAlg::m_pixelId
const PixelID * m_pixelId
Definition: SCTHitEffMonAlg.h:87
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthMonitorAlgorithm::m_DQFilterTools
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Array of Data Quality filter tools.
Definition: AthMonitorAlgorithm.h:341
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SCTHitEffMonAlg::m_SCTDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
Definition: SCTHitEffMonAlg.h:77
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
sim_rttUpdate.user
def user
Definition: sim_rttUpdate.py:662
Trk::TrackStateOnSurface::Hole
@ Hole
A hole on the track - this is defined in the following way.
Definition: TrackStateOnSurface.h:128
lumiFormat.i
int i
Definition: lumiFormat.py:92
Trk::theta
@ theta
Definition: ParamDefs.h:72
AthMonitorAlgorithm::DataType_t::heavyIonCollisions
@ heavyIonCollisions
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AmgVector
AmgVector(4) T2BSTrackFilterTool
Definition: T2BSTrackFilterTool.cxx:114
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
tolower
void tolower(std::string &s)
Definition: AthenaSummarySvc.cxx:113
AthMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const =0
adds event to the monitoring histograms
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
BunchCrossingCondData::BunchCrossings
@ BunchCrossings
Distance in units of 25 nanoseconds.
Definition: BunchCrossingCondData.h:132
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
PixelAthClusterMonAlgCfg.zmax
zmax
Definition: PixelAthClusterMonAlgCfg.py:176
SCTHitEffMonAlg::m_sctId
const SCT_ID * m_sctId
Definition: SCTHitEffMonAlg.h:88
SCTHitEffMonAlg::m_holeSearchTool
ToolHandle< Trk::ITrackHoleSearchTool > m_holeSearchTool
Definition: SCTHitEffMonAlg.h:83
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SCT_ID::wafer_context
IdContext wafer_context(void) const
Definition: SCT_ID.h:705
SCT_ID::wafer_hash
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
Definition: SCT_ID.h:492
SCTHitEffMonAlg::findAnglesToWaferSurface
StatusCode findAnglesToWaferSurface(const Amg::Vector3D &mom, const Identifier id, const InDetDD::SiDetectorElementCollection *elements, double &theta, double &phi) const
Definition: SCTHitEffMonAlg.cxx:190
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
AthMonitorAlgorithm::fill
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.
SCT_Monitoring::N_LAYERS_TOTAL
@ N_LAYERS_TOTAL
Definition: SCT_MonitoringNumbers.h:45
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
SCTHitEffMonAlg::m_fieldCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Definition: SCTHitEffMonAlg.h:79
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
SCT_ID::get_other_side
int get_other_side(const IdentifierHash &id, IdentifierHash &other) const
Wafer hash on other side.
Definition: SCT_ID.cxx:435
SCT_Monitoring::ENDCAP_A
@ ENDCAP_A
Definition: SCT_MonitoringNumbers.h:21
InDet::SCT_Cluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SCT_Cluster.h:34
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
SCTHitEffMonAlg::m_useSCTorTRT
BooleanProperty m_useSCTorTRT
Definition: SCTHitEffMonAlg.h:111
MagField::AtlasFieldCache::solenoidOn
bool solenoidOn() const
status of the magnets
AthMonitorAlgorithm::m_dataType
AthMonitorAlgorithm::DataType_t m_dataType
Instance of the DataType_t enum.
Definition: AthMonitorAlgorithm.h:351
AthReentrantAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthReentrantAlgorithm.h:153
SCTHitEffMonAlg::m_minTRTHits
IntegerProperty m_minTRTHits
Definition: SCTHitEffMonAlg.h:93
min
#define min(a, b)
Definition: cfImp.cxx:40
BunchCrossingCondData::distanceFromFront
int distanceFromFront(const bcid_type bcid, const BunchDistanceType type=NanoSec) const
The distance of the specific bunch crossing from the front of the train.
Definition: BunchCrossingCondData.cxx:35
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
AthMonitorAlgorithm::DataType_t::cosmics
@ cosmics
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Trk::PrepRawData
Definition: PrepRawData.h:62
AthMonitorAlgorithm::m_tools
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
Definition: AthMonitorAlgorithm.h:338
AtlasDetectorID::print_to_string
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:655
AthMonitorAlgorithm::Environment_t::online
@ online
SCTHitEffMonAlg::m_comTimeName
SG::ReadHandleKey< ComTime > m_comTimeName
Definition: SCTHitEffMonAlg.h:76
SCTHitEffMonAlg::m_minPixelHits
IntegerProperty m_minPixelHits
Definition: SCTHitEffMonAlg.h:96
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
Trk::d0
@ d0
Definition: ParamDefs.h:69
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
AthMonitorAlgorithm::Environment_t::tier0ESD
@ tier0ESD
SCTHitEffMonAlg::m_vetoBadChips
BooleanProperty m_vetoBadChips
Definition: SCTHitEffMonAlg.h:115
SCTHitEffMonAlg::m_sctContainerName
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_sctContainerName
Definition: SCTHitEffMonAlg.h:74
AthMonitorAlgorithm::Environment_t::altprod
@ altprod
AthReentrantAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthReentrantAlgorithm.cxx:96
SCTHitEffMonAlg::previousChip
int previousChip(double xl, int side, bool swap) const
Definition: SCTHitEffMonAlg.cxx:221
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition: SCT_ID.h:734
SCT_Monitoring::ENDCAP_C
@ ENDCAP_C
Definition: SCT_MonitoringNumbers.h:21
AthMonitorAlgorithm::m_enforceExpressTriggers
Gaudi::Property< bool > m_enforceExpressTriggers
Definition: AthMonitorAlgorithm.h:372
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
item
Definition: ItemListSvc.h:43
SCTHitEffMonAlg::m_minOtherHits
IntegerProperty m_minOtherHits
Definition: SCTHitEffMonAlg.h:94
SCTHitEffMonAlg::getWaferIndex
int getWaferIndex(const int barrel_bc, const int layer_disk, const int side) const
Definition: SCTHitEffMonAlg.cxx:137
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: AthMonitorAlgorithm.cxx:18
Trk::TrackInfo::SiSPSeededFinder
@ SiSPSeededFinder
Tracks from SiSPSeedFinder.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:102
ATH_LIKELY
#define ATH_LIKELY(x)
Definition: AthUnlikelyMacros.h:16
a
TList * a
Definition: liststreamerinfos.cxx:10
SCT_Monitoring::N_CHIPS
@ N_CHIPS
Definition: SCT_MonitoringNumbers.h:37
CaloLCW_tf.group
group
Definition: CaloLCW_tf.py:28
h
SCTHitEffMonAlg::m_bunchCrossingKey
SG::ReadCondHandleKey< BunchCrossingCondData > m_bunchCrossingKey
Definition: SCTHitEffMonAlg.h:78
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
AthMonitorAlgorithm::DataType_t::collisions
@ collisions
SCT_Monitoring::N_DISKS
@ N_DISKS
Definition: SCT_MonitoringNumbers.h:44
AthMonitorAlgorithm::m_name
std::string m_name
Definition: AthMonitorAlgorithm.h:366
SCT_ID::eta_module
int eta_module(const Identifier &id) const
Definition: SCT_ID.h:746
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
SCTHitEffMonAlg::m_useTRTPhase
BooleanProperty m_useTRTPhase
Definition: SCTHitEffMonAlg.h:110
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: AthMonitorAlgorithm.cxx:7
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
BARREL
@ BARREL
Definition: TRTRadiatorParameters.h:10
SCTHitEffMonAlg::m_minPt
FloatProperty m_minPt
Definition: SCTHitEffMonAlg.h:101
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
SCTHitEffMonAlg::m_maxSiHoles
UnsignedIntegerProperty m_maxSiHoles
Definition: SCTHitEffMonAlg.h:106
SCT_ID::side
int side(const Identifier &id) const
Definition: SCT_ID.h:752
dqt_zlumi_alleff_HIST.eff
int eff
Definition: dqt_zlumi_alleff_HIST.py:113
str
Definition: BTagTrackIpAccessor.cxx:11
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
merge.status
status
Definition: merge.py:17
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
SCTHitEffMonAlg::m_TrackName
SG::ReadHandleKey< TrackCollection > m_TrackName
Definition: SCTHitEffMonAlg.h:75
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
Monitored::Scalar
Declare a monitored scalar variable.
Definition: MonitoredScalar.h:34
SCT_ID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
Definition: SCT_ID.h:464
AthMonitorAlgorithm::DataType_t::userDefined
@ userDefined
Trk::loc1
@ loc1
Definition: ParamDefs.h:40
IdContext
class IdContext
Definition: IdContext.h:34
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDetDD::SiDetectorElementCollection::getDetectorElement
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
Definition: SiDetectorElementCollection.cxx:15
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
SCTHitEffMonAlg::m_maxChi2
FloatProperty m_maxChi2
Definition: SCTHitEffMonAlg.h:99
SCTHitEffMonAlg::m_minSiHits
UnsignedIntegerProperty m_minSiHits
Definition: SCTHitEffMonAlg.h:105
AthMonitorAlgorithm::DataType_t::monteCarlo
@ monteCarlo
fitman.k
k
Definition: fitman.py:528
SCTHitEffMonAlg::m_configConditions
ToolHandle< ISCT_ConfigurationConditionsTool > m_configConditions
Definition: SCTHitEffMonAlg.h:84
ServiceHandle< ICondSvc >
collisions
Definition: collisions.py:1
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65