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

#include <SCTCalib.h>

Inheritance diagram for SCTCalib:
Collaboration diagram for SCTCalib:

Public Member Functions

 SCTCalib (const std::string &name, ISvcLocator *pSvcLocator)
 ~SCTCalib ()=default
virtual StatusCode initialize () override
virtual StatusCode execute (const EventContext &ctx) override
 Execute method.
virtual StatusCode stop ATLAS_NOT_THREAD_SAFE () override
virtual StatusCode finalize () override
 Finalize - delete any memory allocation from the heap.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
 Get filter decision:
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 Set filter decision:
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

virtual bool isReEntrant () const override final
 Legacy algorithms are not thread-safe.
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

enum  {
  nbins = 6*128 , firstStrip = 0 , lastStrip = nbins-1 , ntimeBins = 3 ,
  firstTimeBin = 0 , lastTimeBin = 2 , n_hitBins = 50 , first_hitBin = 0 ,
  last_hitBin = 50 , n_etaBins = 13 , first_etaBin = -6 , last_etaBin = 6 ,
  n_phiBins = 56 , first_phiBin = 0 , last_phiBin = 55 , n_barrels = 4 ,
  first_barrel = 0 , last_barrel = 3 , n_disks = 9 , first_disk = 0 ,
  last_disk = 8 , n_etaBinsEC = 3 , first_etaBinEC = 0 , last_etaBinEC = 2 ,
  n_phiBinsEC = 52 , first_phiBinEC = 0 , last_phiBinEC = 51
}
enum  {
  n_chipPerSide = 6 , n_chipPerModule = 12 , n_stripPerChip = 128 , n_etaInBarrel = 12 ,
  n_phiBinsB0 = 32 , n_phiBinsB1 = 40 , n_phiBinsB2 = 48 , n_phiBinsB3 = 56 ,
  n_phiBinsECShort = 40 , n_phiBinsECMiddle = 40 , n_phiBinsECOuter = 52 , n_elements =8176 ,
  n_BSErrorType = 15 , firstBSErrorType = 0 , lastBSErrorType = 14
}
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode prepareHV ()
void doHVPrintXML (const std::pair< int, int > &timeInterval, const std::pair< int, int > &lbRange, Identifier)
 doHVPrintXML() Prints XML file for hv modules
bool notEnoughStatistics (const int required, const int obtained, const std::string &histogramName="HIST") const
StatusCode getNoisyStrip ATLAS_NOT_THREAD_SAFE ()
StatusCode getDeadStrip ATLAS_NOT_THREAD_SAFE ()
StatusCode getNoiseOccupancy ATLAS_NOT_THREAD_SAFE ()
StatusCode getRawOccupancy ATLAS_NOT_THREAD_SAFE ()
StatusCode getEfficiency ATLAS_NOT_THREAD_SAFE ()
StatusCode getBSErrors ATLAS_NOT_THREAD_SAFE ()
StatusCode getLorentzAngle ATLAS_NOT_THREAD_SAFE ()
StatusCode openXML4DB (std::ofstream &, std::string_view, std::string_view, const IOVTime &, const IOVTime &) const
StatusCode closeXML4DB (std::ofstream &) const
StatusCode addToXML4DB (std::ofstream &, const Identifier &, std::string_view, float, std::string_view) const
StatusCode openXML4MonSummary (std::ofstream &, std::string_view) const
StatusCode openXML4DeadSummary (std::ofstream &file, std::string_view type, int n_Module=0, int n_Link=0, int n_Chip=0, int n_Strip=0) const
StatusCode wrapUpXML4Summary (std::ofstream &, std::string_view, std::ostringstream &) const
StatusCode addToSummaryStr (std::ostringstream &, const Identifier &, std::string_view, std::string_view, std::string_view) const
template<class S>
bool retrievedService (S &service) const
std::string xmlChannelNoiseOccDataString (const Identifier &waferId, const float occupancy, const SCT_SerialNumber &serial) const
std::string xmlChannelEfficiencyDataString (const Identifier &waferId, const float efficiency, const SCT_SerialNumber &serial, const int side) const
std::string xmlChannelEfficiencyDataStringChip (const Identifier &waferId, const float efficiency, const float efficiency_bcid, const SCT_SerialNumber &serial, const int side, const int chip) const
std::pair< int, bool > getNumNoisyStrips (const Identifier &waferId) const
StatusCode addStripsToList (const EventContext &ctx, Identifier &waferId, std::set< Identifier > &stripIdList, bool isNoisy, bool isNew) const
StatusCode writeModuleListToCool ATLAS_NOT_THREAD_SAFE (const std::map< Identifier, std::set< Identifier > > &moduleListAll, const std::map< Identifier, std::set< Identifier > > &moduleListNew, const std::map< Identifier, std::set< Identifier > > &moduleListRef)
std::string getStripList (const std::set< Identifier > &stripIdList) const
std::set< IdentifiergetOverlapStripList (const std::set< Identifier > &stripAllIdList, const std::set< Identifier > &stripRefIdList) const
StatusCode noisyStripsToXml (const std::map< Identifier, std::set< Identifier > > &moduleList, const std::string &badStripsFile) const
StatusCode noisyStripsToSummaryXml (const std::map< Identifier, std::set< Identifier > > &moduleListAll, const std::map< Identifier, std::set< Identifier > > &moduleListRef, const std::string &badStripsFile) const
std::set< int > getNoisyChips (const std::set< Identifier > &stripIdList) const
std::pair< std::string, float > getNoisyLB (const Identifier &moduleId, int &chipId) const
std::string getLBList (const std::set< int > &LBList) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

const SCT_IDm_pSCTHelper {nullptr}
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
ToolHandle< SCTCalibWriteToolm_pCalibWriteTool {this, "SCTCalibWriteTool", "SCTCalibWriteTool", "Tool to write out data from calibration loop"}
ToolHandle< ISCT_ConfigurationConditionsToolm_ConfigurationConditionsTool {this, "SCT_ConfigurationConditionsTool", "SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool", "Tool to retrieve SCT Configuration"}
ToolHandle< ISCT_ReadCalibDataToolm_ReadCalibDataTool {this, "SCT_ReadCalibDataTool", "SCT_ReadCalibDataTool/InDetSCT_ReadCalibDataTool", "Tool to retrieve SCT calibration data"}
ToolHandle< ISCT_DetectorLevelConditionsToolm_MajorityConditionsTool {this, "SCT_MajorityConditionsTool", "SCT_MajorityConditionsTool", "Tool to retrieve the majority conditions of SCT"}
ToolHandle< ISCT_CablingToolm_CablingTool {this, "SCT_CablingTool", "SCT_CablingTool", "Tool to retrieve SCT Cabling"}
ToolHandle< ISCT_CalibHistoToolm_calibHitmapTool {this, "SCT_CalibHitmapTool", "SCT_CalibHitmapTool", "Tool for reading and writing HitMap histograms"}
ToolHandle< ISCT_CalibHistoToolm_calibLbTool {this, "SCT_CalibLbTool", "SCT_CalibLbTool", "Tool for reading and writing Lb dependent HitMap histograms"}
ToolHandle< ISCT_CalibHistoToolm_calibBsErrTool {this, "SCT_CalibBsErrorTool", "SCT_CalibBsErrorTool", "Tool for reading and writing BS error histograms"}
ToolHandle< ISCT_CalibModuleListToolm_calibModuleListTool {this, "SCT_CalibModuleListTool", "SCT_CalibModuleListTool", "Tool for handling list of modules"}
ToolHandle< ISCT_CalibEvtInfom_calibEvtInfoTool {this, "SCT_CalibEventInfo", "SCT_CalibEventInfo", "Tool for handling event info"}
std::vector< std::vector< std::pair< int, int > > > m_summarytrips
std::vector< std::vector< std::pair< int, int > > > m_summarytripslb
std::ofstream m_gofile
std::ofstream m_outDeadStrips
std::ofstream m_outDeadChips
std::ofstream m_outDeadSummary
std::ofstream m_outNOSummary
std::ofstream m_outROSummary
std::ofstream m_outEffSummary
std::ofstream m_outBSErrSummary
std::ofstream m_outBSErrModule
std::ofstream m_outLASummary
IntegerProperty m_runNumber {this, "RunNumber", -1}
IntegerProperty m_eventNumber {this, "EventNumber", -1}
StringProperty m_runStartTime {this, "RunStartTime", "", "from runInfo.txt"}
StringProperty m_runEndTime {this, "RunEndTime", "", "from runInfo.txt"}
StringProperty m_LBMax {this, "LBMax", "1000", "from runInfo.txt"}
BooleanProperty m_useConfiguration {this, "UseConfiguration", true}
BooleanProperty m_useCalibration {this, "UseCalibration", true}
BooleanProperty m_useMajority {this, "UseMajority", true}
BooleanProperty m_useBSError {this, "UseBSError", false}
StringArrayProperty m_input_hist {this, "InputHist", {}, "list of HIST (assuming 1 file)"}
BooleanProperty m_readBS {this, "ReadBS", false, "True if BS is used"}
BooleanProperty m_histBefore2010 {this, "HistBefore2010", false, "True if HIST is from 2009 or earlier"}
BooleanProperty m_doHitMaps {this, "DoHitMaps", true}
BooleanProperty m_doHitMapsLB {this, "DoHitMapsLB", true}
IntegerProperty m_nLbsMerged {this, "LbsPerWindow", 30}
BooleanProperty m_readHitMaps {this, "ReadHitMaps", false}
BooleanProperty m_doBSErrors {this, "DoBSErrors", false}
BooleanProperty m_doNoisyStrip {this, "DoNoisyStrip", true}
BooleanProperty m_doHV {this, "DoHV", false}
BooleanProperty m_doDeadStrip {this, "DoDeadStrip", false}
BooleanProperty m_doDeadChip {this, "DoDeadChip", false}
BooleanProperty m_doNoiseOccupancy {this, "DoNoiseOccupancy", false}
BooleanProperty m_doRawOccupancy {this, "DoRawOccupancy", false}
BooleanProperty m_doEfficiency {this, "DoEfficiency", false}
BooleanProperty m_doBSErrorDB {this, "DoBSErrorDB", false}
BooleanProperty m_doLorentzAngle {this, "DoLorentzAngle", false}
BooleanProperty m_writeToCool {this, "WriteToCool", true}
BooleanProperty m_noisyUpdate {this, "NoisyUpdate", true}
BooleanProperty m_noisyWriteAllModules {this, "NoisyWriteAllModules", true}
BooleanProperty m_noisyUploadTest {this, "NoisyUploadTest", true}
FloatProperty m_noisyModuleAverageInDB {this, "NoisyModuleAverageInDB", -1., "Average number of modules with at least 1 noisy strip in COOL"}
IntegerProperty m_noisyStripLastRunInDB {this, "NoisyStripLastRunInDB", -999, "Number of noisy strips of the last run uploaded to COOL"}
FloatProperty m_noisyStripAverageInDB {this, "NoisyStripAverageInDB", -999., "Number of noisy strips of the last run uploaded to COOL"}
IntegerProperty m_noisyModuleList {this, "NoisyModuleList", 200}
FloatProperty m_noisyModuleDiff {this, "NoisyModuleDiff", 0.200}
FloatProperty m_noisyStripDiff {this, "NoisyStripDiff", 128.}
UnsignedIntegerProperty m_noisyMinStat {this, "NoisyMinStat", 50000}
BooleanProperty m_noisyStripAll {this, "NoisyStripAll", true}
BooleanProperty m_noisyStripThrDef {this, "NoisyStripThrDef", true}
FloatProperty m_noisyStripThrOffline {this, "NoisyStripThrOffline", 1.500E-2}
FloatProperty m_noisyStripThrOnline {this, "NoisyStripThrOnline", 1.500E-3}
BooleanProperty m_noisyWaferFinder {this, "NoisyWaferFinder", true}
BooleanProperty m_noisyWaferWrite {this, "NoisyWaferWrite", true}
BooleanProperty m_noisyWaferAllStrips {this, "NoisyWaferAllStrips", true}
FloatProperty m_noisyWaferThrBarrel {this, "NoisyWaferThrBarrel", 1.000E-4}
FloatProperty m_noisyWaferThrECA {this, "NoisyWaferThrECA", 1.000E-4}
FloatProperty m_noisyWaferThrECC {this, "NoisyWaferThrECC", 1.000E-4}
FloatProperty m_noisyWaferFraction {this, "NoisyWaferFraction", 0.500}
FloatProperty m_noisyChipFraction {this, "NoisyChipFraction", 0.500}
IntegerProperty m_maxtbins {this, "HVBinWidth", 5}
UnsignedIntegerProperty m_deadStripMinStat {this, "DeadStripMinStat", 200000}
UnsignedIntegerProperty m_deadStripMinStatBusy {this, "DeadStripMinStatBusy", 1600000}
UnsignedIntegerProperty m_deadChipMinStat {this, "DeadChipMinStat", 200000}
UnsignedIntegerProperty m_deadStripSignificance {this, "DeadStripSignificance", 10}
UnsignedIntegerProperty m_deadChipSignificance {this, "DeadChipSignificance", 10}
FloatProperty m_busyThr4DeadFinding {this, "BusyThr4DeadFinding", 1E-4}
FloatProperty m_noisyThr4DeadFinding {this, "NoisyThr4DeadFinding", 1.500E-3}
BooleanProperty m_deadChipUploadTest {this, "DeadChipUploadTest", true}
BooleanProperty m_deadStripUploadTest {this, "DeadStripUploadTest", true}
BooleanProperty m_deadNotQuiet {this, "DeadNotQuiet", true}
FloatProperty m_quietThresholdStrip {this, "QuietThresholdStrip", 0.5}
FloatProperty m_quietThresholdChip {this, "QuietThresholdChip", 0.5}
BooleanProperty m_noiseOccupancyTriggerAware {this, "NoiseOccupancyTriggerAware", true}
UnsignedIntegerProperty m_noiseOccupancyMinStat {this, "NoiseOccupancyMinStat", 50000}
UnsignedIntegerProperty m_rawOccupancyMinStat {this, "RawOccupancyMinStat", 50000}
UnsignedIntegerProperty m_efficiencyMinStat {this, "EfficiencyMinStat", 50000}
BooleanProperty m_efficiencyDoChips {this, "EfficiencyDoChips", true}
UnsignedIntegerProperty m_BSErrorDBMinStat {this, "BSErrorDBMinStat", 50000}
UnsignedIntegerProperty m_LorentzAngleMinStat {this, "LorentzAngleMinStat", 50000}
BooleanProperty m_LorentzAngleDebugMode {this, "LorentzAngleDebugMode", true}
StringProperty m_tagID4NoisyStrips {this, "TagID4NoisyStrips", "SctDerivedMonitoring-001-00"}
StringProperty m_tagID4DeadStrips {this, "TagID4DeadStrips", "SctDerivedDeadStrips-001-00"}
StringProperty m_tagID4DeadChips {this, "TagID4DeadChips", "SctDerivedDeadChips-001-00"}
StringProperty m_tagID4NoiseOccupancy {this, "TagID4NoiseOccupancy", "SctDerivedNoiseOccupancy-001-00"}
StringProperty m_badStripsAllFile {this, "BadStripsAllFile", "BadStripsAllFile.xml", "Output XML for all noisy strips"}
StringProperty m_badStripsNewFile {this, "BadStripsNewFile", "BadStripsNewFile.xml", "Output XML for newly found noisy strips (i.e. not in config/calib data)"}
StringProperty m_badStripsSummaryFile {this, "BadStripsSummaryFile", "BadStripsSummaryFile.xml", "Output XML for summary info from noisy strip search"}
StringProperty m_badModulesFile {this, "BadModulesFile", "BadModulesFile.xml", "Output XML for HV trips"}
StringProperty m_deadStripsFile {this, "DeadStripsFile", "DeadStripsFile.xml", "Output XML for dead strips"}
StringProperty m_deadChipsFile {this, "DeadChipsFile", "DeadChipsFile.xml", "Output XML for dead chips"}
StringProperty m_deadSummaryFile {this, "DeadSummaryFile", "DeadSummaryFile.xml", "Output XML for summary of Dead Finding"}
StringProperty m_noiseOccupancyFile {this, "NoiseOccupancyFile", "NoiseOccupancyFile.xml", "Output XML for noise occupancy"}
StringProperty m_noiseOccupancySummaryFile {this, "NoiseOccupancySummaryFile", "NoiseOccupancySummaryFile.xml", "Output XML for summary of noise occupancy"}
StringProperty m_rawOccupancySummaryFile {this,"RawOccupancySummaryFile", "RawOccupancySummaryFile.xml", "Output XML for summary of raw occupancy"}
StringProperty m_efficiencySummaryFile {this, "EfficiencySummaryFile", "EfficiencySummaryFile.xml", "Output XML for summary of efficiency"}
StringProperty m_efficiencyModuleFile {this, "EfficiencyModuleFile", "EfficiencyModuleSummary.xml", "Output XML for efficiency"}
StringProperty m_efficiencyChipFile {this, "EfficiencyChipFile", "EfficiencyChipSummary.xml", "Output XML for chip efficiency"}
StringProperty m_BSErrorSummaryFile {this, "BSErrorSummaryFile", "BSErrorSummaryFile.xml", "Output XML for summary of BS Errors"}
StringProperty m_BSErrorModuleFile {this, "BSErrorModuleFile", "BSErrorModuleSummary.xml", "Output XML for summary of BS Errors"}
StringProperty m_LorentzAngleFile {this, "LorentzAngleFile", "LorentzAngleFile.xml", "Output XML for noise occupancy"}
StringProperty m_LorentzAngleSummaryFile {this, "LorentzAngleSummaryFile", "LorentzAngleSummaryFile.xml", "Output XML for summary of lorentz angle"}
int m_numOfLBsProcessed {0}
unsigned long long m_numberOfEvents {0}
unsigned long long m_numberOfEventsHist {0}
std::string m_utcBegin
std::string m_utcEnd
int m_LBRange {-999}
IOVTime m_iovStart
IOVTime m_iovStop
TFile * m_inputHist {nullptr}
bool m_readHIST
std::vector< TProfile2D * > m_pnoiseoccupancymapHistoVector
std::vector< TProfile2D * > m_pnoiseoccupancymapHistoVectorECp
std::vector< TProfile2D * > m_pnoiseoccupancymapHistoVectorECm
std::vector< TProfile * > m_h_phiVsNstripsSideHistoVector
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 66 of file SCTCalib.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
nbins 
firstStrip 
lastStrip 
ntimeBins 
firstTimeBin 
lastTimeBin 
n_hitBins 
first_hitBin 
last_hitBin 
n_etaBins 
first_etaBin 
last_etaBin 
n_phiBins 
first_phiBin 
last_phiBin 
n_barrels 
first_barrel 
last_barrel 
n_disks 
first_disk 
last_disk 
n_etaBinsEC 
first_etaBinEC 
last_etaBinEC 
n_phiBinsEC 
first_phiBinEC 
last_phiBinEC 

