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 &, const char *, const char *, 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 &, const char *) const
StatusCode openXML4DeadSummary (std::ofstream &file, const char *type, int n_Module=0, int n_Link=0, int n_Chip=0, int n_Strip=0) const
StatusCode wrapUpXML4Summary (std::ofstream &, const char *, std::ostringstream &) const
StatusCode addToSummaryStr (std::ostringstream &, const Identifier &, const char *, const char *, const char *) 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 112 of file SCTCalib.cxx.

112 :
113 AthAlgorithm(name, pSvcLocator)
114{
116}
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 2746 of file SCTCalib.cxx.

2746 {
2747 IdentifierHash waferHash{m_pSCTHelper->wafer_hash(waferId)};
2749 for (int iStrip{0}; iStrip != nbins; ++iStrip) {
2750 Identifier stripId{m_pSCTHelper->strip_id(waferId, iStrip)};
2751 if (!isNoisy) { //--- Add all strips
2752 stripIdList.insert(stripId);
2753 } else {
2754 const float stripOccupancy{ (float) m_calibHitmapTool->getBinForHistogramIndex(iStrip + 1, waferHash.value()) / m_numberOfEvents};
2755 if (stripOccupancy > noisyStripThr) {
2756 if (!isNew) { //--- All noisy strips
2757 stripIdList.insert(stripId);
2758 } else { //--- New noisy strips : compared with configuration and calibration
2759 const bool isGoodInConfiguration{m_useConfiguration ? m_ConfigurationConditionsTool->isGood(stripId, ctx, InDetConditions::SCT_STRIP) : true};
2760 const bool isGoodInCalibration{m_useCalibration ? m_ReadCalibDataTool->isGood(stripId, ctx, InDetConditions::SCT_STRIP) : true};
2762 if (isGoodInConfiguration and isGoodInCalibration) {
2763 stripIdList.insert(stripId);
2764 }
2765 }
2766 }
2767 }
2768 }
2769 }
2770 return StatusCode::SUCCESS;
2771}
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,
const char * type,
const char * stripId,
const char * chipId ) const
private

Definition at line 2616 of file SCTCalib.cxx.

2616 {
2617 //--- Remove first&end spaces in DefectList
2618 const std::string tmpstrip{stripId};
2619 const std::string tmpchip{chipId};
2620 int len_strip{static_cast<int>(tmpstrip.length())};
2621 int len_chip{static_cast<int>(tmpchip.length())};
2622 std::string stripList{""};
2623 std::string chipList{""};
2624 if (len_strip > 0) {
2625 int stringLength = (len_strip-2 >0) ? len_strip-2 : len_strip;
2626 stripList = tmpstrip.substr(1, stringLength);
2627 }
2628 if (len_chip > 0) {
2629 int stringLength = (len_chip-2 >0) ? len_chip-2 : len_chip;
2630 chipList = tmpchip.substr(1, stringLength);
2631 }
2632 //--- Identifier/SN
2633 IdentifierHash waferHash{m_pSCTHelper->wafer_hash(waferId)};
2634 SCT_SerialNumber sn{m_CablingTool->getSerialNumberFromHash(waferHash)};
2635 //--- Preparing linkList
2636 std::string linkList{chipList2LinkList(stripList)};
2637 //--- Push to summary stream
2638 XmlStreamer m{"module", list};
2639 {
2640 XmlStreamer v{"value", "name", "SN", list};
2641 list << sn.str();
2642 }
2643 {
2644 XmlStreamer v{"value", "name", "BecLayerPhiEta", list};
2645 list << formatPosition(waferId, m_pSCTHelper, ".", false);
2646 }
2647 {
2648 XmlStreamer v{"value", "name", "LinkID", list};
2649 list << linkList;
2650 }
2651 {
2652 XmlStreamer v{"value", "name", "ChipID", list};
2653 list << stripList;
2654 }
2655 if (!strcmp(type, "DEAD")) {
2656 XmlStreamer v{"value", "name", "StripIDOnline", list};
2657 list << stripList;
2658 } else {
2659 ATH_MSG_ERROR("in addToSummaryStr : argument \"type\" needs to be \"DEAD\".");
2660 return StatusCode::FAILURE;
2661 }
2662
2663 return StatusCode::SUCCESS;
2664}
#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 2490 of file SCTCalib.cxx.

2490 {
2491 std::string tmp{DefectList};
2492 int length{static_cast<int>(tmp.length())};
2493 std::string Defect4DB{tmp.substr(1, length-2)}; // Removing first&end spaces in DefectList
2494
2495 file << xmlOpenChannel(m_pSCTHelper->module_id(waferId).get_identifier32().get_compact(), m_iovStart.re_time(), m_iovStop.re_time()) << linefeed
2496 << xmlValue("SampleSize", "10000") << linefeed
2497 << xmlValue("BarrelEndcap", m_pSCTHelper->barrel_ec(waferId)) << linefeed
2498 << xmlValue("Layer", m_pSCTHelper->layer_disk(waferId)) << linefeed
2499 << xmlValue("Eta", m_pSCTHelper->eta_module(waferId)) << linefeed
2500 << xmlValue("Phi", m_pSCTHelper->phi_module(waferId)) << linefeed
2501 << xmlValue("DefectType", DefectType) << linefeed
2502 << xmlValue("Threshold", Threshold) << linefeed
2503 << xmlValue("DefectList", std::move(Defect4DB)) << linefeed
2504 << xmlCloseChannel() << std::endl;
2505
2506 return StatusCode::SUCCESS;
2507}
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 2479 of file SCTCalib.cxx.

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

◆ 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 469 of file SCTCalib.cxx.

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

