30#include "Identifier/Identifier.h"
47#include "GaudiKernel/ToolHandle.h"
68 SCTCalib(
const std::string &name, ISvcLocator* pSvcLocator ) ;
71 virtual StatusCode
execute()
override;
73 virtual StatusCode
finalize()
override;
98 ToolHandle<SCTCalibWriteTool>
m_pCalibWriteTool{
this,
"SCTCalibWriteTool",
"SCTCalibWriteTool",
"Tool to write out data from calibration loop"};
99 ToolHandle<ISCT_ConfigurationConditionsTool>
m_ConfigurationConditionsTool{
this,
"SCT_ConfigurationConditionsTool",
"SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool",
"Tool to retrieve SCT Configuration"};
100 ToolHandle<ISCT_ReadCalibDataTool>
m_ReadCalibDataTool{
this,
"SCT_ReadCalibDataTool",
"SCT_ReadCalibDataTool/InDetSCT_ReadCalibDataTool",
"Tool to retrieve SCT calibration data"};
101 ToolHandle<ISCT_DetectorLevelConditionsTool>
m_MajorityConditionsTool{
this,
"SCT_MajorityConditionsTool",
"SCT_MajorityConditionsTool",
"Tool to retrieve the majority conditions of SCT"};
102 ToolHandle<ISCT_CablingTool>
m_CablingTool{
this,
"SCT_CablingTool",
"SCT_CablingTool",
"Tool to retrieve SCT Cabling"};
103 ToolHandle<ISCT_CalibHistoTool>
m_calibHitmapTool{
this,
"SCT_CalibHitmapTool",
"SCT_CalibHitmapTool",
"Tool for reading and writing HitMap histograms"};
104 ToolHandle<ISCT_CalibHistoTool>
m_calibLbTool{
this,
"SCT_CalibLbTool",
"SCT_CalibLbTool",
"Tool for reading and writing Lb dependent HitMap histograms"};
105 ToolHandle<ISCT_CalibHistoTool>
m_calibBsErrTool{
this,
"SCT_CalibBsErrorTool",
"SCT_CalibBsErrorTool",
"Tool for reading and writing BS error histograms"};
106 ToolHandle<ISCT_CalibModuleListTool>
m_calibModuleListTool{
this,
"SCT_CalibModuleListTool",
"SCT_CalibModuleListTool",
"Tool for handling list of modules"};
107 ToolHandle<ISCT_CalibEvtInfo>
m_calibEvtInfoTool{
this,
"SCT_CalibEventInfo",
"SCT_CalibEventInfo",
"Tool for handling event info"};
132 StringProperty
m_runEndTime{
this,
"RunEndTime",
"",
"from runInfo.txt"};
133 StringProperty
m_LBMax{
this,
"LBMax",
"1000",
"from runInfo.txt"};
140 StringArrayProperty
m_input_hist{
this,
"InputHist", {},
"list of HIST (assuming 1 file)"};
142 BooleanProperty
m_readBS{
this,
"ReadBS",
false,
"True if BS is used"};
143 BooleanProperty
m_histBefore2010{
this,
"HistBefore2010",
false,
"True if HIST is from 2009 or earlier"};
151 BooleanProperty
m_doHV{
this,
"DoHV",
false};
164 FloatProperty
m_noisyModuleAverageInDB{
this,
"NoisyModuleAverageInDB", -1.,
"Average number of modules with at least 1 noisy strip in COOL"};
165 IntegerProperty
m_noisyStripLastRunInDB{
this,
"NoisyStripLastRunInDB", -999,
"Number of noisy strips of the last run uploaded to COOL"};
166 FloatProperty
m_noisyStripAverageInDB{
this,
"NoisyStripAverageInDB", -999.,
"Number of noisy strips of the last run uploaded to COOL"};
215 StringProperty
m_badStripsAllFile{
this,
"BadStripsAllFile",
"BadStripsAllFile.xml",
"Output XML for all noisy strips"};
216 StringProperty
m_badStripsNewFile{
this,
"BadStripsNewFile",
"BadStripsNewFile.xml",
"Output XML for newly found noisy strips (i.e. not in config/calib data)"};
217 StringProperty
m_badStripsSummaryFile{
this,
"BadStripsSummaryFile",
"BadStripsSummaryFile.xml",
"Output XML for summary info from noisy strip search"};
219 StringProperty
m_badModulesFile{
this,
"BadModulesFile",
"BadModulesFile.xml",
"Output XML for HV trips"};
221 StringProperty
m_deadStripsFile{
this,
"DeadStripsFile",
"DeadStripsFile.xml",
"Output XML for dead strips"};
222 StringProperty
m_deadChipsFile{
this,
"DeadChipsFile",
"DeadChipsFile.xml",
"Output XML for dead chips"};
223 StringProperty
m_deadSummaryFile{
this,
"DeadSummaryFile",
"DeadSummaryFile.xml",
"Output XML for summary of Dead Finding"};
225 StringProperty
m_noiseOccupancyFile{
this,
"NoiseOccupancyFile",
"NoiseOccupancyFile.xml",
"Output XML for noise occupancy"};
226 StringProperty
m_noiseOccupancySummaryFile{
this,
"NoiseOccupancySummaryFile",
"NoiseOccupancySummaryFile.xml",
"Output XML for summary of noise occupancy"};
227 StringProperty
m_rawOccupancySummaryFile{
this,
"RawOccupancySummaryFile",
"RawOccupancySummaryFile.xml",
"Output XML for summary of raw occupancy"};
228 StringProperty
m_efficiencySummaryFile{
this,
"EfficiencySummaryFile",
"EfficiencySummaryFile.xml",
"Output XML for summary of efficiency"};
229 StringProperty
m_efficiencyModuleFile{
this,
"EfficiencyModuleFile",
"EfficiencyModuleSummary.xml",
"Output XML for efficiency"};
230 StringProperty
m_efficiencyChipFile{
this,
"EfficiencyChipFile",
"EfficiencyChipSummary.xml",
"Output XML for chip efficiency"};
231 StringProperty
m_BSErrorSummaryFile{
this,
"BSErrorSummaryFile",
"BSErrorSummaryFile.xml",
"Output XML for summary of BS Errors"};
232 StringProperty
m_BSErrorModuleFile{
this,
"BSErrorModuleFile",
"BSErrorModuleSummary.xml",
"Output XML for summary of BS Errors"};
233 StringProperty
m_LorentzAngleFile{
this,
"LorentzAngleFile",
"LorentzAngleFile.xml",
"Output XML for noise occupancy"};
234 StringProperty
m_LorentzAngleSummaryFile{
this,
"LorentzAngleSummaryFile",
"LorentzAngleSummaryFile.xml",
"Output XML for summary of lorentz angle"};
260 void doHVPrintXML(
const std::pair<int, int>& timeInterval,
const std::pair<int, int>& lbRange,
Identifier);
262 bool notEnoughStatistics(
const int required,
const int obtained,
const std::string& histogramName=
"HIST")
const;
279 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;
280 StatusCode
wrapUpXML4Summary(std::ofstream&,
const char*, std::ostringstream&)
const;
285 if (service.retrieve().isFailure()) {
308 (
const std::map<Identifier, std::set<Identifier>>& moduleListAll,
309 const std::map<Identifier, std::set<Identifier>>& moduleListNew,
310 const std::map<Identifier, std::set<Identifier>>& moduleListRef);
312 getStripList(
const std::set<Identifier>& stripIdList)
const;
315 getOverlapStripList(
const std::set<Identifier>& stripAllIdList,
const std::set<Identifier>& stripRefIdList )
const;
323 const std::map<
Identifier, std::set<Identifier>>& moduleListRef,
324 const std::string& badStripsFile)
const;
327 getNoisyChips(
const std::set<Identifier>& stripIdList)
const;
329 std::pair<std::string, float>
333 getLBList(
const std::set<int>& LBList)
const;
Basic time unit for IOVSvc.
interface for SCT_CalibEvtInfo
This is an Identifier helper class for the SCT subdetector.
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Basic time unit for IOVSvc.
std::ofstream m_outBSErrSummary
BooleanProperty m_doDeadChip
ToolHandle< ISCT_CalibHistoTool > m_calibBsErrTool
StatusCode openXML4DB(std::ofstream &, const char *, const char *, const IOVTime &, const IOVTime &) const
std::string getStripList(const std::set< Identifier > &stripIdList) const
BooleanProperty m_noisyUpdate
FloatProperty m_noisyWaferThrECC
UnsignedIntegerProperty m_deadStripSignificance
UnsignedIntegerProperty m_rawOccupancyMinStat
BooleanProperty m_doNoiseOccupancy
StringProperty m_deadStripsFile
std::pair< int, bool > getNumNoisyStrips(const Identifier &waferId) const
StringProperty m_badStripsNewFile
UnsignedIntegerProperty m_efficiencyMinStat
FloatProperty m_noisyModuleDiff
BooleanProperty m_noisyWaferFinder
UnsignedIntegerProperty m_deadChipSignificance
FloatProperty m_noisyStripDiff
std::vector< TProfile2D * > m_pnoiseoccupancymapHistoVectorECp
FloatProperty m_noisyThr4DeadFinding
std::string xmlChannelNoiseOccDataString(const Identifier &waferId, const float occupancy, const SCT_SerialNumber &serial) const
std::vector< TProfile2D * > m_pnoiseoccupancymapHistoVectorECm
IntegerProperty m_maxtbins
FloatProperty m_quietThresholdChip
StringProperty m_BSErrorSummaryFile
BooleanProperty m_noisyWaferWrite
StatusCode getBSErrors ATLAS_NOT_THREAD_SAFE()
std::vector< std::vector< std::pair< int, int > > > m_summarytripslb
BooleanProperty m_doDeadStrip
std::string xmlChannelEfficiencyDataString(const Identifier &waferId, const float efficiency, const SCT_SerialNumber &serial, const int side) const
FloatProperty m_noisyStripThrOffline
std::pair< std::string, float > getNoisyLB(const Identifier &moduleId, int &chipId) 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
StringProperty m_efficiencyModuleFile
StringProperty m_BSErrorModuleFile
FloatProperty m_noisyModuleAverageInDB
ToolHandle< ISCT_CalibModuleListTool > m_calibModuleListTool
BooleanProperty m_noisyWriteAllModules
bool retrievedService(S &service) const
StatusCode addToXML4DB(std::ofstream &, const Identifier &, const char *, float, const char *) const
UnsignedIntegerProperty m_deadStripMinStatBusy
UnsignedIntegerProperty m_deadChipMinStat
ToolHandle< ISCT_ReadCalibDataTool > m_ReadCalibDataTool
StatusCode getEfficiency ATLAS_NOT_THREAD_SAFE()
ToolHandle< ISCT_CalibEvtInfo > m_calibEvtInfoTool
ToolHandle< ISCT_ConfigurationConditionsTool > m_ConfigurationConditionsTool
virtual StatusCode initialize() override
std::ofstream m_outDeadSummary
std::set< int > getNoisyChips(const std::set< Identifier > &stripIdList) const
BooleanProperty m_noiseOccupancyTriggerAware
UnsignedIntegerProperty m_noiseOccupancyMinStat
std::set< Identifier > getOverlapStripList(const std::set< Identifier > &stripAllIdList, const std::set< Identifier > &stripRefIdList) const
BooleanProperty m_useMajority
ToolHandle< ISCT_CalibHistoTool > m_calibHitmapTool
const SCT_ID * m_pSCTHelper
BooleanProperty m_efficiencyDoChips
StringProperty m_rawOccupancySummaryFile
BooleanProperty m_deadChipUploadTest
UnsignedIntegerProperty m_LorentzAngleMinStat
StringProperty m_badStripsSummaryFile
std::ofstream m_outEffSummary
StringProperty m_tagID4DeadStrips
StatusCode wrapUpXML4Summary(std::ofstream &, const char *, std::ostringstream &) const
virtual StatusCode execute() override
StatusCode getRawOccupancy ATLAS_NOT_THREAD_SAFE()
std::ofstream m_outLASummary
BooleanProperty m_doBSErrorDB
StringArrayProperty m_input_hist
BooleanProperty m_writeToCool
StatusCode getLorentzAngle ATLAS_NOT_THREAD_SAFE()
FloatProperty m_noisyWaferThrECA
IntegerProperty m_nLbsMerged
ToolHandle< ISCT_CablingTool > m_CablingTool
StringProperty m_deadChipsFile
FloatProperty m_noisyStripThrOnline
unsigned long long m_numberOfEventsHist
StringProperty m_deadSummaryFile
std::ofstream m_outBSErrModule
ToolHandle< ISCT_CalibHistoTool > m_calibLbTool
UnsignedIntegerProperty m_noisyMinStat
BooleanProperty m_readHitMaps
UnsignedIntegerProperty m_BSErrorDBMinStat
BooleanProperty m_histBefore2010
BooleanProperty m_noisyWaferAllStrips
StringProperty m_efficiencySummaryFile
BooleanProperty m_doRawOccupancy
std::string xmlChannelEfficiencyDataStringChip(const Identifier &waferId, const float efficiency, const float efficiency_bcid, const SCT_SerialNumber &serial, const int side, const int chip) const
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
std::vector< TProfile2D * > m_pnoiseoccupancymapHistoVector
StringProperty m_noiseOccupancyFile
BooleanProperty m_doEfficiency
StringProperty m_tagID4NoiseOccupancy
StatusCode addToSummaryStr(std::ostringstream &, const Identifier &, const char *, const char *, const char *) const
StringProperty m_efficiencyChipFile
SCTCalib(const std::string &name, ISvcLocator *pSvcLocator)
void doHVPrintXML(const std::pair< int, int > &timeInterval, const std::pair< int, int > &lbRange, Identifier)
doHVPrintXML() Prints XML file for hv modules
StringProperty m_noiseOccupancySummaryFile
std::ofstream m_outNOSummary
FloatProperty m_busyThr4DeadFinding
BooleanProperty m_useBSError
IntegerProperty m_eventNumber
FloatProperty m_quietThresholdStrip
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 getNoiseOccupancy ATLAS_NOT_THREAD_SAFE()
BooleanProperty m_noisyStripThrDef
virtual StatusCode finalize() override
Finalize - delete any memory allocation from the heap.
StringProperty m_tagID4DeadChips
virtual StatusCode stop ATLAS_NOT_THREAD_SAFE() override
std::vector< std::vector< std::pair< int, int > > > m_summarytrips
BooleanProperty m_deadNotQuiet
StringProperty m_runStartTime
StatusCode openXML4MonSummary(std::ofstream &, const char *) const
FloatProperty m_noisyChipFraction
FloatProperty m_noisyStripAverageInDB
ToolHandle< ISCT_DetectorLevelConditionsTool > m_MajorityConditionsTool
StatusCode closeXML4DB(std::ofstream &) const
StringProperty m_runEndTime
StringProperty m_LorentzAngleSummaryFile
std::ofstream m_outROSummary
IntegerProperty m_runNumber
unsigned long long m_numberOfEvents
StringProperty m_LorentzAngleFile
StatusCode addStripsToList(Identifier &waferId, std::set< Identifier > &stripIdList, bool isNoisy, bool isNew) const
BooleanProperty m_useCalibration
std::ofstream m_outDeadStrips
BooleanProperty m_doLorentzAngle
std::vector< TProfile * > m_h_phiVsNstripsSideHistoVector
BooleanProperty m_noisyUploadTest
BooleanProperty m_noisyStripAll
BooleanProperty m_doNoisyStrip
StringProperty m_badStripsAllFile
ToolHandle< SCTCalibWriteTool > m_pCalibWriteTool
BooleanProperty m_doBSErrors
FloatProperty m_noisyWaferFraction
BooleanProperty m_doHitMaps
std::string getLBList(const std::set< int > &LBList) const
FloatProperty m_noisyWaferThrBarrel
UnsignedIntegerProperty m_deadStripMinStat
BooleanProperty m_doHitMapsLB
bool notEnoughStatistics(const int required, const int obtained, const std::string &histogramName="HIST") const
StatusCode getDeadStrip ATLAS_NOT_THREAD_SAFE()
StatusCode getNoisyStrip ATLAS_NOT_THREAD_SAFE()
BooleanProperty m_LorentzAngleDebugMode
BooleanProperty m_deadStripUploadTest
std::ofstream m_outDeadChips
BooleanProperty m_useConfiguration
StringProperty m_tagID4NoisyStrips
StringProperty m_badModulesFile
IntegerProperty m_noisyModuleList
IntegerProperty m_noisyStripLastRunInDB
This is an Identifier helper class for the SCT subdetector.
SCT_SerialNumber is a class to hold a serial number and provide check on validity,...
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="")