Definition at line 78 of file SCTCalib.h.

78 { nbins = 6*128, firstStrip = 0, lastStrip = nbins-1,
80 n_hitBins = 50, first_hitBin = 0, last_hitBin = 50,
81 n_etaBins = 13, first_etaBin = -6, last_etaBin = 6,
82 n_phiBins = 56, first_phiBin = 0, last_phiBin = 55,
84 n_disks = 9, first_disk = 0, last_disk = 8,
87 };
@ first_etaBinEC
Definition SCTCalib.h:85
@ first_phiBin
Definition SCTCalib.h:82
@ last_etaBinEC
Definition SCTCalib.h:85
@ n_disks
Definition SCTCalib.h:84
@ first_phiBinEC
Definition SCTCalib.h:86
@ last_disk
Definition SCTCalib.h:84
@ first_hitBin
Definition SCTCalib.h:80
@ first_barrel
Definition SCTCalib.h:83
@ n_etaBins
Definition SCTCalib.h:81
@ n_phiBinsEC
Definition SCTCalib.h:86
@ ntimeBins
Definition SCTCalib.h:79
@ last_phiBinEC
Definition SCTCalib.h:86
@ lastStrip
Definition SCTCalib.h:78
@ n_barrels
Definition SCTCalib.h:83
@ lastTimeBin
Definition SCTCalib.h:79
@ firstStrip
Definition SCTCalib.h:78
@ n_hitBins
Definition SCTCalib.h:80
@ last_hitBin
Definition SCTCalib.h:80
@ first_etaBin
Definition SCTCalib.h:81
@ last_etaBin
Definition SCTCalib.h:81
@ last_phiBin
Definition SCTCalib.h:82
@ n_phiBins
Definition SCTCalib.h:82
@ firstTimeBin
Definition SCTCalib.h:79
@ n_etaBinsEC
Definition SCTCalib.h:85
@ last_barrel
Definition SCTCalib.h:83
@ first_disk
Definition SCTCalib.h:84

◆ anonymous enum

anonymous enum
private
Enumerator
n_chipPerSide 
n_chipPerModule 
n_stripPerChip 
n_etaInBarrel 
n_phiBinsB0 
n_phiBinsB1 
n_phiBinsB2 
n_phiBinsB3 
n_phiBinsECShort 
n_phiBinsECMiddle 
n_phiBinsECOuter 
n_elements 
n_BSErrorType 
firstBSErrorType 
lastBSErrorType 

Definition at line 90 of file SCTCalib.h.

91 n_phiBinsB0 = 32, n_phiBinsB1 = 40, n_phiBinsB2 = 48, n_phiBinsB3 = 56,
94 };
@ n_stripPerChip
Definition SCTCalib.h:90
@ n_phiBinsECMiddle
Definition SCTCalib.h:92
@ n_phiBinsB3
Definition SCTCalib.h:91
@ firstBSErrorType
Definition SCTCalib.h:93
@ n_phiBinsB1
Definition SCTCalib.h:91
@ n_phiBinsB0
Definition SCTCalib.h:91
@ n_BSErrorType
Definition SCTCalib.h:93
@ n_phiBinsECShort
Definition SCTCalib.h:92
@ n_etaInBarrel
Definition SCTCalib.h:90
@ n_elements
Definition SCTCalib.h:92
@ n_phiBinsECOuter
Definition SCTCalib.h:92
@ n_chipPerSide
Definition SCTCalib.h:90
@ n_chipPerModule
Definition SCTCalib.h:90
@ lastBSErrorType
Definition SCTCalib.h:93
@ n_phiBinsB2
Definition SCTCalib.h:91

Constructor & Destructor Documentation

◆ SCTCalib()

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

Definition at line 113 of file SCTCalib.cxx.

113 :
114 AthAlgorithm(name, pSvcLocator)
115{
117}
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
BooleanProperty m_doNoiseOccupancy
Definition SCTCalib.h:155
BooleanProperty m_doBSErrorDB
Definition SCTCalib.h:158
BooleanProperty m_doRawOccupancy
Definition SCTCalib.h:156
BooleanProperty m_doEfficiency
Definition SCTCalib.h:157
BooleanProperty m_doLorentzAngle
Definition SCTCalib.h:159
bool m_readHIST
Definition SCTCalib.h:249

◆ ~SCTCalib()

SCTCalib::~SCTCalib ( )
default

Member Function Documentation

◆ addStripsToList()

StatusCode SCTCalib::addStripsToList ( const EventContext & ctx,
Identifier & waferId,
std::set< Identifier > & stripIdList,
bool isNoisy,
bool isNew ) const
private

Definition at line 2747 of file SCTCalib.cxx.

2747 {
2748 IdentifierHash waferHash{m_pSCTHelper->wafer_hash(waferId)};
2750 for (int iStrip{0}; iStrip != nbins; ++iStrip) {
2751 Identifier stripId{m_pSCTHelper->strip_id(waferId, iStrip)};
2752 if (!isNoisy) { //--- Add all strips
2753 stripIdList.insert(stripId);
2754 } else {
2755 const float stripOccupancy{ (float) m_calibHitmapTool->getBinForHistogramIndex(iStrip + 1, waferHash.value()) / m_numberOfEvents};
2756 if (stripOccupancy > noisyStripThr) {
2757 if (!isNew) { //--- All noisy strips
2758 stripIdList.insert(stripId);
2759 } else { //--- New noisy strips : compared with configuration and calibration
2760 const bool isGoodInConfiguration{m_useConfiguration ? m_ConfigurationConditionsTool->isGood(stripId, ctx, InDetConditions::SCT_STRIP) : true};
2761 const bool isGoodInCalibration{m_useCalibration ? m_ReadCalibDataTool->isGood(stripId, ctx, InDetConditions::SCT_STRIP) : true};
2763 if (isGoodInConfiguration and isGoodInCalibration) {
2764 stripIdList.insert(stripId);
2765 }
2766 }
2767 }
2768 }
2769 }
2770 }
2771 return StatusCode::SUCCESS;
2772}
constexpr value_type value() const
FloatProperty m_noisyStripThrOffline
Definition SCTCalib.h:175
ToolHandle< ISCT_ReadCalibDataTool > m_ReadCalibDataTool
Definition SCTCalib.h:101
ToolHandle< ISCT_ConfigurationConditionsTool > m_ConfigurationConditionsTool
Definition SCTCalib.h:100
ToolHandle< ISCT_CalibHistoTool > m_calibHitmapTool
Definition SCTCalib.h:104
const SCT_ID * m_pSCTHelper
Definition SCTCalib.h:96
FloatProperty m_noisyStripThrOnline
Definition SCTCalib.h:176
BooleanProperty m_noisyStripThrDef
Definition SCTCalib.h:174
unsigned long long m_numberOfEvents
Definition SCTCalib.h:239
BooleanProperty m_useCalibration
Definition SCTCalib.h:137
BooleanProperty m_useConfiguration
Definition SCTCalib.h:136

◆ addToSummaryStr()

StatusCode SCTCalib::addToSummaryStr ( std::ostringstream & list,
const Identifier & waferId,
std::string_view type,
std::string_view stripId,
std::string_view chipId ) const
private

Definition at line 2617 of file SCTCalib.cxx.

2617 {
2618 //--- Remove first&end spaces in DefectList
2619 const std::string tmpstrip{stripId};
2620 const std::string tmpchip{chipId};
2621 int len_strip{static_cast<int>(tmpstrip.length())};
2622 int len_chip{static_cast<int>(tmpchip.length())};
2623 std::string stripList{""};
2624 std::string chipList{""};
2625 if (len_strip > 0) {
2626 int stringLength = (len_strip-2 >0) ? len_strip-2 : len_strip;
2627 stripList = tmpstrip.substr(1, stringLength);
2628 }
2629 if (len_chip > 0) {
2630 int stringLength = (len_chip-2 >0) ? len_chip-2 : len_chip;
2631 chipList = tmpchip.substr(1, stringLength);
2632 }
2633 //--- Identifier/SN
2634 IdentifierHash waferHash{m_pSCTHelper->wafer_hash(waferId)};
2635 SCT_SerialNumber sn{m_CablingTool->getSerialNumberFromHash(waferHash)};
2636 //--- Preparing linkList
2637 std::string linkList{chipList2LinkList(stripList)};
2638 //--- Push to summary stream
2639 XmlStreamer m{"module", list};
2640 {
2641 XmlStreamer v{"value", "name", "SN", list};
2642 list << sn.str();
2643 }
2644 {
2645 XmlStreamer v{"value", "name", "BecLayerPhiEta", list};
2646 list << formatPosition(waferId, m_pSCTHelper, ".", false);
2647 }
2648 {
2649 XmlStreamer v{"value", "name", "LinkID", list};
2650 list << linkList;
2651 }
2652 {
2653 XmlStreamer v{"value", "name", "ChipID", list};
2654 list << stripList;
2655 }
2656 if (type == "DEAD") {
2657 XmlStreamer v{"value", "name", "StripIDOnline", list};
2658 list << stripList;
2659 } else {
2660 ATH_MSG_ERROR("in addToSummaryStr : argument \"type\" needs to be \"DEAD\".");
2661 return StatusCode::FAILURE;
2662 }
2663
2664 return StatusCode::SUCCESS;
2665}
#define ATH_MSG_ERROR(x)
ToolHandle< ISCT_CablingTool > m_CablingTool
Definition SCTCalib.h:103
std::string str() const
Full serial number as a string.
std::string formatPosition(const Identifier &waferId, const SCT_ID *helper, std::string_view delimiter, const bool includeSide)
std::string chipList2LinkList(const std::string &chipList)
list(name, path='/')
Definition histSizes.py:38

◆ addToXML4DB()

StatusCode SCTCalib::addToXML4DB ( std::ofstream & file,
const Identifier & waferId,
std::string_view DefectType,
float Threshold,
std::string_view DefectList ) const
private

Definition at line 2491 of file SCTCalib.cxx.

2491 {
2492 std::string tmp{DefectList};
2493 int length{static_cast<int>(tmp.length())};
2494 std::string Defect4DB{tmp.substr(1, length-2)}; // Removing first&end spaces in DefectList
2495
2496 file << xmlOpenChannel(m_pSCTHelper->module_id(waferId).get_identifier32().get_compact(), m_iovStart.re_time(), m_iovStop.re_time()) << linefeed
2497 << xmlValue("SampleSize", "10000") << linefeed
2498 << xmlValue("BarrelEndcap", m_pSCTHelper->barrel_ec(waferId)) << linefeed
2499 << xmlValue("Layer", m_pSCTHelper->layer_disk(waferId)) << linefeed
2500 << xmlValue("Eta", m_pSCTHelper->eta_module(waferId)) << linefeed
2501 << xmlValue("Phi", m_pSCTHelper->phi_module(waferId)) << linefeed
2502 << xmlValue("DefectType", DefectType) << linefeed
2503 << xmlValue("Threshold", Threshold) << linefeed
2504 << xmlValue("DefectList", std::move(Defect4DB)) << linefeed
2505 << xmlCloseChannel() << lineFeed;
2506
2507 return StatusCode::SUCCESS;
2508}
double length(const pvec &v)
Threshold
IOVTime m_iovStart
Definition SCTCalib.h:244
IOVTime m_iovStop
Definition SCTCalib.h:245
std::string xmlCloseChannel()
std::string xmlValue(std::string_view name, const T value)
std::string xmlOpenChannel(const long id, const T since, const T until)
TFile * file

◆ ATLAS_NOT_THREAD_SAFE() [1/9]

StatusCode getLorentzAngle SCTCalib::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [2/9]

StatusCode getBSErrors SCTCalib::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [3/9]

StatusCode getEfficiency SCTCalib::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [4/9]

StatusCode getRawOccupancy SCTCalib::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [5/9]

StatusCode getNoiseOccupancy SCTCalib::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [6/9]

StatusCode getDeadStrip SCTCalib::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [7/9]

StatusCode getNoisyStrip SCTCalib::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [8/9]

virtual StatusCode stop SCTCalib::ATLAS_NOT_THREAD_SAFE ( )
overridevirtual

◆ ATLAS_NOT_THREAD_SAFE() [9/9]

StatusCode writeModuleListToCool SCTCalib::ATLAS_NOT_THREAD_SAFE ( const std::map< Identifier, std::set< Identifier > > & moduleListAll,
const std::map< Identifier, std::set< Identifier > > & moduleListNew,
const std::map< Identifier, std::set< Identifier > > & moduleListRef )
private

◆ closeXML4DB()

StatusCode SCTCalib::closeXML4DB ( std::ofstream & file) const
private

Definition at line 2480 of file SCTCalib.cxx.

2480 {
2481 file << "</channels>" << lineFeed;
2482 if (file.is_open()) {
2483 file.close();
2484 return StatusCode::SUCCESS;
2485 } else {
2486 return StatusCode::FAILURE;
2487 }
2488}

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

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

Definition at line 145 of file AthCommonDataStore.h.

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

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

◆ doHVPrintXML()

void SCTCalib::doHVPrintXML ( const std::pair< int, int > & timeInterval,
const std::pair< int, int > & lbRange,
Identifier waferId )
private