294 {
295
296 ATH_MSG_DEBUG("----- in execute() ----- ");
297
298 const bool majorityIsGoodOrUnused{(m_useMajority and m_MajorityConditionsTool->isGood(ctx)) or !m_useMajority};
299 if (m_readBS) {
300 //--- TimeStamp/LB range analyzed
301 const int timeStamp{static_cast<int>(ctx.eventID().time_stamp())};
302 const int lumiBlock{static_cast<int>(ctx.eventID().lumi_block())};
303 int timeStampBeginOld;
304 int timeStampEndOld;
305 m_calibEvtInfoTool->getTimeStamps(timeStampBeginOld, timeStampEndOld);
306 m_calibEvtInfoTool->setTimeStamp(std::min(timeStamp, timeStampBeginOld), std::max(timeStamp, timeStampEndOld));
307 int lbBeginOld;
308 int lbEndOld;
309 m_calibEvtInfoTool->getLumiBlock(lbBeginOld, lbEndOld);
310 m_calibEvtInfoTool->setLumiBlock(std::min(lumiBlock, lbBeginOld), std::max(lumiBlock, lbEndOld));
311 m_calibEvtInfoTool->setLumiBlock(lumiBlock);
312 m_calibEvtInfoTool->setTimeStamp(timeStamp);
313 if (m_doHitMapsLB and majorityIsGoodOrUnused) {
314 m_calibLbTool->setLb(ctx.eventID().lumi_block());
315 }
316 }
317
318 //--- Fill histograms for (1) Number of events and (2) Hitmaps
319 if (m_doHitMaps and majorityIsGoodOrUnused) m_calibHitmapTool->fill(m_readBS);
320
321 //--- Fill histograms for (1) Number of events and (2) Hits as a function of LB
322 if (m_doHitMapsLB and majorityIsGoodOrUnused) {
323 m_calibLbTool->fill(m_readBS);
324 }
325
326 //--- Fill histograms for (1) Number of events and (2) BSErrors
328
329 //--- Increment event counter : to be ready for the next event loop
330 m_calibEvtInfoTool->incrementCounter();
331
332 ATH_MSG_DEBUG("----- end of execute() ----- ");
333
334 return StatusCode::SUCCESS;
335}
#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 451 of file SCTCalib.cxx.

451 {
452 ATH_MSG_INFO("----- in finalize() ----- ");
453
454 if (m_writeToCool) {
455 if (!m_pCalibWriteTool.release().isSuccess()) {
456 ATH_MSG_ERROR("Failed to release m_pCalibWriteTool");
457 return StatusCode::FAILURE;
458 }
459 }
460
461 return StatusCode::SUCCESS;
462}
#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 3251 of file SCTCalib.cxx.

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

◆ getNoisyChips()

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

Definition at line 3165 of file SCTCalib.cxx.

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

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

◆ getNumNoisyStrips()

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

Definition at line 2719 of file SCTCalib.cxx.

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

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

◆ getStripList()

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

Definition at line 2854 of file SCTCalib.cxx.

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

◆ initialize()

StatusCode SCTCalib::initialize ( )
overridevirtual

Definition at line 122 of file SCTCalib.cxx.

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

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

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

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

◆ openXML4DB()

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

Definition at line 2458 of file SCTCalib.cxx.

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

◆ openXML4DeadSummary()

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

Definition at line 2513 of file SCTCalib.cxx.

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

Definition at line 2566 of file SCTCalib.cxx.

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

Definition at line 2598 of file SCTCalib.cxx.

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

◆ xmlChannelEfficiencyDataString()

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

Definition at line 2684 of file SCTCalib.cxx.

2684 {
2685 std::ostringstream os;
2686 os << " <module>" << std::endl
2687 << " " << xmlValue("SN", serial.str()) << std::endl
2688 << " " << xmlValue("SampleSize", "10000") << std::endl
2689 << " " << xmlValue("barrel_endcap", m_pSCTHelper->barrel_ec(waferId)) << std::endl
2690 << " " << xmlValue("Layer", m_pSCTHelper->layer_disk(waferId)) << linefeed
2691 << " " << xmlValue("Eta", m_pSCTHelper->eta_module(waferId)) << std::endl
2692 << " " << xmlValue("Phi", m_pSCTHelper->phi_module(waferId)) << std::endl
2693 << " " << xmlValue("Efficiency", efficiency) << std::endl
2694 << " " << xmlValue("Side", side )<<std::endl
2695 << " </module>";
2696 return os.str();
2697}
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 2701 of file SCTCalib.cxx.

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

◆ xmlChannelNoiseOccDataString()

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

Definition at line 2668 of file SCTCalib.cxx.

2668 {
2669 std::ostringstream os;
2670 os << xmlOpenChannel(waferId.get_identifier32().get_compact(), m_iovStart.re_time(), m_iovStop.re_time()) << std::endl
2671 << " " << xmlValue("SN", serial.str()) << std::endl
2672 << " " << xmlValue("SampleSize", "10000") << std::endl
2673 << " " << xmlValue("barrel_endcap", m_pSCTHelper->barrel_ec(waferId)) << std::endl
2674 << " " << xmlValue("Layer", m_pSCTHelper->layer_disk(waferId)) << linefeed
2675 << " " << xmlValue("Eta", m_pSCTHelper->eta_module(waferId)) << std::endl
2676 << " " << xmlValue("Phi", m_pSCTHelper->phi_module(waferId)) << std::endl
2677 << " " << xmlValue("NoiseOccupancy", occupancy) << std::endl
2678 << " " << xmlCloseChannel();
2679 return os.str();
2680}
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: