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 const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
bool filterPassed (const EventContext &ctx) const
void setFilterPassed (bool state, const EventContext &ctx) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
const EventContext & getContext () const
 Deprecated methods (use the ones with EventContext).
bool filterPassed () const
void setFilterPassed (bool state) 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 &, const char *, float, const char *) 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
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 65 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 77 of file SCTCalib.h.

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

◆ 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 89 of file SCTCalib.h.

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

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 with parameters:
BooleanProperty m_doNoiseOccupancy
Definition SCTCalib.h:154
BooleanProperty m_doBSErrorDB
Definition SCTCalib.h:157
BooleanProperty m_doRawOccupancy
Definition SCTCalib.h:155
BooleanProperty m_doEfficiency
Definition SCTCalib.h:156
BooleanProperty m_doLorentzAngle
Definition SCTCalib.h:158
bool m_readHIST
Definition SCTCalib.h:248

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

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

◆ addToSummaryStr()

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

Definition at line 2611 of file SCTCalib.cxx.

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

Definition at line 2485 of file SCTCalib.cxx.

2485 {
2486 std::string tmp{DefectList};
2487 int length{static_cast<int>(tmp.length())};
2488 std::string Defect4DB{tmp.substr(1, length-2)}; // Removing first&end spaces in DefectList
2489
2490 file << xmlOpenChannel(m_pSCTHelper->module_id(waferId).get_identifier32().get_compact(), m_iovStart.re_time(), m_iovStop.re_time()) << linefeed
2491 << xmlValue("SampleSize", "10000") << linefeed
2492 << xmlValue("BarrelEndcap", m_pSCTHelper->barrel_ec(waferId)) << linefeed
2493 << xmlValue("Layer", m_pSCTHelper->layer_disk(waferId)) << linefeed
2494 << xmlValue("Eta", m_pSCTHelper->eta_module(waferId)) << linefeed
2495 << xmlValue("Phi", m_pSCTHelper->phi_module(waferId)) << linefeed
2496 << xmlValue("DefectType", DefectType) << linefeed
2497 << xmlValue("Threshold", Threshold) << linefeed
2498 << xmlValue("DefectList", Defect4DB) << linefeed
2499 << xmlCloseChannel() << std::endl;
2500
2501 return StatusCode::SUCCESS;
2502}
double length(const pvec &v)
Threshold
IOVTime m_iovStart
Definition SCTCalib.h:243
IOVTime m_iovStop
Definition SCTCalib.h:244
std::string xmlCloseChannel()
std::string xmlOpenChannel(const long id, const T since, const T until)
std::string xmlValue(const std::string &name, const T value)
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 2474 of file SCTCalib.cxx.

2474 {
2475 file << "</channels>" << std::endl;
2476 if (file.is_open()) {
2477 file.close();
2478 return StatusCode::SUCCESS;
2479 } else {
2480 return StatusCode::FAILURE;
2481 }
2482}

◆ 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:114

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

Provides access to the EventContext if needed but is non-const as opposed to AthReentrantAlgorithm.

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:105
ToolHandle< ISCT_CalibEvtInfo > m_calibEvtInfoTool
Definition SCTCalib.h:107
BooleanProperty m_useMajority
Definition SCTCalib.h:137
ToolHandle< ISCT_CalibHistoTool > m_calibLbTool
Definition SCTCalib.h:104
ToolHandle< ISCT_DetectorLevelConditionsTool > m_MajorityConditionsTool
Definition SCTCalib.h:101
BooleanProperty m_doBSErrors
Definition SCTCalib.h:149
BooleanProperty m_doHitMaps
Definition SCTCalib.h:145
BooleanProperty m_doHitMapsLB
Definition SCTCalib.h:146
BooleanProperty m_readBS
Definition SCTCalib.h:142
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 & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ filterPassed() [1/2]

bool AthAlgorithm::filterPassed ( ) const
inherited

Definition at line 94 of file AthAlgorithm.cxx.

94 {
95 return filterPassed( Gaudi::Hive::currentContext() );
96}
bool filterPassed() const

◆ filterPassed() [2/2]

bool AthAlgorithm::filterPassed ( const EventContext & ctx) const
inherited

Definition at line 98 of file AthAlgorithm.cxx.

98 {
99 return execState( ctx ).filterPassed();
100}

◆ 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:159
ToolHandle< SCTCalibWriteTool > m_pCalibWriteTool
Definition SCTCalib.h:98

◆ getContext()

const EventContext & AthAlgorithm::getContext ( ) const
inherited

Deprecated methods (use the ones with EventContext).

Definition at line 90 of file AthAlgorithm.cxx.