doHVPrintXML() Prints XML file for hv modules

Definition at line 470 of file SCTCalib.cxx.

470 {
471 const IdentifierHash waferHash{m_pSCTHelper->wafer_hash(waferId)};
472 const SCT_SerialNumber sn{m_CablingTool->getSerialNumberFromHash(waferHash)};
473
474 XmlStreamer mod{"module", m_gofile};
475 {
476 XmlStreamer v{"value", "name", "SN", m_gofile};
477 m_gofile << sn.str();
478 }
479 {
480 XmlStreamer v{"value", "name", "BecLayerPhiEta", m_gofile};
481 m_gofile << formatPosition(waferId, m_pSCTHelper, ".", false);
482 }
483 {
484 XmlStreamer v{"value", "name", "StartTime", m_gofile};
485 m_gofile << timeInterval.first;
486 }
487 {
488 XmlStreamer v{"value", "name", "EndTime", m_gofile};
489 m_gofile << timeInterval.second;
490 }
491 {
492 XmlStreamer v{"value", "name", "StartLBN", m_gofile};
493 m_gofile << lbRange.first;
494 }
495 {
496 XmlStreamer v{"value", "name", "EndLBN", m_gofile};
497 m_gofile << lbRange.second;
498 }
499}
std::ofstream m_gofile
Definition SCTCalib.h:115

◆ evtStore()

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

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

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode SCTCalib::execute ( const EventContext & ctx)
overridevirtual

Execute method.

Implements AthAlgorithm.

Definition at line 295 of file SCTCalib.cxx.

295 {
296
297 ATH_MSG_DEBUG("----- in execute() ----- ");
298
299 const bool majorityIsGoodOrUnused{(m_useMajority and m_MajorityConditionsTool->isGood(ctx)) or !m_useMajority};
300 if (m_readBS) {
301 //--- TimeStamp/LB range analyzed
302 const int timeStamp{static_cast<int>(ctx.eventID().time_stamp())};
303 const int lumiBlock{static_cast<int>(ctx.eventID().lumi_block())};
304 int timeStampBeginOld;
305 int timeStampEndOld;
306 m_calibEvtInfoTool->getTimeStamps(timeStampBeginOld, timeStampEndOld);
307 m_calibEvtInfoTool->setTimeStamp(std::min(timeStamp, timeStampBeginOld), std::max(timeStamp, timeStampEndOld));
308 int lbBeginOld;
309 int lbEndOld;
310 m_calibEvtInfoTool->getLumiBlock(lbBeginOld, lbEndOld);
311 m_calibEvtInfoTool->setLumiBlock(std::min(lumiBlock, lbBeginOld), std::max(lumiBlock, lbEndOld));
312 m_calibEvtInfoTool->setLumiBlock(lumiBlock);
313 m_calibEvtInfoTool->setTimeStamp(timeStamp);
314 if (m_doHitMapsLB and majorityIsGoodOrUnused) {
315 m_calibLbTool->setLb(ctx.eventID().lumi_block());
316 }
317 }
318
319 //--- Fill histograms for (1) Number of events and (2) Hitmaps
320 if (m_doHitMaps and majorityIsGoodOrUnused) m_calibHitmapTool->fill(m_readBS);
321
322 //--- Fill histograms for (1) Number of events and (2) Hits as a function of LB
323 if (m_doHitMapsLB and majorityIsGoodOrUnused) {
324 m_calibLbTool->fill(m_readBS);
325 }
326
327 //--- Fill histograms for (1) Number of events and (2) BSErrors
329
330 //--- Increment event counter : to be ready for the next event loop
331 m_calibEvtInfoTool->incrementCounter();
332
333 ATH_MSG_DEBUG("----- end of execute() ----- ");
334
335 return StatusCode::SUCCESS;
336}
#define ATH_MSG_DEBUG(x)
ToolHandle< ISCT_CalibHistoTool > m_calibBsErrTool
Definition SCTCalib.h:106
ToolHandle< ISCT_CalibEvtInfo > m_calibEvtInfoTool
Definition SCTCalib.h:108
BooleanProperty m_useMajority
Definition SCTCalib.h:138
ToolHandle< ISCT_CalibHistoTool > m_calibLbTool
Definition SCTCalib.h:105
ToolHandle< ISCT_DetectorLevelConditionsTool > m_MajorityConditionsTool
Definition SCTCalib.h:102
BooleanProperty m_doBSErrors
Definition SCTCalib.h:150
BooleanProperty m_doHitMaps
Definition SCTCalib.h:146
BooleanProperty m_doHitMapsLB
Definition SCTCalib.h:147
BooleanProperty m_readBS
Definition SCTCalib.h:143
setEventNumber timeStamp
setTeId lumiBlock

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

Return the list of extra output dependencies.

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

Definition at line 89 of file AthCommonAlgorithm.cxx.

54{
55 // If we didn't find any symlinks to add, just return the collection
56 // from the base class. Otherwise, return the extended collection.
57 if (!m_extendedExtraObjects.empty()) {
59 }
61}
Common base class for algorithms.

◆ filterPassed()

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

Get filter decision:

Definition at line 93 of file AthCommonAlgorithm.h.

93 {
94 return execState( ctx ).filterPassed();
95 }
virtual bool filterPassed(const EventContext &ctx) const
Get filter decision:

◆ finalize()

StatusCode SCTCalib::finalize ( )
overridevirtual

Finalize - delete any memory allocation from the heap.

Definition at line 452 of file SCTCalib.cxx.

452 {
453 ATH_MSG_INFO("----- in finalize() ----- ");
454
455 if (m_writeToCool) {
456 if (!m_pCalibWriteTool.release().isSuccess()) {
457 ATH_MSG_ERROR("Failed to release m_pCalibWriteTool");
458 return StatusCode::FAILURE;
459 }
460 }
461
462 return StatusCode::SUCCESS;
463}
#define ATH_MSG_INFO(x)
BooleanProperty m_writeToCool
Definition SCTCalib.h:160
ToolHandle< SCTCalibWriteTool > m_pCalibWriteTool
Definition SCTCalib.h:99

◆ getLBList()

std::string SCTCalib::getLBList ( const std::set< int > & LBList) const
private

Definition at line 3252 of file SCTCalib.cxx.

3252 {
3253 std::string strList;
3254 strList.erase();
3255 if (!LBList.empty()) {
3256 int firstLB{-1};
3257 int LBSize{-1};
3258
3259 std::set<int>::const_iterator LBItrFirst{LBList.begin()};
3260 std::set<int>::const_iterator LBItrLast{--LBList.end()};
3261
3262 std::set<int>::const_iterator LBItr{LBList.begin()};
3263 std::set<int>::const_iterator LBItrE{LBList.end()};
3264 for (; LBItr != LBItrE; ++LBItr) {
3265 int iLB{*LBItr};
3266 if (LBItr == LBItrFirst) {
3267 firstLB = iLB;
3268 LBSize = 1;
3269 } else {
3270 if (iLB == firstLB + LBSize) {
3271 ++LBSize;
3272 } else {
3273 int LBBegin{firstLB};
3274 int LBEnd{firstLB + LBSize -1};
3275 strList = m_pCalibWriteTool->addDefect(strList, LBBegin, LBEnd);
3276 firstLB = iLB;
3277 LBSize = 1;
3278 }
3279 }
3280 if (LBItr == LBItrLast) {
3281 int LBBegin{firstLB};
3282 int LBEnd{iLB};
3283 strList = m_pCalibWriteTool->addDefect(strList, LBBegin, LBEnd);
3284 }
3285 }
3286 }
3287 return strList;
3288}

◆ getNoisyChips()

std::set< int > SCTCalib::getNoisyChips ( const std::set< Identifier > & stripIdList) const
private

Definition at line 3166 of file SCTCalib.cxx.

3166 {
3167 std::set<int> chipIdList;
3168 chipIdList.clear();
3169
3170 // Get SCT_DetectorElementCollection
3171 SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> sctDetEle{m_SCTDetEleCollKey};
3172 const InDetDD::SiDetectorElementCollection* elements{sctDetEle.retrieve()};
3173 if (elements==nullptr) {
3174 ATH_MSG_FATAL(m_SCTDetEleCollKey.fullKey() << " could not be retrieved");
3175 return chipIdList;
3176 }
3177
3178 //--- Minimum number of noisy strips for a noisy chip
3179 unsigned int noisyChipThr{static_cast<unsigned int>(m_noisyChipFraction*n_stripPerChip)};
3180 if (stripIdList.size() > noisyChipThr) {
3181 unsigned int numStripsPerChip[n_chipPerModule] = {0};
3182 //--- Loop over stripIdList
3183 std::set<Identifier>::const_iterator stripItr{stripIdList.begin()};
3184 std::set<Identifier>::const_iterator stripItrE{stripIdList.end()};
3185 for (; stripItr != stripItrE; ++stripItr) {
3186 Identifier stripId{*stripItr};
3187 int stripOffline{m_pSCTHelper->strip(stripId)};
3188 //--- Chip number : taken from SCT_ConfigurationConditionsTool::getChip
3189 IdentifierHash waferHash{m_pSCTHelper->wafer_hash(m_pSCTHelper->wafer_id(stripId))};
3190 const InDetDD::SiDetectorElement* pElement{elements->getDetectorElement(waferHash)};
3191 if (!pElement) {
3192 ATH_MSG_FATAL("Element pointer is nullptr");
3193 continue;
3194 }
3195 int stripOnline{(pElement->swapPhiReadoutDirection()) ? lastStrip - stripOffline : stripOffline};
3196 int chipId{m_pSCTHelper->side(stripId) == 0 ? stripOnline/n_stripPerChip : stripOnline/n_stripPerChip + n_chipPerSide};
3197 //--- Count number of noisy strips per chips
3198 ++numStripsPerChip[chipId];
3199 }
3200
3201 //--- Insert noisy chips
3202 for (int iChip{0}; iChip != n_chipPerModule; ++iChip) {
3203 if (numStripsPerChip[iChip] > noisyChipThr) chipIdList.insert(iChip);
3204 }
3205 }
3206 return chipIdList;
3207}
#define ATH_MSG_FATAL(x)
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
bool swapPhiReadoutDirection() const
Determine if readout direction between online and offline needs swapping.
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
Definition SCTCalib.h:97
FloatProperty m_noisyChipFraction
Definition SCTCalib.h:184
const_pointer_type retrieve()

◆ getNoisyLB()

std::pair< std::string, float > SCTCalib::getNoisyLB ( const Identifier & moduleId,
int & chipId ) const
private

Definition at line 3211 of file SCTCalib.cxx.

3211 {
3212 std::string defectLB{""}; //return value if invalid
3213 float defectLBFrac{0.0}; //return value if invalid
3215
3216 //--- Identifier
3217 Identifier waferId{m_pSCTHelper->wafer_id(m_pSCTHelper->barrel_ec(moduleId),
3218 m_pSCTHelper->layer_disk(moduleId),
3219 m_pSCTHelper->phi_module(moduleId),
3220 m_pSCTHelper->eta_module(moduleId),
3221 chipId < n_chipPerSide ? 0 : 1)};
3222 IdentifierHash waferHash{m_pSCTHelper->wafer_hash(waferId)};
3223 //--- Histogram for this chip
3224 int chipPositionInSide{m_pSCTHelper->side(waferId) == 0 ? chipId : chipId - n_chipPerSide};
3225 int histIndex{static_cast<int>((waferHash.value())*n_chipPerSide + chipPositionInSide)};
3226
3227 //--- Find LBs where this chip was noisy
3228 double chipOccupancyThr{noisyStripThr*n_stripPerChip*m_noisyChipFraction};
3229 std::set<int> LBList;
3230 LBList.clear();
3231 if (!m_calibLbTool) {
3232 ATH_MSG_ERROR("nullptr m_calibLbTool line " <<__LINE__);
3233 return std::make_pair(defectLB, defectLBFrac);
3234 }
3235
3236 for (int iLB{0}; iLB != m_LBRange; ++iLB) {
3237 double numEventsInLB{static_cast<double>(m_calibLbTool->getNumberOfEventsInBin(iLB + 1))};
3238 if (numEventsInLB == 0) continue;
3239 double chipOccupancy{(float) m_calibLbTool->getBinForHistogramIndex(iLB + 1, histIndex) / numEventsInLB};
3240 if (chipOccupancy > chipOccupancyThr) LBList.insert(iLB);
3241 }
3242 //--- Transform LBList to string and calculate a fraction of noisy LBs
3243 if (LBList.size() != 0) {
3244 defectLB = getLBList(LBList);
3245 defectLBFrac = static_cast<float>(LBList.size()) / m_numOfLBsProcessed;
3246 }
3247
3248 return std::make_pair(defectLB, defectLBFrac);
3249}
int m_LBRange
Definition SCTCalib.h:243

◆ getNumNoisyStrips()

std::pair< int, bool > SCTCalib::getNumNoisyStrips ( const Identifier & waferId) const
private

Definition at line 2720 of file SCTCalib.cxx.

2720 {
2721 IdentifierHash waferHash{m_pSCTHelper->wafer_hash(waferId)};
2722 //--- Check if there are noisy strips in the wafer
2723 int numNoisyStripsInTheWafer{0};
2724 bool isNoisyWafer{false};
2726 for (int iStrip{0}; iStrip != nbins; ++iStrip) {
2727 if ( (float) m_calibHitmapTool->getBinForHistogramIndex(iStrip + 1, waferHash.value()) / m_numberOfEvents > noisyStripThr) ++numNoisyStripsInTheWafer;
2728 }
2729 //--- Define/counts noisy wafers using wafer occupancy and number of noisy strips
2730 double averageOccupancy{m_calibHitmapTool->size(waferHash.value())/static_cast<double>(nbins)/static_cast<double>(m_numberOfEvents)};
2731 const int subdetector{m_pSCTHelper->barrel_ec(waferId)};
2732 isNoisyWafer = (numNoisyStripsInTheWafer > m_noisyWaferFraction*nbins) and
2733 ((subdetector == ENDCAP_C and averageOccupancy > m_noisyWaferThrECC) or
2734 (subdetector == BARREL and averageOccupancy > m_noisyWaferThrBarrel) or
2735 (subdetector == ENDCAP_A and averageOccupancy > m_noisyWaferThrECA));
2736 if (isNoisyWafer) {
2737 ATH_MSG_INFO("Module: " << waferHash.value());
2738 ATH_MSG_INFO("Hits, Nevts, Occ: " << m_calibHitmapTool->size(waferHash.value()) << ", "
2739 << m_numberOfEvents << ", "
2740 << averageOccupancy);
2741 }
2742 return std::make_pair(numNoisyStripsInTheWafer, isNoisyWafer);
2743}
FloatProperty m_noisyWaferThrECC
Definition SCTCalib.h:182
FloatProperty m_noisyWaferThrECA
Definition SCTCalib.h:181
FloatProperty m_noisyWaferFraction
Definition SCTCalib.h:183
FloatProperty m_noisyWaferThrBarrel
Definition SCTCalib.h:180

◆ getOverlapStripList()

std::set< Identifier > SCTCalib::getOverlapStripList ( const std::set< Identifier > & stripAllIdList,
const std::set< Identifier > & stripRefIdList ) const
private

Definition at line 2834 of file SCTCalib.cxx.

2834 {
2835 std::set<Identifier> stripList;
2836 std::set<Identifier>::const_iterator stripAllItrLast = stripAllIdList.end();
2837 std::set<Identifier>::const_iterator stripRefItrLast = stripRefIdList.end();
2838
2839 std::set<Identifier>::const_iterator stripAllItr = stripAllIdList.begin();
2840 for ( ; stripAllItr != stripAllItrLast; ++stripAllItr ) {
2841 std::set<Identifier>::const_iterator stripRefItr = stripRefIdList.begin();
2842 bool old = false;
2843 for ( ; stripRefItr != stripRefItrLast; ++stripRefItr ) {
2844 if (*stripAllItr == *stripRefItr) old = true;
2845 }
2846 if (!old) {
2847 stripList.insert(*stripAllItr);
2848 }
2849 }
2850 return stripList;
2851}

◆ getStripList()

std::string SCTCalib::getStripList ( const std::set< Identifier > & stripIdList) const
private

Definition at line 2855 of file SCTCalib.cxx.

2855 {
2856 std::string strList;
2857 if (!stripIdList.empty()) {
2858 int firstStrip{-1};
2859 int groupSize{-1};
2860
2861 std::set<Identifier>::const_iterator stripItrFirst{stripIdList.begin()};
2862 std::set<Identifier>::const_iterator stripItrLast{--stripIdList.end()};
2863
2864 std::set<Identifier>::const_iterator stripItr{stripIdList.begin()};
2865 std::set<Identifier>::const_iterator stripItrE{stripIdList.end()};
2866 for (; stripItr != stripItrE; ++stripItr) {
2867 Identifier stripId{*stripItr};
2868 int stripNum{m_pSCTHelper->side(stripId)*nbins + m_pSCTHelper->strip(stripId)};
2869 if (stripItr == stripItrFirst) {
2870 firstStrip = stripNum;
2871 groupSize = 1;
2872 } else {
2873 if (stripNum == firstStrip + groupSize) {
2874 ++groupSize;
2875 } else {
2876 int stripBegin{firstStrip};
2877 int stripEnd{firstStrip + groupSize -1};
2878 strList = m_pCalibWriteTool->addDefect(strList, stripBegin, stripEnd);
2879 firstStrip = stripNum;
2880 groupSize = 1;
2881 }
2882 }
2883 if (stripItr == stripItrLast) {
2884 int stripBegin{firstStrip};
2885 int stripEnd{stripNum};
2886 strList = m_pCalibWriteTool->addDefect(strList, stripBegin, stripEnd);
2887 }
2888 }
2889 }
2890 return strList;
2891}

◆ initialize()

StatusCode SCTCalib::initialize ( )
overridevirtual

Definition at line 123 of file SCTCalib.cxx.

123 {
124
125 ATH_MSG_INFO("----- in initialize() ----- ");
126 if (detStore()->retrieve(m_pSCTHelper, "SCT_ID").isFailure()) {
127 ATH_MSG_ERROR("Unable to retrieve SCTHelper");
128 return StatusCode::FAILURE;
129 }
130
131 if (not retrievedService(m_pCalibWriteTool)) return StatusCode::FAILURE;
132 if (m_doHV) ATH_MSG_FATAL("Not yet properly implemented and tested!");
133
134 ATH_CHECK(m_ConfigurationConditionsTool.retrieve(EnableTool {m_useConfiguration}));
135
136 if (not m_useCalibration) {
137 ATH_MSG_DEBUG("ReadCalibDataTool was removed in initialization");
138 m_ReadCalibDataTool.disable();
139 } else {
140 if (m_ReadCalibDataTool.retrieve().isFailure()) return StatusCode::FAILURE;
141 }
142
143 if (not m_useMajority) {
144 ATH_MSG_DEBUG("MajorityConditionsTool was removed in initialization");
145 } else {
146 if (m_MajorityConditionsTool.retrieve().isFailure()) return StatusCode::FAILURE;
147 }
148
149 if (not retrievedService(m_calibHitmapTool)) return StatusCode::FAILURE;
150
151 if (not retrievedService(m_calibModuleListTool)) return StatusCode::FAILURE;
152
153 if (not retrievedService(m_calibEvtInfoTool)) return StatusCode::FAILURE;
154
155 if (not m_useBSError) {
156 ATH_MSG_DEBUG("ByteStreamErrorsSvc was removed in initialization");
157 } else {
158 if (not retrievedService(m_calibBsErrTool)) return StatusCode::FAILURE;
159 }
160 if (not retrievedService(m_calibLbTool)) return StatusCode::FAILURE;
161
162 ATH_CHECK(m_CablingTool.retrieve());
163 ATH_CHECK(m_SCTDetEleCollKey.initialize());
164
165 //--- LB range
166 try {
167 m_LBRange = std::stoi(m_LBMax);
168 m_calibHitmapTool->setNumberOfLb(m_LBRange);
169 m_calibLbTool->setNumberOfLb(m_LBRange);
170 m_calibBsErrTool->setNumberOfLb(m_LBRange);
171 } catch (...) {
172 ATH_MSG_ERROR("Couldn't cast m_LBMax=\"" << m_LBMax << "\" to m_LBRange...");
173 m_LBRange = 0;
174 }
175
176 m_calibHitmapTool->setLbToMerge(m_nLbsMerged);
177 m_calibLbTool->setLbToMerge(m_nLbsMerged);
178 m_calibBsErrTool->setLbToMerge(m_nLbsMerged);
179
181
182 if (m_readBS and m_readHIST) {
183 ATH_MSG_ERROR("Both BS and HIST are set to be read. Choose either of BS or HIST.");
184 return StatusCode::FAILURE;
185 }
186
187 //--- Open BS
188 if (m_readBS) {
189 ATH_MSG_INFO("------------> Reading from ByteStream <-------------");
190 m_calibEvtInfoTool->setSource("BS");
191 }
192
193 //--- Open HIST
194 if (m_readHIST) {
195 ATH_MSG_INFO("------------> Reading from HIST <-------------");
196 m_calibEvtInfoTool->setSource("HIST");
197 //--- List of HIST
198 std::string hist{""};
199 std::vector<std::string> histCollection{m_input_hist.value()};
200 ATH_MSG_INFO("The input histogram name is : " << m_input_hist);
201 if (not histCollection.empty()) {
202 hist=histCollection.back();
203 if (histCollection.size() > 1) ATH_MSG_WARNING("The Histogram collection contains more than one histogram; using the last one.");
204 } else {
205 ATH_MSG_ERROR("The input histogram collection property is empty");
206 return StatusCode::FAILURE;
207 }
208
209 //in case of DeadStrip or DeadChip, change open from EOS to
210 //copy and open locally. Delete the file after processing
211 m_inputHist = TFile::Open(hist.c_str());
212
213 ATH_MSG_INFO("opening HIST file : " << hist.c_str());
214
215 if (m_inputHist) {
216 //--- Check run number
217 const std::string os{std::to_string(m_runNumber.value())};
218 ATH_MSG_INFO("Getting HIST directory : " << m_runNumber.value());
219 if (not m_inputHist->GetDirectory("/run_"+TString{os})) {
220 ATH_MSG_ERROR("RunNumber in HIST is inconsistent with jobO : " << os);
221 return StatusCode::FAILURE ;
222 }
223 ATH_MSG_INFO("Getting Number of events: " << m_calibEvtInfoTool->counter());
224 //--- Read number of events : Previously from entry of "tier0ESD" in "/GLOBAL/DQTDataFlow/events_lb"
225 std::string osHist{std::string{"/run_"} + std::to_string(m_runNumber.value())+"/SCT/GENERAL/Conf/NumberOfEventsVsLB"};
226 TH1F* hist_events{static_cast<TH1F*>(m_inputHist->Get(osHist.c_str()))};
227 m_numberOfEventsHist = hist_events->GetEntries();
228 } else {
229 ATH_MSG_WARNING("can not open HIST : " << hist.c_str());
230 }
231
232
233 ATH_MSG_INFO("Initialization of TimeStamp/LB, taken from runInfo.txt");
234 //--- Initialization of TimeStamp/LB, taken from runInfo.txt
235 m_calibEvtInfoTool->setSource("HIST");
237 m_calibEvtInfoTool->setRunNumber(m_runNumber);
238 m_calibEvtInfoTool->setEventNumber(m_eventNumber);
239 }
240
241 //--- Booking histograms for hitmaps
242 if (m_doHitMaps) m_calibHitmapTool->book();
243 //--- Booking histograms for BSErrors
245
246 //--- Reading histograms for hitmaps
247 if ((not m_doHitMaps and not m_doHitMapsLB) and m_readHitMaps) {
248 ATH_MSG_INFO("Set CalibEventInfo for m_readHitMaps == true");
249 m_calibEvtInfoTool->setSource("HIST");
250 m_calibHitmapTool->read("./SCTHitMaps.root");
253 m_calibEvtInfoTool->setRunNumber(m_runNumber);
254 m_calibEvtInfoTool->setEventNumber(m_eventNumber);
255 if (m_doNoisyStrip) {
256 m_calibLbTool->read("./SCTLB.root");
257 }
258 if (m_doBSErrors) {
259 m_calibBsErrTool->read("./SCTBSErrors.root");
260 }
261 }
262 //--- Hit-vs-LB for LBs in noisy links/chips
263 if (m_doHitMapsLB) m_calibLbTool->book();
264
265 //--- Check statistics for NoiseOccupancy
267 //--- Check statistics for RawOccupancy
269 //--- Check statistics for Efficiency
271 //--- Check statistics for BSError
272 if (m_doBSErrorDB and notEnoughStatistics(m_BSErrorDBMinStat, m_numberOfEventsHist)) return StatusCode::FAILURE;
273 //--- Check statistics for LorentzAngle
275 //
276
277 ATH_MSG_INFO("----- end of initialize() ----- ");
278 return StatusCode::SUCCESS;
279}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
const ServiceHandle< StoreGateSvc > & detStore() const
UnsignedIntegerProperty m_rawOccupancyMinStat
Definition SCTCalib.h:203
UnsignedIntegerProperty m_efficiencyMinStat
Definition SCTCalib.h:204
ToolHandle< ISCT_CalibModuleListTool > m_calibModuleListTool
Definition SCTCalib.h:107
bool retrievedService(S &service) const
Definition SCTCalib.h:285
StringProperty m_LBMax
Definition SCTCalib.h:134
BooleanProperty m_doHV
Definition SCTCalib.h:152
UnsignedIntegerProperty m_noiseOccupancyMinStat
Definition SCTCalib.h:202
UnsignedIntegerProperty m_LorentzAngleMinStat
Definition SCTCalib.h:207
StringArrayProperty m_input_hist
Definition SCTCalib.h:141
IntegerProperty m_nLbsMerged
Definition SCTCalib.h:148
unsigned long long m_numberOfEventsHist
Definition SCTCalib.h:240
BooleanProperty m_readHitMaps
Definition SCTCalib.h:149
UnsignedIntegerProperty m_BSErrorDBMinStat
Definition SCTCalib.h:206
BooleanProperty m_useBSError
Definition SCTCalib.h:139
IntegerProperty m_eventNumber
Definition SCTCalib.h:130
StringProperty m_runStartTime
Definition SCTCalib.h:132
StringProperty m_runEndTime
Definition SCTCalib.h:133
IntegerProperty m_runNumber
Definition SCTCalib.h:129
BooleanProperty m_doNoisyStrip
Definition SCTCalib.h:151
TFile * m_inputHist
Definition SCTCalib.h:248
bool notEnoughStatistics(const int required, const int obtained, const std::string &histogramName="HIST") const
Definition SCTCalib.cxx:283
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)

◆ 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()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::isClonable ( ) const
inlineoverridevirtualinherited

Specify if the algorithm is clonable.

Only relevant for non-reentrant algorithms. Actual number of clones needs to be set via the "Cardinality" property.

Reimplemented in AFP_DigiTop, AlgB, AlgT, BCM_Digitization, CscDigitBuilder, CscDigitToCscRDO, G4AtlasAlg, G4RunAlg, HGTD_Digitization, HiveAlgBase, InDet::GNNSeedingTrackMaker, InDet::SCT_Clusterization, InDet::SiSPGNNTrackMaker, InDet::SiSPSeededTrackFinder, InDet::SiTrackerSpacePointFinder, ISF::SimKernelMT, ITk::StripDigitization, ITkPixelCablingAlg, ITkStripCablingAlg, LArHitEMapMaker, LArTTL1Maker, LUCID_DigiTop, LVL1::L1TopoSimulation, MergeCalibHits, MergeGenericMuonSimHitColl, MergeHijingPars, MergeMcEventCollection, MergeTrackRecordCollection, MergeTruthJets, MergeTruthParticles, MuonDigitizer, PileUpMTAlg, PixelDigitization, RoIBResultToxAOD, SCT_ByteStreamErrorsTestAlg, SCT_CablingCondAlgFromCoraCool, SCT_CablingCondAlgFromText, SCT_ConditionsParameterTestAlg, SCT_ConditionsSummaryTestAlg, SCT_ConfigurationConditionsTestAlg, SCT_Digitization, SCT_FlaggedConditionTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_PrepDataToxAOD, SCT_RawDataToxAOD, SCT_ReadCalibChipDataTestAlg, SCT_ReadCalibDataTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_SiliconConditionsTestAlg, SCT_StripVetoTestAlg, SCT_TdaqEnabledTestAlg, SCT_TestCablingAlg, SCTEventFlagWriter, SCTRawDataProvider, SCTSiLorentzAngleTestAlg, SCTSiPropertiesTestAlg, SGInputLoader, Simulation::BeamEffectsAlg, TileHitVecToCnt, TileMuonFitter, TilePulseForTileMuonReceiver, TileRawChannelMaker, TRTDigitization, and ZDC_DigiTop.

Definition at line 68 of file AthCommonAlgorithm.h.

68 {
69 return true;
70 }

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 47 of file AthAlgorithm.h.

47{ return false; }

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ noisyStripsToSummaryXml()

StatusCode SCTCalib::noisyStripsToSummaryXml ( const std::map< Identifier, std::set< Identifier > > & moduleListAll,
const std::map< Identifier, std::set< Identifier > > & moduleListRef,
const std::string & badStripsFile ) const
private

Definition at line 2943 of file SCTCalib.cxx.

2945 {
2946
2947 ATH_MSG_DEBUG("noisyStripsToSummaryXml: start");
2948
2949 //--- Open
2950 const char* outputFileName{badStripsFile.c_str()};
2951 std::ofstream outFile{outputFileName, std::ios::out};
2952 if (!outFile.good()) {
2953 ATH_MSG_ERROR("Unable to open " << outputFileName);
2954 return(StatusCode::FAILURE);
2955 }
2956
2957 //--- Initialization
2958 int numLinksAll{0}, numChipsAll{0};
2959 int numModulesAll{0}, numModulesRef{0};
2960 int numStripsAll{0}, numStripsNew{0}, numStripsRef{0};
2961 int numModulesDiff{0};
2962
2963 std::string defectLinks, defectChips;
2964 std::string defectStripsAll, defectStripsNew, defectStripsRef;
2965 std::ostringstream osModuleList, osChipList;
2966
2967 //--- Create module list
2968 SCT_ID::const_id_iterator waferItr{m_pSCTHelper->wafer_begin()};
2969 SCT_ID::const_id_iterator waferItrE{m_pSCTHelper->wafer_end()};
2970 ATH_MSG_DEBUG("noisyStripsToSummaryXml: before wafer loop");
2971 for (; waferItr != waferItrE; ++waferItr) {
2972 //--- Identifier
2973 Identifier waferId{*waferItr};
2974 Identifier moduleId{m_pSCTHelper->module_id(waferId)};
2975 IdentifierHash waferHash{m_pSCTHelper->wafer_hash(waferId)};
2976 SCT_SerialNumber sn{m_CablingTool->getSerialNumberFromHash(waferHash)};
2977
2978 //--- Initialization for a module
2979 if (m_pSCTHelper->side(waferId) == 0) {
2980 defectLinks.erase();
2981 defectChips.erase();
2982 defectStripsAll.erase();
2983 defectStripsNew.erase();
2984 defectStripsRef.erase();
2985 }
2986
2987 //--- Noisy links
2988 bool isNoisyWafer{getNumNoisyStrips(waferId).second}; // true if this wafer is noisy
2989 if (isNoisyWafer) {
2990 int link{m_pSCTHelper->side(waferId)};
2991 defectLinks = m_pCalibWriteTool->addDefect(defectLinks, link, link);
2992 ++numLinksAll;
2993 }
2994
2995 //--- Execute once in this module
2996 if (m_pSCTHelper->side(waferId) == 1) {
2997 ATH_MSG_DEBUG("noisyStripsToSummaryXml: ALL");
2998 //--- Noisy strips : All
2999 std::map< Identifier, std::set<Identifier> >::const_iterator moduleAllItr{moduleListAll.find(moduleId)};
3000 if (moduleAllItr != moduleListAll.end()) {
3001 defectStripsAll = getStripList((*moduleAllItr).second);
3002 ++numModulesAll;
3003 numStripsAll += (*moduleAllItr).second.size();
3004 }
3005
3006 ATH_MSG_DEBUG("noisyStripsToSummaryXml: REF");
3007 //--- Noisy strips : Ref
3008 std::map< Identifier, std::set<Identifier> >::const_iterator moduleRefItr{moduleListRef.find(moduleId)};
3009 if (moduleRefItr != moduleListRef.end()) {
3010 defectStripsRef = getStripList(moduleRefItr->second);
3011 ++numModulesRef;
3012 numStripsRef += moduleRefItr->second.size();
3013 }
3014
3015 ATH_MSG_DEBUG("noisyStripsToSummaryXml: NEW");
3016 //--- Noisy strips : New
3017 if ( moduleAllItr != moduleListAll.end() ) {
3018 if ( moduleRefItr != moduleListRef.end() ) {
3019 std::set<Identifier> listNEW = getOverlapStripList( (*moduleAllItr).second, (*moduleRefItr).second );
3020 defectStripsNew = getStripList( listNEW );
3021 numStripsNew += listNEW.size();
3022 } else {
3023
3024 defectStripsNew = getStripList( (*moduleAllItr).second );
3025 }
3026 }
3027
3028 ATH_MSG_DEBUG("noisyStripsToSummaryXml: stripIdList -> chipIdList");
3029 //--- Noisy chips : stripIdList -> chipIdList
3030 if (moduleAllItr != moduleListAll.end()) {
3031 std::set<int> chipIdList{getNoisyChips(moduleAllItr->second)};
3032 if (!chipIdList.empty()) {
3033 ++numChipsAll;
3034 std::set<int>::iterator chipItr{chipIdList.begin()};
3035 std::set<int>::iterator chipItrE{chipIdList.end()};
3036 for (; chipItr != chipItrE; ++chipItr) {
3037 int chipId{*chipItr};
3038 //--- To be written into module list
3039 defectChips = m_pCalibWriteTool->addDefect(defectChips, chipId, chipId);
3040 //--- LBs where this chip was noisy
3041 std::pair< std::string, float > defectLB{getNoisyLB(moduleId, chipId)};
3042 //--- Chip list written to XML
3043 osChipList << " <chip>" << linefeed
3044 << " <value name=\"SN\">" << sn.str() << "</value>" << linefeed
3045 << " <value name=\"BecLayerPhiEta\">" << m_pSCTHelper->barrel_ec(waferId) << "."
3046 << m_pSCTHelper->layer_disk(waferId) << "."
3047 << m_pSCTHelper->phi_module(waferId) << "."
3048 << m_pSCTHelper->eta_module(waferId) << "</value>" << linefeed
3049 << " <value name=\"ChipID\">" << chipId << "</value>" << linefeed
3050 << " <value name=\"LB\">" << normalizeList(defectLB.first) << "</value>" << linefeed
3051 << " <value name=\"LBFraction\">" << defectLB.second << "</value>" << linefeed
3052 << " </chip>" << lineFeed;
3053 }
3054 }
3055 }
3056 ATH_MSG_DEBUG("noisyStripsToSummaryXml: Difference between All & Ref");
3057 //--- Difference between All & Ref
3058 if (defectStripsAll != defectStripsRef) ++numModulesDiff;
3059 //--- Module list written to XML
3060 if (!defectStripsAll.empty() or (m_noisyUpdate and defectStripsAll != defectStripsRef)) {
3061 osModuleList << " <module>" << linefeed
3062 << " <value name=\"SN\">" << sn.str() << "</value>" << linefeed
3063 << " <value name=\"BecLayerPhiEta\">" << m_pSCTHelper->barrel_ec(waferId) << "."
3064 << m_pSCTHelper->layer_disk(waferId) << "."
3065 << m_pSCTHelper->phi_module(waferId) << "."
3066 << m_pSCTHelper->eta_module(waferId) << "</value>" << linefeed
3067 << " <value name=\"LinkID\">" << normalizeList(defectLinks) << "</value>" << linefeed
3068 << " <value name=\"ChipID\">" << normalizeList(defectChips) << "</value>" << linefeed
3069 << " <value name=\"StripOfflineAll\">" << normalizeList(defectStripsAll) << "</value>" << linefeed
3070 << " <value name=\"StripOfflineNew\">" << normalizeList(defectStripsNew) << "</value>" << linefeed
3071 << " <value name=\"StripOfflineRef\">" << normalizeList(defectStripsRef) << "</value>" << linefeed
3072 << " </module>" << lineFeed;
3073 }
3074 ATH_MSG_DEBUG("noisyStripsToSummaryXml: After Difference between All & Ref");
3075 }
3076 }//--- end loop : waferItr
3077
3078 ATH_MSG_DEBUG("noisyStripsToSummaryXml: after waferItr");
3079
3080 //--- Upload flag
3081 std::string strUploadFlag{"U"};
3082
3083 bool isRunsInCool{false};
3084 bool isNoisyMinStat{false}, isNoisyModuleList{false}, isNoisyModuleDiff{false}, isNoisyStripDiff{false};
3085 if (m_noisyUploadTest) {
3086 isRunsInCool = ((m_noisyModuleAverageInDB != -1.) and (m_noisyStripLastRunInDB != -999));
3087 if (isRunsInCool) {
3088 isNoisyMinStat = m_numberOfEvents > m_noisyMinStat;
3089 isNoisyModuleList = numModulesAll < m_noisyModuleList;
3090 isNoisyModuleDiff = ((static_cast<float>(numModulesAll) - m_noisyModuleAverageInDB)/m_noisyModuleAverageInDB) < m_noisyModuleDiff;
3091 isNoisyStripDiff = ((static_cast<float>(numStripsAll) - m_noisyStripAverageInDB)/m_noisyStripAverageInDB) < m_noisyStripDiff;
3092 if (!isNoisyMinStat or !isNoisyModuleList) {
3093 strUploadFlag = "R";
3094 } else {
3095 if (!isNoisyModuleDiff or !isNoisyStripDiff) {
3096 strUploadFlag = "Y";
3097 } else {
3098 strUploadFlag = "G";
3099 }
3100 }
3101 }
3102 }
3103
3104 ATH_MSG_DEBUG("noisyStripsToSummaryXml: after FlagChecking");
3105
3106 //--- Upload test result to XML
3107 std::ostringstream osNoisyMinStat, osNoisyModuleList, osNoisyModuleDiff, osNoisyStripDiff;
3108 osNoisyMinStat << "#events more than " << m_noisyMinStat.value();
3109 osNoisyModuleList << "#(modules w/ at least 1 noisy strip) less than " << m_noisyModuleList.value();
3110 osNoisyModuleDiff << "Increase of #(modules w/ at least 1 noisy strip) from average of recent runs less than " << m_noisyModuleDiff*100 << "%";
3111 osNoisyStripDiff << "Increase of #(noisy strips) from average of recent runs less than " << m_noisyStripDiff*100 << "%";
3112
3113 std::ostringstream osFlagReason;
3114 if (!isNoisyMinStat) osFlagReason << "FAILED in " << osNoisyMinStat.str() << "; ";
3115 if (!isNoisyModuleList) osFlagReason << "FAILED in " << osNoisyModuleList.str() << "; ";
3116 if (!isNoisyModuleDiff) osFlagReason << "FAILED in " << osNoisyModuleDiff.str() << "; ";
3117 if (!isNoisyStripDiff) osFlagReason << "FAILED in " << osNoisyStripDiff.str();
3118
3119 std::string strFlagEnable = m_noisyUploadTest ? "ENABLED" : "DISABLED";
3120 std::string strRunsInCool = isRunsInCool ? "AVAILABLE" : "UNAVAILABLE";
3121
3122 std::ostringstream osCheckList;
3123 osCheckList << osNoisyMinStat.str() << "; "
3124 << osNoisyModuleList.str() << "; "
3125 << osNoisyModuleDiff.str() << "; "
3126 << osNoisyStripDiff.str();
3127
3128 //--- Write out the contents to XML file
3129 outFile << xmlHeader << linefeed
3130 << associateStylesheet("BadStrips.xsl") << linefeed
3131 << "<run>" << linefeed
3132 << " <value name=\"RunNumber\">" << m_runNumber.value() << "</value>" << linefeed
3133 << " <value name=\"StartTime\">" << m_utcBegin << "</value>" << linefeed
3134 << " <value name=\"EndTime\">" << m_utcEnd << "</value>" << linefeed
3135 << " <value name=\"Duration\">" << m_calibEvtInfoTool->duration() << "</value>" << linefeed
3136 << " <value name=\"LB\">" << m_numOfLBsProcessed << "</value>" << linefeed
3137 << " <value name=\"Events\">" << m_numberOfEvents << "</value>" << linefeed
3138 << " <value name=\"Modules\">" << numModulesAll << "</value>" << linefeed
3139 << " <value name=\"Links\">" << numLinksAll << "</value>" << linefeed
3140 << " <value name=\"Chips\">" << numChipsAll << "</value>" << linefeed
3141 << " <value name=\"StripsOfflineAll\">" << numStripsAll << "</value>" << linefeed
3142 << " <value name=\"StripsOfflineNew\">" << numStripsNew << "</value>" << linefeed
3143 << " <value name=\"ModulesRef\">" << numModulesRef << "</value>" << linefeed
3144 << " <value name=\"StripsOfflineRef\">" << numStripsRef << "</value>" << linefeed
3145 << " <value name=\"ModulesDiff\">" << numModulesDiff << "</value>" << linefeed
3146 << " <value name=\"Flag\">" << strUploadFlag << "</value>" << linefeed
3147 << " <value name=\"FlagReason\">" << osFlagReason.str() << "</value>" << linefeed
3148 << " <value name=\"FlagEnable\">" << strFlagEnable << "</value>" << linefeed
3149 << " <value name=\"ReadCool\">" << strRunsInCool << "</value>" << linefeed
3150 << " <value name=\"CheckList\">" << osCheckList.str() << "</value>" << linefeed
3151 << " <chips>" << linefeed
3152 << osChipList.str()
3153 << " </chips>" << linefeed
3154 << " <modules>" << linefeed
3155 << osModuleList.str()
3156 << " </modules>" << linefeed
3157 << "</run>" << lineFeed;
3158
3159 ATH_MSG_DEBUG("noisyStripsToSummaryXml: before return");
3160
3161 return StatusCode::SUCCESS;
3162}
static const std::string outputFileName
std::string getStripList(const std::set< Identifier > &stripIdList) const
BooleanProperty m_noisyUpdate
Definition SCTCalib.h:162
std::pair< int, bool > getNumNoisyStrips(const Identifier &waferId) const
FloatProperty m_noisyModuleDiff
Definition SCTCalib.h:169
FloatProperty m_noisyStripDiff
Definition SCTCalib.h:170
std::pair< std::string, float > getNoisyLB(const Identifier &moduleId, int &chipId) const
FloatProperty m_noisyModuleAverageInDB
Definition SCTCalib.h:165
std::set< int > getNoisyChips(const std::set< Identifier > &stripIdList) const
std::set< Identifier > getOverlapStripList(const std::set< Identifier > &stripAllIdList, const std::set< Identifier > &stripRefIdList) const
UnsignedIntegerProperty m_noisyMinStat
Definition SCTCalib.h:172
std::string m_utcBegin
Definition SCTCalib.h:241
std::string m_utcEnd
Definition SCTCalib.h:242
FloatProperty m_noisyStripAverageInDB
Definition SCTCalib.h:167
int m_numOfLBsProcessed
Definition SCTCalib.h:238
BooleanProperty m_noisyUploadTest
Definition SCTCalib.h:164
IntegerProperty m_noisyModuleList
Definition SCTCalib.h:168
IntegerProperty m_noisyStripLastRunInDB
Definition SCTCalib.h:166
std::vector< Identifier >::const_iterator const_id_iterator
Definition SCT_ID.h:73
outFile
Comment Out Those You do not wish to run.
std::string normalizeList(std::string s)
std::string xmlHeader(const std::string &version="1.0", const std::string &encoding="UTF-8")
pointer & link(pointer p) const
Return a reference to the link for an element.

◆ noisyStripsToXml()

StatusCode SCTCalib::noisyStripsToXml ( const std::map< Identifier, std::set< Identifier > > & moduleList,
const std::string & badStripsFile ) const
private

Definition at line 2895 of file SCTCalib.cxx.

2895 {
2896 //--- Open
2897 const char* outputFileName{badStripsFile.c_str()};
2898 std::ofstream outFile{outputFileName, std::ios::out};
2899 if (!outFile.good()) {
2900 ATH_MSG_ERROR("Unable to open " << outputFileName);
2901 return(StatusCode::FAILURE);
2902 }
2904 //--- Create module list
2905 std::ostringstream osModuleList;
2906 //--- Loop over wafers
2907 SCT_ID::const_id_iterator waferItr{m_pSCTHelper->wafer_begin()};
2908 SCT_ID::const_id_iterator waferItrE{m_pSCTHelper->wafer_end()};
2909 for (; waferItr != waferItrE; ++waferItr) {
2910 Identifier waferId{*waferItr};
2911 Identifier moduleId{m_pSCTHelper->module_id(waferId)};
2912 if (m_pSCTHelper->side(waferId) != 0) continue;
2913 std::map< Identifier, std::set<Identifier> >::const_iterator moduleItr{moduleList.find(moduleId)};
2914 if (moduleItr != moduleList.end()) {
2915 std::string defectStrips{getStripList((*moduleItr).second)};
2916 osModuleList << " <channel id=\"" << m_pSCTHelper->module_id(waferId).get_compact() << "\" "
2917 << "since=\"" << m_iovStart.re_time() << "\" "
2918 << "until=\"" << m_iovStop.re_time() << "\">" << linefeed
2919 << " <value name=\"SampleSize\">" << "10000" << "</value>" << linefeed
2920 << " <value name=\"BarrelEndcap\">" << m_pSCTHelper->barrel_ec(waferId) << "</value>" << linefeed
2921 << " <value name=\"Layer\">" << m_pSCTHelper->layer_disk(waferId) << "</value>" << linefeed
2922 << " <value name=\"Eta\">" << m_pSCTHelper->eta_module(waferId) << "</value>" << linefeed
2923 << " <value name=\"Phi\">" << m_pSCTHelper->phi_module(waferId) << "</value>" << linefeed
2924 << " <value name=\"DefectType\">" << "NOISY" << "</value>" << linefeed
2925 << " <value name=\"Threshold\">" << noisyStripThr << "</value>" << linefeed
2926 << " <value name=\"DefectList\">" << normalizeList(std::move(defectStrips)) << "</value>" << linefeed
2927 << " </channel>" << lineFeed;
2928 }
2929 }
2930 //--- Write out the contents
2931 outFile << "<channels server=\"ATLAS_COOLPROD\" schema=\"ATLAS_COOLOFL_SCT\" dbname=\"CONDBR2\" folder=\"SCT/Derived/Monitoring\" "
2932 << "since=\"" << m_iovStart.re_time() << "\" "
2933 << "until=\"" << m_iovStop.re_time() << "\" "
2934 << "tag=\"" << m_tagID4NoisyStrips << "\" "
2935 << "version=\"" << "multi\">" << lineFeed
2936 << osModuleList.str()
2937 << "</channels>" << lineFeed;
2938
2939 return StatusCode::SUCCESS;
2940}
StringProperty m_tagID4NoisyStrips
Definition SCTCalib.h:211

◆ notEnoughStatistics()

bool SCTCalib::notEnoughStatistics ( const int required,
const int obtained,
const std::string & histogramName = "HIST" ) const
private

Definition at line 283 of file SCTCalib.cxx.

283 {
284 if (obtained<required) {
285 ATH_MSG_ERROR("Number of events in " << histogramName << ": " << obtained << " is less than the required minimum number of events " << required);
286 return true;
287 }
288 return false;
289}

◆ openXML4DB()

StatusCode SCTCalib::openXML4DB ( std::ofstream & file,
std::string_view type,
std::string_view tag,
const IOVTime & start,
const IOVTime & end ) const
private

Definition at line 2459 of file SCTCalib.cxx.

2459 {
2460 if (type == "DeadStrip") {
2461 file.open(m_deadStripsFile.value().c_str(), std::ios::out);
2462 if (!file.good()) return StatusCode::FAILURE;
2463 file << "<channels server=\"ATLAS_COOLPROD\" schema=\"ATLAS_COOLOFL_SCT\" dbname=\"MONP200\" folder=\"SCT/Derived/DeadStrips\" ";
2464 } else if (type == "DeadChip") {
2465 file.open(m_deadChipsFile.value().c_str(), std::ios::out);
2466 if (!file.good()) return StatusCode::FAILURE;
2467 file << "<channels server=\"ATLAS_COOLPROD\" schema=\"ATLAS_COOLOFL_SCT\" dbname=\"MONP200\" folder=\"SCT/Derived/DeadChips\" ";
2468 } else {
2469 ATH_MSG_ERROR("in openXML4DB : argument \"type\" needs to be (DeadStrip, DeadChip).");
2470 return StatusCode::FAILURE;
2471 }
2472 file << "since=\"" << start.re_time() << "\" "
2473 << "until=\"" << end.re_time() << "\" "
2474 << "tag=\"" << tag << "\" "
2475 << "version=\"" << "multi\">" << linefeed;
2476 return StatusCode::SUCCESS;
2477}
StringProperty m_deadStripsFile
Definition SCTCalib.h:222
StringProperty m_deadChipsFile
Definition SCTCalib.h:223

◆ openXML4DeadSummary()

StatusCode SCTCalib::openXML4DeadSummary ( std::ofstream & file,
std::string_view type,
int n_Module = 0,
int n_Link = 0,
int n_Chip = 0,
int n_Strip = 0 ) const
private

Definition at line 2514 of file SCTCalib.cxx.

2514 {
2515 if (type == "DEAD") {
2516 file.open(m_deadSummaryFile.value().c_str(), std::ios::out);
2517 if (!file.good()) return StatusCode::FAILURE;
2518 file << xmlHeader << linefeed << associateStylesheet("DeadInfo.xsl") << linefeed
2519 << "<run>" << linefeed;
2520 } else {
2521 ATH_MSG_ERROR("in openXML4DeadSummary : argument \"type\" needs to be \"DEAD\".");
2522 return StatusCode::FAILURE;
2523 }
2524
2525 //--- Upload flag
2526 std::string strUploadFlag{"U"};
2527 bool isNonZero{false};
2528
2530 if (n_Chip > 0) {
2531 isNonZero = true;
2532 strUploadFlag = "G";
2533 } else {
2534 strUploadFlag = "R";
2535 }
2536 }
2537
2538 //--- Upload test result
2539 std::ostringstream osNonZero;
2540 osNonZero << "#chips or #strips is non-zero";
2541 std::ostringstream osFlagReason;
2542 if (!isNonZero) osFlagReason << "FAILED in " << osNonZero.str();
2543 std::string strFlagEnable{(m_deadChipUploadTest or m_deadStripUploadTest) ? "ENABLED" : "DISABLED"};
2544 std::ostringstream osCheckList;
2545 osCheckList << osNonZero.str();
2546
2547 file << xmlValue("RunNumber", m_runNumber.value()) << linefeed
2548 << xmlValue("StartTime", m_utcBegin) << linefeed
2549 << xmlValue("EndTime", m_utcEnd) << linefeed
2550 << xmlValue("Duration", m_calibEvtInfoTool->duration()) << linefeed
2551 << xmlValue("LB", m_calibEvtInfoTool->numLumiBlocks()) << linefeed
2552 << xmlValue("Events", m_numberOfEvents) << linefeed
2553 << xmlValue("Modules", n_Module) << linefeed
2554 << xmlValue("Links", n_Link) << linefeed
2555 << xmlValue("Chips", n_Chip) << linefeed
2556 << xmlValue("Strips", n_Strip) << linefeed
2557 << xmlValue("Flag", std::move(strUploadFlag)) << linefeed
2558 << xmlValue("FlagReason", osFlagReason.str()) << linefeed
2559 << xmlValue("FlagEnable", std::move(strFlagEnable)) << linefeed
2560 << xmlValue("CheckList", osCheckList.str()) << linefeed
2561 << " <modules>" << lineFeed;
2562
2563 return StatusCode::SUCCESS;
2564}
BooleanProperty m_doDeadChip
Definition SCTCalib.h:154
BooleanProperty m_doDeadStrip
Definition SCTCalib.h:153
BooleanProperty m_deadChipUploadTest
Definition SCTCalib.h:195
StringProperty m_deadSummaryFile
Definition SCTCalib.h:224
BooleanProperty m_deadStripUploadTest
Definition SCTCalib.h:196

◆ openXML4MonSummary()

StatusCode SCTCalib::openXML4MonSummary ( std::ofstream & file,
std::string_view type ) const
private

Definition at line 2567 of file SCTCalib.cxx.

2567 {
2568 using TwoStrings = std::pair<std::string, std::string>;
2569 using Names = std::map<std::string, TwoStrings, std::less<>>;
2570 Names nameAssociation;
2571 nameAssociation["NoiseOccupancy"] = TwoStrings(m_noiseOccupancySummaryFile, "NoiseOccupancyInfo.xsl");
2572 nameAssociation["RawOccupancy"] = TwoStrings(m_rawOccupancySummaryFile, "RawOccupancyInfo.xsl");
2573 nameAssociation["Efficiency"] = TwoStrings(m_efficiencySummaryFile, "EfficiencyInfo.xsl");
2574 nameAssociation["BSErrors"] = TwoStrings(m_BSErrorSummaryFile, "BSErrorInfo.xsl");
2575 nameAssociation["BSErrorsModule"] = TwoStrings(m_BSErrorModuleFile, "BSErrorInfo.xsl");
2576 Names::iterator found{nameAssociation.find(type)};
2577 if (found!=nameAssociation.end()) {
2578 std::string filename{found->second.first};
2579 std::string xslName{found->second.second};
2580 //
2581 file.open(filename.c_str(), std::ios::out);
2582 if (!file.good()) return StatusCode::FAILURE;
2583 file << xmlHeader << linefeed << associateStylesheet(xslName) << linefeed << "<run>" << lineFeed;
2584 } else {
2585 ATH_MSG_ERROR("in openXML4MonSummary : argument \"type\" needs to be (NoiseOccupancy, RawOccupancy, Efficiency, BSErrors).");
2586 return StatusCode::FAILURE;
2587 }
2588 file << xmlValue("RunNumber", m_runNumber.value()) << linefeed
2589 << xmlValue("StartTime", m_utcBegin) << linefeed
2590 << xmlValue("EndTime", m_utcEnd) << linefeed
2591 << xmlValue("Duration", m_calibEvtInfoTool->duration()) << linefeed
2592 << xmlValue("LB", m_LBRange) << linefeed
2593 << xmlValue("Events", m_numberOfEvents) << linefeed
2594 << " <data>" << lineFeed;
2595 return StatusCode::SUCCESS;
2596}
StringProperty m_BSErrorSummaryFile
Definition SCTCalib.h:232
StringProperty m_BSErrorModuleFile
Definition SCTCalib.h:233
StringProperty m_rawOccupancySummaryFile
Definition SCTCalib.h:228
StringProperty m_efficiencySummaryFile
Definition SCTCalib.h:229
StringProperty m_noiseOccupancySummaryFile
Definition SCTCalib.h:227

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

◆ prepareHV()

StatusCode SCTCalib::prepareHV ( )
private

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ retrievedService()

template<class S>
bool SCTCalib::retrievedService ( S & service) const
inlineprivate

Definition at line 285 of file SCTCalib.h.

285 {
286 if (service.retrieve().isFailure()) {
287 ATH_MSG_ERROR("Unable to retrieve "<<service.name());
288 return false;
289 }
290 return true;
291 }

◆ setFilterPassed()

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

Set filter decision:

Reimplemented in AthFilterAlgorithm.

Definition at line 99 of file AthCommonAlgorithm.h.

99 {
101 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const
Set filter decision:

◆ sysExecute()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

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

Reimplemented in AthAnalysisAlgorithm.

Definition at line 80 of file AthCommonAlgorithm.cxx.

41{
42 return BaseAlg::sysExecute (ctx);
43}

◆ sysInitialize()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

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

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

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

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, HypoBase, InputMakerBase, and PyAthena::Alg.

Definition at line 60 of file AthCommonAlgorithm.cxx.

71 {
73
74 if (sc.isFailure()) {
75 return sc;
76 }
77
78 ServiceHandle<ICondSvc> cs("CondSvc",name());
79 for (auto h : outputHandles()) {
80 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
81 // do this inside the loop so we don't create the CondSvc until needed
82 if ( cs.retrieve().isFailure() ) {
83 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
85 }
86 if (cs->regHandle(this,*h).isFailure()) {
88 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
89 << " with CondSvc");
90 }
91 }
92 }
93 return sc;
94}
virtual StatusCode sysInitialize() override
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

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

Definition at line 308 of file AthCommonDataStore.h.

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

◆ wrapUpXML4Summary()

StatusCode SCTCalib::wrapUpXML4Summary ( std::ofstream & file,
std::string_view type,
std::ostringstream & list ) const
private

Definition at line 2599 of file SCTCalib.cxx.

2599 {
2600 file << list.str();
2601 if (type == "DEAD") {
2602 file << " </modules>" << lineFeed;
2603 } else if ((type == "NoiseOccupancy") or (type == "RawOccupancy") or (type == "Efficiency") or (type == "BSErrors") or (type == "LorentzAngle")) {
2604 file << " </data>" << lineFeed;
2605 }
2606 file << "</run>" << lineFeed;
2607
2608 if (file.is_open()) {
2609 file.close();
2610 return StatusCode::SUCCESS;
2611 } else {
2612 return StatusCode::FAILURE;
2613 }
2614}

◆ xmlChannelEfficiencyDataString()

std::string SCTCalib::xmlChannelEfficiencyDataString ( const Identifier & waferId,
const float efficiency,
const SCT_SerialNumber & serial,
const int side ) const
private

Definition at line 2685 of file SCTCalib.cxx.