90 {
91 return Gaudi::Hive::currentContext();
92}

◆ getLBList()

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

Definition at line 3246 of file SCTCalib.cxx.

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

◆ getNoisyChips()

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

Definition at line 3160 of file SCTCalib.cxx.

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

◆ getNoisyLB()

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

Definition at line 3205 of file SCTCalib.cxx.

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

◆ getNumNoisyStrips()

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

Definition at line 2714 of file SCTCalib.cxx.

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

◆ getOverlapStripList()

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

Definition at line 2828 of file SCTCalib.cxx.

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

◆ getStripList()

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

Definition at line 2849 of file SCTCalib.cxx.

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

◆ 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{dynamic_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:202
UnsignedIntegerProperty m_efficiencyMinStat
Definition SCTCalib.h:203
ToolHandle< ISCT_CalibModuleListTool > m_calibModuleListTool
Definition SCTCalib.h:106
bool retrievedService(S &service) const
Definition SCTCalib.h:284
StringProperty m_LBMax
Definition SCTCalib.h:133
BooleanProperty m_doHV
Definition SCTCalib.h:151
UnsignedIntegerProperty m_noiseOccupancyMinStat
Definition SCTCalib.h:201
UnsignedIntegerProperty m_LorentzAngleMinStat
Definition SCTCalib.h:206
StringArrayProperty m_input_hist
Definition SCTCalib.h:140
IntegerProperty m_nLbsMerged
Definition SCTCalib.h:147
unsigned long long m_numberOfEventsHist
Definition SCTCalib.h:239
BooleanProperty m_readHitMaps
Definition SCTCalib.h:148
UnsignedIntegerProperty m_BSErrorDBMinStat
Definition SCTCalib.h:205
BooleanProperty m_useBSError
Definition SCTCalib.h:138
IntegerProperty m_eventNumber
Definition SCTCalib.h:129
StringProperty m_runStartTime
Definition SCTCalib.h:131
StringProperty m_runEndTime
Definition SCTCalib.h:132
IntegerProperty m_runNumber
Definition SCTCalib.h:128
BooleanProperty m_doNoisyStrip
Definition SCTCalib.h:150
TFile * m_inputHist
Definition SCTCalib.h:247
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.

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 111 of file AthAlgorithm.h.

111{ 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 2937 of file SCTCalib.cxx.

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

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

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

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

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

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

◆ openXML4MonSummary()

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

Definition at line 2561 of file SCTCalib.cxx.

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

◆ 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 284 of file SCTCalib.h.

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

◆ setFilterPassed() [1/2]

void AthAlgorithm::setFilterPassed ( bool state) const
inherited

Definition at line 102 of file AthAlgorithm.cxx.

102 {
103 setFilterPassed( state, Gaudi::Hive::currentContext() );
104}
void setFilterPassed(bool state) const

◆ setFilterPassed() [2/2]

void AthAlgorithm::setFilterPassed ( bool state,
const EventContext & ctx ) const
inherited

Definition at line 106 of file AthAlgorithm.cxx.

106 {
107 execState( ctx ).setFilterPassed(state);
108}

◆ sysInitialize()

StatusCode AthAlgorithm::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, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
static Double_t sc
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
::StatusCode StatusCode
StatusCode definition for legacy code.

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

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

◆ xmlChannelEfficiencyDataString()

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

Definition at line 2679 of file SCTCalib.cxx.

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

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

◆ xmlChannelNoiseOccDataString()

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

Definition at line 2663 of file SCTCalib.cxx.

2663 {
2664 std::ostringstream os;
2665 os << xmlOpenChannel(waferId.get_identifier32().get_compact(), m_iovStart.re_time(), m_iovStop.re_time()) << std::endl
2666 << " " << xmlValue("SN", serial.str()) << std::endl
2667 << " " << xmlValue("SampleSize", "10000") << std::endl
2668 << " " << xmlValue("barrel_endcap", m_pSCTHelper->barrel_ec(waferId)) << std::endl
2669 << " " << xmlValue("Layer", m_pSCTHelper->layer_disk(waferId)) << linefeed
2670 << " " << xmlValue("Eta", m_pSCTHelper->eta_module(waferId)) << std::endl
2671 << " " << xmlValue("Phi", m_pSCTHelper->phi_module(waferId)) << std::endl
2672 << " " << xmlValue("NoiseOccupancy", occupancy) << std::endl
2673 << " " << xmlCloseChannel();
2674 return os.str();
2675}
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 219 of file SCTCalib.h.

219{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 215 of file SCTCalib.h.

215{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 216 of file SCTCalib.h.

216{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 217 of file SCTCalib.h.

217{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 205 of file SCTCalib.h.

205{this, "BSErrorDBMinStat", 50000};

◆ m_BSErrorModuleFile

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

Definition at line 232 of file SCTCalib.h.

232{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 231 of file SCTCalib.h.

231{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 192 of file SCTCalib.h.

192{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 102 of file SCTCalib.h.

102{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 105 of file SCTCalib.h.

105{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 107 of file SCTCalib.h.

107{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 103 of file SCTCalib.h.

103{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 104 of file SCTCalib.h.

104{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 106 of file SCTCalib.h.

106{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 99 of file SCTCalib.h.

99{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 189 of file SCTCalib.h.

189{this, "DeadChipMinStat", 200000};

◆ m_deadChipsFile

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

Definition at line 222 of file SCTCalib.h.

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

◆ m_deadChipSignificance

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

Definition at line 191 of file SCTCalib.h.

191{this, "DeadChipSignificance", 10};

◆ m_deadChipUploadTest

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

Definition at line 194 of file SCTCalib.h.

194{this, "DeadChipUploadTest", true};

◆ m_deadNotQuiet

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

Definition at line 196 of file SCTCalib.h.

196{this, "DeadNotQuiet", true};

◆ m_deadStripMinStat

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

Definition at line 187 of file SCTCalib.h.

187{this, "DeadStripMinStat", 200000};

◆ m_deadStripMinStatBusy

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

Definition at line 188 of file SCTCalib.h.

188{this, "DeadStripMinStatBusy", 1600000};

◆ m_deadStripsFile

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

Definition at line 221 of file SCTCalib.h.

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

◆ m_deadStripSignificance

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

Definition at line 190 of file SCTCalib.h.

190{this, "DeadStripSignificance", 10};

◆ m_deadStripUploadTest

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

Definition at line 195 of file SCTCalib.h.

195{this, "DeadStripUploadTest", true};

◆ m_deadSummaryFile

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

Definition at line 223 of file SCTCalib.h.

223{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 157 of file SCTCalib.h.

157{this, "DoBSErrorDB", false};

◆ m_doBSErrors

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

Definition at line 149 of file SCTCalib.h.

149{this, "DoBSErrors", false};

◆ m_doDeadChip

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

Definition at line 153 of file SCTCalib.h.

153{this, "DoDeadChip", false};

◆ m_doDeadStrip

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

Definition at line 152 of file SCTCalib.h.

152{this, "DoDeadStrip", false};

◆ m_doEfficiency

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

Definition at line 156 of file SCTCalib.h.

156{this, "DoEfficiency", false};

◆ m_doHitMaps

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

Definition at line 145 of file SCTCalib.h.

145{this, "DoHitMaps", true};

◆ m_doHitMapsLB

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

Definition at line 146 of file SCTCalib.h.

146{this, "DoHitMapsLB", true};

◆ m_doHV

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

Definition at line 151 of file SCTCalib.h.

151{this, "DoHV", false};

◆ m_doLorentzAngle

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

Definition at line 158 of file SCTCalib.h.

158{this, "DoLorentzAngle", false};

◆ m_doNoiseOccupancy

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

Definition at line 154 of file SCTCalib.h.

154{this, "DoNoiseOccupancy", false};

◆ m_doNoisyStrip

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

Definition at line 150 of file SCTCalib.h.

150{this, "DoNoisyStrip", true};

◆ m_doRawOccupancy

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

Definition at line 155 of file SCTCalib.h.

155{this, "DoRawOccupancy", false};

◆ m_efficiencyChipFile

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

Definition at line 230 of file SCTCalib.h.

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

◆ m_efficiencyDoChips

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

Definition at line 204 of file SCTCalib.h.

204{this, "EfficiencyDoChips", true};

◆ m_efficiencyMinStat

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

Definition at line 203 of file SCTCalib.h.

203{this, "EfficiencyMinStat", 50000};

◆ m_efficiencyModuleFile

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

Definition at line 229 of file SCTCalib.h.

229{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 228 of file SCTCalib.h.

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

◆ m_eventNumber

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

Definition at line 129 of file SCTCalib.h.

129{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 AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 114 of file AthAlgorithm.h.

◆ m_gofile

std::ofstream SCTCalib::m_gofile
private

Definition at line 114 of file SCTCalib.h.

◆ m_h_phiVsNstripsSideHistoVector

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

Definition at line 254 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 143 of file SCTCalib.h.

143{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 140 of file SCTCalib.h.

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

◆ m_inputHist

TFile* SCTCalib::m_inputHist {nullptr}
private

Definition at line 247 of file SCTCalib.h.

247{nullptr}; // Monitoring histograms

◆ m_iovStart

IOVTime SCTCalib::m_iovStart
private

Definition at line 243 of file SCTCalib.h.

◆ m_iovStop

IOVTime SCTCalib::m_iovStop
private

Definition at line 244 of file SCTCalib.h.

◆ m_LBMax

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

Definition at line 133 of file SCTCalib.h.

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

◆ m_LBRange

int SCTCalib::m_LBRange {-999}
private

Definition at line 242 of file SCTCalib.h.

242{-999};

◆ m_LorentzAngleDebugMode

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

Definition at line 208 of file SCTCalib.h.

208{this, "LorentzAngleDebugMode", true};

◆ m_LorentzAngleFile

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

Definition at line 233 of file SCTCalib.h.

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

◆ m_LorentzAngleMinStat

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

Definition at line 206 of file SCTCalib.h.

206{this, "LorentzAngleMinStat", 50000};

◆ m_LorentzAngleSummaryFile

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

Definition at line 234 of file SCTCalib.h.

234{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 101 of file SCTCalib.h.

101{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 185 of file SCTCalib.h.

185{this, "HVBinWidth", 5};

◆ m_nLbsMerged

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

Definition at line 147 of file SCTCalib.h.

147{this, "LbsPerWindow", 30};

◆ m_noiseOccupancyFile

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

Definition at line 225 of file SCTCalib.h.

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

◆ m_noiseOccupancyMinStat

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

Definition at line 201 of file SCTCalib.h.

201{this, "NoiseOccupancyMinStat", 50000};

◆ m_noiseOccupancySummaryFile

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

Definition at line 226 of file SCTCalib.h.

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

◆ m_noiseOccupancyTriggerAware

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

Definition at line 200 of file SCTCalib.h.

200{this, "NoiseOccupancyTriggerAware", true};

◆ m_noisyChipFraction

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

Definition at line 183 of file SCTCalib.h.

183{this, "NoisyChipFraction", 0.500};

◆ m_noisyMinStat

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

Definition at line 171 of file SCTCalib.h.

171{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 164 of file SCTCalib.h.

164{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 168 of file SCTCalib.h.

168{this, "NoisyModuleDiff", 0.200};

◆ m_noisyModuleList

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

Definition at line 167 of file SCTCalib.h.

167{this, "NoisyModuleList", 200};

◆ m_noisyStripAll

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

Definition at line 172 of file SCTCalib.h.

172{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 166 of file SCTCalib.h.

166{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 169 of file SCTCalib.h.

169{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 165 of file SCTCalib.h.

165{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 173 of file SCTCalib.h.

173{this, "NoisyStripThrDef", true};

◆ m_noisyStripThrOffline

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

Definition at line 174 of file SCTCalib.h.

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

◆ m_noisyStripThrOnline

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

Definition at line 175 of file SCTCalib.h.

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

◆ m_noisyThr4DeadFinding

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

Definition at line 193 of file SCTCalib.h.

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

◆ m_noisyUpdate

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

Definition at line 161 of file SCTCalib.h.

161{this, "NoisyUpdate", true};

◆ m_noisyUploadTest

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

Definition at line 163 of file SCTCalib.h.

163{this, "NoisyUploadTest", true};

◆ m_noisyWaferAllStrips

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

Definition at line 178 of file SCTCalib.h.

178{this, "NoisyWaferAllStrips", true};

◆ m_noisyWaferFinder

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

Definition at line 176 of file SCTCalib.h.

176{this, "NoisyWaferFinder", true};

◆ m_noisyWaferFraction

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

Definition at line 182 of file SCTCalib.h.

182{this, "NoisyWaferFraction", 0.500};

◆ m_noisyWaferThrBarrel

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

Definition at line 179 of file SCTCalib.h.

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

◆ m_noisyWaferThrECA

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

Definition at line 180 of file SCTCalib.h.

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

◆ m_noisyWaferThrECC

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

Definition at line 181 of file SCTCalib.h.

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

◆ m_noisyWaferWrite

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

Definition at line 177 of file SCTCalib.h.

177{this, "NoisyWaferWrite", true};

◆ m_noisyWriteAllModules

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

Definition at line 162 of file SCTCalib.h.

162{this, "NoisyWriteAllModules", true};

◆ m_numberOfEvents

unsigned long long SCTCalib::m_numberOfEvents {0}
private

Definition at line 238 of file SCTCalib.h.

238{0};

◆ m_numberOfEventsHist

unsigned long long SCTCalib::m_numberOfEventsHist {0}
private

Definition at line 239 of file SCTCalib.h.

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

◆ m_numOfLBsProcessed

int SCTCalib::m_numOfLBsProcessed {0}
private

Definition at line 237 of file SCTCalib.h.

237{0};

◆ m_outBSErrModule

std::ofstream SCTCalib::m_outBSErrModule
private

Definition at line 124 of file SCTCalib.h.

◆ m_outBSErrSummary

std::ofstream SCTCalib::m_outBSErrSummary
private

Definition at line 123 of file SCTCalib.h.

◆ m_outDeadChips

std::ofstream SCTCalib::m_outDeadChips
private

Definition at line 118 of file SCTCalib.h.

◆ m_outDeadStrips

std::ofstream SCTCalib::m_outDeadStrips
private

Definition at line 117 of file SCTCalib.h.

◆ m_outDeadSummary

std::ofstream SCTCalib::m_outDeadSummary
private

Definition at line 119 of file SCTCalib.h.

◆ m_outEffSummary

std::ofstream SCTCalib::m_outEffSummary
private

Definition at line 122 of file SCTCalib.h.

◆ m_outLASummary

std::ofstream SCTCalib::m_outLASummary
private

Definition at line 125 of file SCTCalib.h.

◆ m_outNOSummary

std::ofstream SCTCalib::m_outNOSummary
private

Definition at line 120 of file SCTCalib.h.

◆ m_outROSummary

std::ofstream SCTCalib::m_outROSummary
private

Definition at line 121 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 98 of file SCTCalib.h.

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

◆ m_pnoiseoccupancymapHistoVector

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

Definition at line 251 of file SCTCalib.h.

◆ m_pnoiseoccupancymapHistoVectorECm

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

Definition at line 253 of file SCTCalib.h.

◆ m_pnoiseoccupancymapHistoVectorECp

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

Definition at line 252 of file SCTCalib.h.

◆ m_pSCTHelper

const SCT_ID* SCTCalib::m_pSCTHelper {nullptr}
private

Definition at line 95 of file SCTCalib.h.

95{nullptr};

◆ m_quietThresholdChip

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

Definition at line 198 of file SCTCalib.h.

198{this, "QuietThresholdChip", 0.5};

◆ m_quietThresholdStrip

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

Definition at line 197 of file SCTCalib.h.

197{this, "QuietThresholdStrip", 0.5};

◆ m_rawOccupancyMinStat

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

Definition at line 202 of file SCTCalib.h.

202{this, "RawOccupancyMinStat", 50000};

◆ m_rawOccupancySummaryFile

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

Definition at line 227 of file SCTCalib.h.

227{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 142 of file SCTCalib.h.

142{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 100 of file SCTCalib.h.

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

◆ m_readHIST

bool SCTCalib::m_readHIST
private

Definition at line 248 of file SCTCalib.h.

◆ m_readHitMaps

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

Definition at line 148 of file SCTCalib.h.

148{this, "ReadHitMaps", false};

◆ m_runEndTime

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

Definition at line 132 of file SCTCalib.h.

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

◆ m_runNumber

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

Definition at line 128 of file SCTCalib.h.

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

◆ m_runStartTime

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

Definition at line 131 of file SCTCalib.h.

131{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 96 of file SCTCalib.h.

96{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 111 of file SCTCalib.h.

◆ m_summarytripslb

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

Definition at line 112 of file SCTCalib.h.

◆ m_tagID4DeadChips

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

Definition at line 212 of file SCTCalib.h.

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

◆ m_tagID4DeadStrips

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

Definition at line 211 of file SCTCalib.h.

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

◆ m_tagID4NoiseOccupancy

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

Definition at line 213 of file SCTCalib.h.

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

◆ m_tagID4NoisyStrips

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

Definition at line 210 of file SCTCalib.h.

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

◆ m_useBSError

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

Definition at line 138 of file SCTCalib.h.

138{this, "UseBSError", false};

◆ m_useCalibration

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

Definition at line 136 of file SCTCalib.h.

136{this, "UseCalibration", true};

◆ m_useConfiguration

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

Definition at line 135 of file SCTCalib.h.

135{this, "UseConfiguration", true};

◆ m_useMajority

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

Definition at line 137 of file SCTCalib.h.

137{this, "UseMajority", true};

◆ m_utcBegin

std::string SCTCalib::m_utcBegin
private

Definition at line 240 of file SCTCalib.h.

◆ m_utcEnd

std::string SCTCalib::m_utcEnd
private

Definition at line 241 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 159 of file SCTCalib.h.

159{this, "WriteToCool", true};

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