2685 {
2686 std::ostringstream os;
2687 os << " <module>" << lineFeed
2688 << " " << xmlValue("SN", serial.str()) << lineFeed
2689 << " " << xmlValue("SampleSize", "10000") << lineFeed
2690 << " " << xmlValue("barrel_endcap", m_pSCTHelper->barrel_ec(waferId)) << lineFeed
2691 << " " << xmlValue("Layer", m_pSCTHelper->layer_disk(waferId)) << linefeed
2692 << " " << xmlValue("Eta", m_pSCTHelper->eta_module(waferId)) << lineFeed
2693 << " " << xmlValue("Phi", m_pSCTHelper->phi_module(waferId)) << lineFeed
2694 << " " << xmlValue("Efficiency", efficiency) << lineFeed
2695 << " " << xmlValue("Side", side )<<std::endl
2696 << " </module>";
2697 return os.str();
2698}
void efficiency(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")

◆ xmlChannelEfficiencyDataStringChip()

std::string SCTCalib::xmlChannelEfficiencyDataStringChip ( const Identifier & waferId,
const float efficiency,
const float efficiency_bcid,
const SCT_SerialNumber & serial,
const int side,
const int chip ) const
private

Definition at line 2702 of file SCTCalib.cxx.

2702 {
2703 std::ostringstream os;
2704 os << " <chip>" << lineFeed
2705 << " " << xmlValue("SN", serial.str()) << lineFeed
2706 << " " << xmlValue("SampleSize", "10000") << lineFeed
2707 << " " << xmlValue("barrel_endcap", m_pSCTHelper->barrel_ec(waferId)) << lineFeed
2708 << " " << xmlValue("Layer", m_pSCTHelper->layer_disk(waferId)) << linefeed
2709 << " " << xmlValue("Eta", m_pSCTHelper->eta_module(waferId)) << lineFeed
2710 << " " << xmlValue("Phi", m_pSCTHelper->phi_module(waferId)) << lineFeed
2711 << " " << xmlValue("Side", side )<<std::endl
2712 << " " << xmlValue("Chip", chip )<<std::endl
2713 << " " << xmlValue("Efficiency", efficiency) << lineFeed
2714 << " " << xmlValue("Efficiency_bcid", efficiency_bcid) << lineFeed
2715 << " </chip>";
2716 return os.str();
2717}

◆ xmlChannelNoiseOccDataString()

std::string SCTCalib::xmlChannelNoiseOccDataString ( const Identifier & waferId,
const float occupancy,
const SCT_SerialNumber & serial ) const
private

Definition at line 2669 of file SCTCalib.cxx.

2669 {
2670 std::ostringstream os;
2671 os << xmlOpenChannel(waferId.get_identifier32().get_compact(), m_iovStart.re_time(), m_iovStop.re_time()) << lineFeed
2672 << " " << xmlValue("SN", serial.str()) << lineFeed
2673 << " " << xmlValue("SampleSize", "10000") << lineFeed
2674 << " " << xmlValue("barrel_endcap", m_pSCTHelper->barrel_ec(waferId)) << lineFeed
2675 << " " << xmlValue("Layer", m_pSCTHelper->layer_disk(waferId)) << linefeed
2676 << " " << xmlValue("Eta", m_pSCTHelper->eta_module(waferId)) << lineFeed
2677 << " " << xmlValue("Phi", m_pSCTHelper->phi_module(waferId)) << lineFeed
2678 << " " << xmlValue("NoiseOccupancy", occupancy) << lineFeed
2679 << " " << xmlCloseChannel();
2680 return os.str();
2681}
value_type get_compact() const
Get the compact id.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.

Member Data Documentation

◆ m_badModulesFile

StringProperty SCTCalib::m_badModulesFile {this, "BadModulesFile", "BadModulesFile.xml", "Output XML for HV trips"}
private

Definition at line 220 of file SCTCalib.h.

220{this, "BadModulesFile", "BadModulesFile.xml", "Output XML for HV trips"};

◆ m_badStripsAllFile

StringProperty SCTCalib::m_badStripsAllFile {this, "BadStripsAllFile", "BadStripsAllFile.xml", "Output XML for all noisy strips"}
private

Definition at line 216 of file SCTCalib.h.

216{this, "BadStripsAllFile", "BadStripsAllFile.xml", "Output XML for all noisy strips"};

◆ m_badStripsNewFile

StringProperty SCTCalib::m_badStripsNewFile {this, "BadStripsNewFile", "BadStripsNewFile.xml", "Output XML for newly found noisy strips (i.e. not in config/calib data)"}
private

Definition at line 217 of file SCTCalib.h.

217{this, "BadStripsNewFile", "BadStripsNewFile.xml", "Output XML for newly found noisy strips (i.e. not in config/calib data)"};

◆ m_badStripsSummaryFile

StringProperty SCTCalib::m_badStripsSummaryFile {this, "BadStripsSummaryFile", "BadStripsSummaryFile.xml", "Output XML for summary info from noisy strip search"}
private

Definition at line 218 of file SCTCalib.h.

218{this, "BadStripsSummaryFile", "BadStripsSummaryFile.xml", "Output XML for summary info from noisy strip search"};

◆ m_BSErrorDBMinStat

UnsignedIntegerProperty SCTCalib::m_BSErrorDBMinStat {this, "BSErrorDBMinStat", 50000}
private

Definition at line 206 of file SCTCalib.h.

206{this, "BSErrorDBMinStat", 50000};

◆ m_BSErrorModuleFile

StringProperty SCTCalib::m_BSErrorModuleFile {this, "BSErrorModuleFile", "BSErrorModuleSummary.xml", "Output XML for summary of BS Errors"}
private

Definition at line 233 of file SCTCalib.h.

233{this, "BSErrorModuleFile", "BSErrorModuleSummary.xml", "Output XML for summary of BS Errors"};

◆ m_BSErrorSummaryFile

StringProperty SCTCalib::m_BSErrorSummaryFile {this, "BSErrorSummaryFile", "BSErrorSummaryFile.xml", "Output XML for summary of BS Errors"}
private

Definition at line 232 of file SCTCalib.h.

232{this, "BSErrorSummaryFile", "BSErrorSummaryFile.xml", "Output XML for summary of BS Errors"};

◆ m_busyThr4DeadFinding

FloatProperty SCTCalib::m_busyThr4DeadFinding {this, "BusyThr4DeadFinding", 1E-4}
private

Definition at line 193 of file SCTCalib.h.

193{this, "BusyThr4DeadFinding", 1E-4};

◆ m_CablingTool

ToolHandle<ISCT_CablingTool> SCTCalib::m_CablingTool {this, "SCT_CablingTool", "SCT_CablingTool", "Tool to retrieve SCT Cabling"}
private

Definition at line 103 of file SCTCalib.h.

103{this, "SCT_CablingTool", "SCT_CablingTool", "Tool to retrieve SCT Cabling"};

◆ m_calibBsErrTool

ToolHandle<ISCT_CalibHistoTool> SCTCalib::m_calibBsErrTool {this, "SCT_CalibBsErrorTool", "SCT_CalibBsErrorTool", "Tool for reading and writing BS error histograms"}
private

Definition at line 106 of file SCTCalib.h.

106{this, "SCT_CalibBsErrorTool", "SCT_CalibBsErrorTool", "Tool for reading and writing BS error histograms"};

◆ m_calibEvtInfoTool

ToolHandle<ISCT_CalibEvtInfo> SCTCalib::m_calibEvtInfoTool {this, "SCT_CalibEventInfo", "SCT_CalibEventInfo", "Tool for handling event info"}
private

Definition at line 108 of file SCTCalib.h.

108{this, "SCT_CalibEventInfo", "SCT_CalibEventInfo", "Tool for handling event info"};

◆ m_calibHitmapTool

ToolHandle<ISCT_CalibHistoTool> SCTCalib::m_calibHitmapTool {this, "SCT_CalibHitmapTool", "SCT_CalibHitmapTool", "Tool for reading and writing HitMap histograms"}
private

Definition at line 104 of file SCTCalib.h.

104{this, "SCT_CalibHitmapTool", "SCT_CalibHitmapTool", "Tool for reading and writing HitMap histograms"};

◆ m_calibLbTool

ToolHandle<ISCT_CalibHistoTool> SCTCalib::m_calibLbTool {this, "SCT_CalibLbTool", "SCT_CalibLbTool", "Tool for reading and writing Lb dependent HitMap histograms"}
private

Definition at line 105 of file SCTCalib.h.

105{this, "SCT_CalibLbTool", "SCT_CalibLbTool", "Tool for reading and writing Lb dependent HitMap histograms"};

◆ m_calibModuleListTool

ToolHandle<ISCT_CalibModuleListTool> SCTCalib::m_calibModuleListTool {this, "SCT_CalibModuleListTool", "SCT_CalibModuleListTool", "Tool for handling list of modules"}
private

Definition at line 107 of file SCTCalib.h.

107{this, "SCT_CalibModuleListTool", "SCT_CalibModuleListTool", "Tool for handling list of modules"};

◆ m_ConfigurationConditionsTool

ToolHandle<ISCT_ConfigurationConditionsTool> SCTCalib::m_ConfigurationConditionsTool {this, "SCT_ConfigurationConditionsTool", "SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool", "Tool to retrieve SCT Configuration"}
private

Definition at line 100 of file SCTCalib.h.

100{this, "SCT_ConfigurationConditionsTool", "SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool", "Tool to retrieve SCT Configuration"};

◆ m_deadChipMinStat

UnsignedIntegerProperty SCTCalib::m_deadChipMinStat {this, "DeadChipMinStat", 200000}
private

Definition at line 190 of file SCTCalib.h.

190{this, "DeadChipMinStat", 200000};

◆ m_deadChipsFile

StringProperty SCTCalib::m_deadChipsFile {this, "DeadChipsFile", "DeadChipsFile.xml", "Output XML for dead chips"}
private

Definition at line 223 of file SCTCalib.h.

223{this, "DeadChipsFile", "DeadChipsFile.xml", "Output XML for dead chips"};

◆ m_deadChipSignificance

UnsignedIntegerProperty SCTCalib::m_deadChipSignificance {this, "DeadChipSignificance", 10}
private

Definition at line 192 of file SCTCalib.h.

192{this, "DeadChipSignificance", 10};

◆ m_deadChipUploadTest

BooleanProperty SCTCalib::m_deadChipUploadTest {this, "DeadChipUploadTest", true}
private

Definition at line 195 of file SCTCalib.h.

195{this, "DeadChipUploadTest", true};

◆ m_deadNotQuiet

BooleanProperty SCTCalib::m_deadNotQuiet {this, "DeadNotQuiet", true}
private

Definition at line 197 of file SCTCalib.h.

197{this, "DeadNotQuiet", true};

◆ m_deadStripMinStat

UnsignedIntegerProperty SCTCalib::m_deadStripMinStat {this, "DeadStripMinStat", 200000}
private

Definition at line 188 of file SCTCalib.h.

188{this, "DeadStripMinStat", 200000};

◆ m_deadStripMinStatBusy

UnsignedIntegerProperty SCTCalib::m_deadStripMinStatBusy {this, "DeadStripMinStatBusy", 1600000}
private

Definition at line 189 of file SCTCalib.h.

189{this, "DeadStripMinStatBusy", 1600000};

◆ m_deadStripsFile

StringProperty SCTCalib::m_deadStripsFile {this, "DeadStripsFile", "DeadStripsFile.xml", "Output XML for dead strips"}
private

Definition at line 222 of file SCTCalib.h.

222{this, "DeadStripsFile", "DeadStripsFile.xml", "Output XML for dead strips"};

◆ m_deadStripSignificance

UnsignedIntegerProperty SCTCalib::m_deadStripSignificance {this, "DeadStripSignificance", 10}
private

Definition at line 191 of file SCTCalib.h.

191{this, "DeadStripSignificance", 10};

◆ m_deadStripUploadTest

BooleanProperty SCTCalib::m_deadStripUploadTest {this, "DeadStripUploadTest", true}
private

Definition at line 196 of file SCTCalib.h.

196{this, "DeadStripUploadTest", true};

◆ m_deadSummaryFile

StringProperty SCTCalib::m_deadSummaryFile {this, "DeadSummaryFile", "DeadSummaryFile.xml", "Output XML for summary of Dead Finding"}
private

Definition at line 224 of file SCTCalib.h.

224{this, "DeadSummaryFile", "DeadSummaryFile.xml", "Output XML for summary of Dead Finding"};

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

BooleanProperty SCTCalib::m_doBSErrorDB {this, "DoBSErrorDB", false}
private

Definition at line 158 of file SCTCalib.h.

158{this, "DoBSErrorDB", false};

◆ m_doBSErrors

BooleanProperty SCTCalib::m_doBSErrors {this, "DoBSErrors", false}
private

Definition at line 150 of file SCTCalib.h.

150{this, "DoBSErrors", false};

◆ m_doDeadChip

BooleanProperty SCTCalib::m_doDeadChip {this, "DoDeadChip", false}
private

Definition at line 154 of file SCTCalib.h.

154{this, "DoDeadChip", false};

◆ m_doDeadStrip

BooleanProperty SCTCalib::m_doDeadStrip {this, "DoDeadStrip", false}
private

Definition at line 153 of file SCTCalib.h.

153{this, "DoDeadStrip", false};

◆ m_doEfficiency

BooleanProperty SCTCalib::m_doEfficiency {this, "DoEfficiency", false}
private

Definition at line 157 of file SCTCalib.h.

157{this, "DoEfficiency", false};

◆ m_doHitMaps

BooleanProperty SCTCalib::m_doHitMaps {this, "DoHitMaps", true}
private

Definition at line 146 of file SCTCalib.h.

146{this, "DoHitMaps", true};

◆ m_doHitMapsLB

BooleanProperty SCTCalib::m_doHitMapsLB {this, "DoHitMapsLB", true}
private

Definition at line 147 of file SCTCalib.h.

147{this, "DoHitMapsLB", true};

◆ m_doHV

BooleanProperty SCTCalib::m_doHV {this, "DoHV", false}
private

Definition at line 152 of file SCTCalib.h.

152{this, "DoHV", false};

◆ m_doLorentzAngle

BooleanProperty SCTCalib::m_doLorentzAngle {this, "DoLorentzAngle", false}
private

Definition at line 159 of file SCTCalib.h.

159{this, "DoLorentzAngle", false};

◆ m_doNoiseOccupancy

BooleanProperty SCTCalib::m_doNoiseOccupancy {this, "DoNoiseOccupancy", false}
private

Definition at line 155 of file SCTCalib.h.

155{this, "DoNoiseOccupancy", false};

◆ m_doNoisyStrip

BooleanProperty SCTCalib::m_doNoisyStrip {this, "DoNoisyStrip", true}
private

Definition at line 151 of file SCTCalib.h.

151{this, "DoNoisyStrip", true};

◆ m_doRawOccupancy

BooleanProperty SCTCalib::m_doRawOccupancy {this, "DoRawOccupancy", false}
private

Definition at line 156 of file SCTCalib.h.

156{this, "DoRawOccupancy", false};

◆ m_efficiencyChipFile

StringProperty SCTCalib::m_efficiencyChipFile {this, "EfficiencyChipFile", "EfficiencyChipSummary.xml", "Output XML for chip efficiency"}
private

Definition at line 231 of file SCTCalib.h.

231{this, "EfficiencyChipFile", "EfficiencyChipSummary.xml", "Output XML for chip efficiency"};

◆ m_efficiencyDoChips

BooleanProperty SCTCalib::m_efficiencyDoChips {this, "EfficiencyDoChips", true}
private

Definition at line 205 of file SCTCalib.h.

205{this, "EfficiencyDoChips", true};

◆ m_efficiencyMinStat

UnsignedIntegerProperty SCTCalib::m_efficiencyMinStat {this, "EfficiencyMinStat", 50000}
private

Definition at line 204 of file SCTCalib.h.

204{this, "EfficiencyMinStat", 50000};

◆ m_efficiencyModuleFile

StringProperty SCTCalib::m_efficiencyModuleFile {this, "EfficiencyModuleFile", "EfficiencyModuleSummary.xml", "Output XML for efficiency"}
private

Definition at line 230 of file SCTCalib.h.

230{this, "EfficiencyModuleFile", "EfficiencyModuleSummary.xml", "Output XML for efficiency"};

◆ m_efficiencySummaryFile

StringProperty SCTCalib::m_efficiencySummaryFile {this, "EfficiencySummaryFile", "EfficiencySummaryFile.xml", "Output XML for summary of efficiency"}
private

Definition at line 229 of file SCTCalib.h.

229{this, "EfficiencySummaryFile", "EfficiencySummaryFile.xml", "Output XML for summary of efficiency"};

◆ m_eventNumber

IntegerProperty SCTCalib::m_eventNumber {this, "EventNumber", -1}
private

Definition at line 130 of file SCTCalib.h.

130{this, "EventNumber", -1};

◆ 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 AthCommonAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

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

Empty if no symlinks were found.

Definition at line 108 of file AthCommonAlgorithm.h.

◆ m_gofile

std::ofstream SCTCalib::m_gofile
private

Definition at line 115 of file SCTCalib.h.

◆ m_h_phiVsNstripsSideHistoVector

std::vector<TProfile*> SCTCalib::m_h_phiVsNstripsSideHistoVector
private

Definition at line 255 of file SCTCalib.h.

◆ m_histBefore2010

BooleanProperty SCTCalib::m_histBefore2010 {this, "HistBefore2010", false, "True if HIST is from 2009 or earlier"}
private

Definition at line 144 of file SCTCalib.h.

144{this, "HistBefore2010", false, "True if HIST is from 2009 or earlier"};

◆ m_input_hist

StringArrayProperty SCTCalib::m_input_hist {this, "InputHist", {}, "list of HIST (assuming 1 file)"}
private

Definition at line 141 of file SCTCalib.h.

141{this, "InputHist", {}, "list of HIST (assuming 1 file)"};

◆ m_inputHist

TFile* SCTCalib::m_inputHist {nullptr}
private

Definition at line 248 of file SCTCalib.h.

248{nullptr}; // Monitoring histograms

◆ m_iovStart

IOVTime SCTCalib::m_iovStart
private

Definition at line 244 of file SCTCalib.h.

◆ m_iovStop

IOVTime SCTCalib::m_iovStop
private

Definition at line 245 of file SCTCalib.h.

◆ m_LBMax

StringProperty SCTCalib::m_LBMax {this, "LBMax", "1000", "from runInfo.txt"}
private

Definition at line 134 of file SCTCalib.h.

134{this, "LBMax", "1000", "from runInfo.txt"};

◆ m_LBRange

int SCTCalib::m_LBRange {-999}
private

Definition at line 243 of file SCTCalib.h.

243{-999};

◆ m_LorentzAngleDebugMode

BooleanProperty SCTCalib::m_LorentzAngleDebugMode {this, "LorentzAngleDebugMode", true}
private

Definition at line 209 of file SCTCalib.h.

209{this, "LorentzAngleDebugMode", true};

◆ m_LorentzAngleFile

StringProperty SCTCalib::m_LorentzAngleFile {this, "LorentzAngleFile", "LorentzAngleFile.xml", "Output XML for noise occupancy"}
private

Definition at line 234 of file SCTCalib.h.

234{this, "LorentzAngleFile", "LorentzAngleFile.xml", "Output XML for noise occupancy"};

◆ m_LorentzAngleMinStat

UnsignedIntegerProperty SCTCalib::m_LorentzAngleMinStat {this, "LorentzAngleMinStat", 50000}
private

Definition at line 207 of file SCTCalib.h.

207{this, "LorentzAngleMinStat", 50000};

◆ m_LorentzAngleSummaryFile

StringProperty SCTCalib::m_LorentzAngleSummaryFile {this, "LorentzAngleSummaryFile", "LorentzAngleSummaryFile.xml", "Output XML for summary of lorentz angle"}
private

Definition at line 235 of file SCTCalib.h.

235{this, "LorentzAngleSummaryFile", "LorentzAngleSummaryFile.xml", "Output XML for summary of lorentz angle"};

◆ m_MajorityConditionsTool

ToolHandle<ISCT_DetectorLevelConditionsTool> SCTCalib::m_MajorityConditionsTool {this, "SCT_MajorityConditionsTool", "SCT_MajorityConditionsTool", "Tool to retrieve the majority conditions of SCT"}
private

Definition at line 102 of file SCTCalib.h.

102{this, "SCT_MajorityConditionsTool", "SCT_MajorityConditionsTool", "Tool to retrieve the majority conditions of SCT"};

◆ m_maxtbins

IntegerProperty SCTCalib::m_maxtbins {this, "HVBinWidth", 5}
private

Definition at line 186 of file SCTCalib.h.

186{this, "HVBinWidth", 5};

◆ m_nLbsMerged

IntegerProperty SCTCalib::m_nLbsMerged {this, "LbsPerWindow", 30}
private

Definition at line 148 of file SCTCalib.h.

148{this, "LbsPerWindow", 30};

◆ m_noiseOccupancyFile

StringProperty SCTCalib::m_noiseOccupancyFile {this, "NoiseOccupancyFile", "NoiseOccupancyFile.xml", "Output XML for noise occupancy"}
private

Definition at line 226 of file SCTCalib.h.

226{this, "NoiseOccupancyFile", "NoiseOccupancyFile.xml", "Output XML for noise occupancy"};

◆ m_noiseOccupancyMinStat

UnsignedIntegerProperty SCTCalib::m_noiseOccupancyMinStat {this, "NoiseOccupancyMinStat", 50000}
private

Definition at line 202 of file SCTCalib.h.

202{this, "NoiseOccupancyMinStat", 50000};

◆ m_noiseOccupancySummaryFile

StringProperty SCTCalib::m_noiseOccupancySummaryFile {this, "NoiseOccupancySummaryFile", "NoiseOccupancySummaryFile.xml", "Output XML for summary of noise occupancy"}
private

Definition at line 227 of file SCTCalib.h.

227{this, "NoiseOccupancySummaryFile", "NoiseOccupancySummaryFile.xml", "Output XML for summary of noise occupancy"};

◆ m_noiseOccupancyTriggerAware

BooleanProperty SCTCalib::m_noiseOccupancyTriggerAware {this, "NoiseOccupancyTriggerAware", true}
private

Definition at line 201 of file SCTCalib.h.

201{this, "NoiseOccupancyTriggerAware", true};

◆ m_noisyChipFraction

FloatProperty SCTCalib::m_noisyChipFraction {this, "NoisyChipFraction", 0.500}
private

Definition at line 184 of file SCTCalib.h.

184{this, "NoisyChipFraction", 0.500};

◆ m_noisyMinStat

UnsignedIntegerProperty SCTCalib::m_noisyMinStat {this, "NoisyMinStat", 50000}
private

Definition at line 172 of file SCTCalib.h.

172{this, "NoisyMinStat", 50000};

◆ m_noisyModuleAverageInDB

FloatProperty SCTCalib::m_noisyModuleAverageInDB {this, "NoisyModuleAverageInDB", -1., "Average number of modules with at least 1 noisy strip in COOL"}
private

Definition at line 165 of file SCTCalib.h.

165{this, "NoisyModuleAverageInDB", -1., "Average number of modules with at least 1 noisy strip in COOL"};

◆ m_noisyModuleDiff

FloatProperty SCTCalib::m_noisyModuleDiff {this, "NoisyModuleDiff", 0.200}
private

Definition at line 169 of file SCTCalib.h.

169{this, "NoisyModuleDiff", 0.200};

◆ m_noisyModuleList

IntegerProperty SCTCalib::m_noisyModuleList {this, "NoisyModuleList", 200}
private

Definition at line 168 of file SCTCalib.h.

168{this, "NoisyModuleList", 200};

◆ m_noisyStripAll

BooleanProperty SCTCalib::m_noisyStripAll {this, "NoisyStripAll", true}
private

Definition at line 173 of file SCTCalib.h.

173{this, "NoisyStripAll", true};

◆ m_noisyStripAverageInDB

FloatProperty SCTCalib::m_noisyStripAverageInDB {this, "NoisyStripAverageInDB", -999., "Number of noisy strips of the last run uploaded to COOL"}
private

Definition at line 167 of file SCTCalib.h.

167{this, "NoisyStripAverageInDB", -999., "Number of noisy strips of the last run uploaded to COOL"};

◆ m_noisyStripDiff

FloatProperty SCTCalib::m_noisyStripDiff {this, "NoisyStripDiff", 128.}
private

Definition at line 170 of file SCTCalib.h.

170{this, "NoisyStripDiff", 128.};

◆ m_noisyStripLastRunInDB

IntegerProperty SCTCalib::m_noisyStripLastRunInDB {this, "NoisyStripLastRunInDB", -999, "Number of noisy strips of the last run uploaded to COOL"}
private

Definition at line 166 of file SCTCalib.h.

166{this, "NoisyStripLastRunInDB", -999, "Number of noisy strips of the last run uploaded to COOL"};

◆ m_noisyStripThrDef

BooleanProperty SCTCalib::m_noisyStripThrDef {this, "NoisyStripThrDef", true}
private

Definition at line 174 of file SCTCalib.h.

174{this, "NoisyStripThrDef", true};

◆ m_noisyStripThrOffline

FloatProperty SCTCalib::m_noisyStripThrOffline {this, "NoisyStripThrOffline", 1.500E-2}
private

Definition at line 175 of file SCTCalib.h.

175{this, "NoisyStripThrOffline", 1.500E-2};

◆ m_noisyStripThrOnline

FloatProperty SCTCalib::m_noisyStripThrOnline {this, "NoisyStripThrOnline", 1.500E-3}
private

Definition at line 176 of file SCTCalib.h.

176{this, "NoisyStripThrOnline", 1.500E-3};

◆ m_noisyThr4DeadFinding

FloatProperty SCTCalib::m_noisyThr4DeadFinding {this, "NoisyThr4DeadFinding", 1.500E-3}
private

Definition at line 194 of file SCTCalib.h.

194{this, "NoisyThr4DeadFinding", 1.500E-3};

◆ m_noisyUpdate

BooleanProperty SCTCalib::m_noisyUpdate {this, "NoisyUpdate", true}
private

Definition at line 162 of file SCTCalib.h.

162{this, "NoisyUpdate", true};

◆ m_noisyUploadTest

BooleanProperty SCTCalib::m_noisyUploadTest {this, "NoisyUploadTest", true}
private

Definition at line 164 of file SCTCalib.h.

164{this, "NoisyUploadTest", true};

◆ m_noisyWaferAllStrips

BooleanProperty SCTCalib::m_noisyWaferAllStrips {this, "NoisyWaferAllStrips", true}
private

Definition at line 179 of file SCTCalib.h.

179{this, "NoisyWaferAllStrips", true};

◆ m_noisyWaferFinder

BooleanProperty SCTCalib::m_noisyWaferFinder {this, "NoisyWaferFinder", true}
private

Definition at line 177 of file SCTCalib.h.

177{this, "NoisyWaferFinder", true};

◆ m_noisyWaferFraction

FloatProperty SCTCalib::m_noisyWaferFraction {this, "NoisyWaferFraction", 0.500}
private

Definition at line 183 of file SCTCalib.h.

183{this, "NoisyWaferFraction", 0.500};

◆ m_noisyWaferThrBarrel

FloatProperty SCTCalib::m_noisyWaferThrBarrel {this, "NoisyWaferThrBarrel", 1.000E-4}
private

Definition at line 180 of file SCTCalib.h.

180{this, "NoisyWaferThrBarrel", 1.000E-4};

◆ m_noisyWaferThrECA

FloatProperty SCTCalib::m_noisyWaferThrECA {this, "NoisyWaferThrECA", 1.000E-4}
private

Definition at line 181 of file SCTCalib.h.

181{this, "NoisyWaferThrECA", 1.000E-4};

◆ m_noisyWaferThrECC

FloatProperty SCTCalib::m_noisyWaferThrECC {this, "NoisyWaferThrECC", 1.000E-4}
private

Definition at line 182 of file SCTCalib.h.

182{this, "NoisyWaferThrECC", 1.000E-4};

◆ m_noisyWaferWrite

BooleanProperty SCTCalib::m_noisyWaferWrite {this, "NoisyWaferWrite", true}
private

Definition at line 178 of file SCTCalib.h.

178{this, "NoisyWaferWrite", true};

◆ m_noisyWriteAllModules

BooleanProperty SCTCalib::m_noisyWriteAllModules {this, "NoisyWriteAllModules", true}
private

Definition at line 163 of file SCTCalib.h.

163{this, "NoisyWriteAllModules", true};

◆ m_numberOfEvents

unsigned long long SCTCalib::m_numberOfEvents {0}
private

Definition at line 239 of file SCTCalib.h.

239{0};

◆ m_numberOfEventsHist

unsigned long long SCTCalib::m_numberOfEventsHist {0}
private

Definition at line 240 of file SCTCalib.h.

240{0}; // For number of events from HIST

◆ m_numOfLBsProcessed

int SCTCalib::m_numOfLBsProcessed {0}
private

Definition at line 238 of file SCTCalib.h.

238{0};

◆ m_outBSErrModule

std::ofstream SCTCalib::m_outBSErrModule
private

Definition at line 125 of file SCTCalib.h.

◆ m_outBSErrSummary

std::ofstream SCTCalib::m_outBSErrSummary
private

Definition at line 124 of file SCTCalib.h.

◆ m_outDeadChips

std::ofstream SCTCalib::m_outDeadChips
private

Definition at line 119 of file SCTCalib.h.

◆ m_outDeadStrips

std::ofstream SCTCalib::m_outDeadStrips
private

Definition at line 118 of file SCTCalib.h.

◆ m_outDeadSummary

std::ofstream SCTCalib::m_outDeadSummary
private

Definition at line 120 of file SCTCalib.h.

◆ m_outEffSummary

std::ofstream SCTCalib::m_outEffSummary
private

Definition at line 123 of file SCTCalib.h.

◆ m_outLASummary

std::ofstream SCTCalib::m_outLASummary
private

Definition at line 126 of file SCTCalib.h.

◆ m_outNOSummary

std::ofstream SCTCalib::m_outNOSummary
private

Definition at line 121 of file SCTCalib.h.

◆ m_outROSummary

std::ofstream SCTCalib::m_outROSummary
private

Definition at line 122 of file SCTCalib.h.

◆ m_pCalibWriteTool

ToolHandle<SCTCalibWriteTool> SCTCalib::m_pCalibWriteTool {this, "SCTCalibWriteTool", "SCTCalibWriteTool", "Tool to write out data from calibration loop"}
private

Definition at line 99 of file SCTCalib.h.

99{this, "SCTCalibWriteTool", "SCTCalibWriteTool", "Tool to write out data from calibration loop"};

◆ m_pnoiseoccupancymapHistoVector

std::vector<TProfile2D*> SCTCalib::m_pnoiseoccupancymapHistoVector
private

Definition at line 252 of file SCTCalib.h.

◆ m_pnoiseoccupancymapHistoVectorECm

std::vector<TProfile2D*> SCTCalib::m_pnoiseoccupancymapHistoVectorECm
private

Definition at line 254 of file SCTCalib.h.

◆ m_pnoiseoccupancymapHistoVectorECp

std::vector<TProfile2D*> SCTCalib::m_pnoiseoccupancymapHistoVectorECp
private

Definition at line 253 of file SCTCalib.h.

◆ m_pSCTHelper

const SCT_ID* SCTCalib::m_pSCTHelper {nullptr}
private

Definition at line 96 of file SCTCalib.h.

96{nullptr};

◆ m_quietThresholdChip

FloatProperty SCTCalib::m_quietThresholdChip {this, "QuietThresholdChip", 0.5}
private

Definition at line 199 of file SCTCalib.h.

199{this, "QuietThresholdChip", 0.5};

◆ m_quietThresholdStrip

FloatProperty SCTCalib::m_quietThresholdStrip {this, "QuietThresholdStrip", 0.5}
private

Definition at line 198 of file SCTCalib.h.

198{this, "QuietThresholdStrip", 0.5};

◆ m_rawOccupancyMinStat

UnsignedIntegerProperty SCTCalib::m_rawOccupancyMinStat {this, "RawOccupancyMinStat", 50000}
private

Definition at line 203 of file SCTCalib.h.

203{this, "RawOccupancyMinStat", 50000};

◆ m_rawOccupancySummaryFile

StringProperty SCTCalib::m_rawOccupancySummaryFile {this,"RawOccupancySummaryFile", "RawOccupancySummaryFile.xml", "Output XML for summary of raw occupancy"}
private

Definition at line 228 of file SCTCalib.h.

228{this,"RawOccupancySummaryFile", "RawOccupancySummaryFile.xml", "Output XML for summary of raw occupancy"};

◆ m_readBS

BooleanProperty SCTCalib::m_readBS {this, "ReadBS", false, "True if BS is used"}
private

Definition at line 143 of file SCTCalib.h.

143{this, "ReadBS", false, "True if BS is used"};

◆ m_ReadCalibDataTool

ToolHandle<ISCT_ReadCalibDataTool> SCTCalib::m_ReadCalibDataTool {this, "SCT_ReadCalibDataTool", "SCT_ReadCalibDataTool/InDetSCT_ReadCalibDataTool", "Tool to retrieve SCT calibration data"}
private

Definition at line 101 of file SCTCalib.h.

101{this, "SCT_ReadCalibDataTool", "SCT_ReadCalibDataTool/InDetSCT_ReadCalibDataTool", "Tool to retrieve SCT calibration data"};

◆ m_readHIST

bool SCTCalib::m_readHIST
private

Definition at line 249 of file SCTCalib.h.

◆ m_readHitMaps

BooleanProperty SCTCalib::m_readHitMaps {this, "ReadHitMaps", false}
private

Definition at line 149 of file SCTCalib.h.

149{this, "ReadHitMaps", false};

◆ m_runEndTime

StringProperty SCTCalib::m_runEndTime {this, "RunEndTime", "", "from runInfo.txt"}
private

Definition at line 133 of file SCTCalib.h.

133{this, "RunEndTime", "", "from runInfo.txt"};

◆ m_runNumber

IntegerProperty SCTCalib::m_runNumber {this, "RunNumber", -1}
private

Definition at line 129 of file SCTCalib.h.

129{this, "RunNumber", -1};

◆ m_runStartTime

StringProperty SCTCalib::m_runStartTime {this, "RunStartTime", "", "from runInfo.txt"}
private

Definition at line 132 of file SCTCalib.h.

132{this, "RunStartTime", "", "from runInfo.txt"};

◆ m_SCTDetEleCollKey

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

Definition at line 97 of file SCTCalib.h.

97{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};

◆ m_summarytrips

std::vector<std::vector<std::pair<int, int> > > SCTCalib::m_summarytrips
private

Definition at line 112 of file SCTCalib.h.

◆ m_summarytripslb

std::vector<std::vector<std::pair<int, int> > > SCTCalib::m_summarytripslb
private

Definition at line 113 of file SCTCalib.h.

◆ m_tagID4DeadChips

StringProperty SCTCalib::m_tagID4DeadChips {this, "TagID4DeadChips", "SctDerivedDeadChips-001-00"}
private

Definition at line 213 of file SCTCalib.h.

213{this, "TagID4DeadChips", "SctDerivedDeadChips-001-00"};

◆ m_tagID4DeadStrips

StringProperty SCTCalib::m_tagID4DeadStrips {this, "TagID4DeadStrips", "SctDerivedDeadStrips-001-00"}
private

Definition at line 212 of file SCTCalib.h.

212{this, "TagID4DeadStrips", "SctDerivedDeadStrips-001-00"};

◆ m_tagID4NoiseOccupancy

StringProperty SCTCalib::m_tagID4NoiseOccupancy {this, "TagID4NoiseOccupancy", "SctDerivedNoiseOccupancy-001-00"}
private

Definition at line 214 of file SCTCalib.h.

214{this, "TagID4NoiseOccupancy", "SctDerivedNoiseOccupancy-001-00"};

◆ m_tagID4NoisyStrips

StringProperty SCTCalib::m_tagID4NoisyStrips {this, "TagID4NoisyStrips", "SctDerivedMonitoring-001-00"}
private

Definition at line 211 of file SCTCalib.h.

211{this, "TagID4NoisyStrips", "SctDerivedMonitoring-001-00"};

◆ m_useBSError

BooleanProperty SCTCalib::m_useBSError {this, "UseBSError", false}
private

Definition at line 139 of file SCTCalib.h.

139{this, "UseBSError", false};

◆ m_useCalibration

BooleanProperty SCTCalib::m_useCalibration {this, "UseCalibration", true}
private

Definition at line 137 of file SCTCalib.h.

137{this, "UseCalibration", true};

◆ m_useConfiguration

BooleanProperty SCTCalib::m_useConfiguration {this, "UseConfiguration", true}
private

Definition at line 136 of file SCTCalib.h.

136{this, "UseConfiguration", true};

◆ m_useMajority

BooleanProperty SCTCalib::m_useMajority {this, "UseMajority", true}
private

Definition at line 138 of file SCTCalib.h.

138{this, "UseMajority", true};

◆ m_utcBegin

std::string SCTCalib::m_utcBegin
private

Definition at line 241 of file SCTCalib.h.

◆ m_utcEnd

std::string SCTCalib::m_utcEnd
private

Definition at line 242 of file SCTCalib.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_writeToCool

BooleanProperty SCTCalib::m_writeToCool {this, "WriteToCool", true}
private

Definition at line 160 of file SCTCalib.h.

160{this, "WriteToCool", true};

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