|
ATLAS Offline Software
|
Go to the documentation of this file.
32 const int nDigitizers = 8;
39 Tile::MAX_ROS - 1, Tile::MAX_DRAWER, nDigitizers);
43 std::vector<std::string> modules;
51 std::ostringstream
os;
64 ATH_MSG_INFO(
"Monitored amplitude vs LB for modules/frag ID:" <<
os.str());
66 if (!modules.empty()) {
70 return StatusCode::SUCCESS;
86 fill(
"TileRawChanTimeMonExecuteTime",
timer);
87 return StatusCode::SUCCESS;
93 std::vector<int> drawers[Tile::MAX_ROS - 1];
94 std::vector<int>
channels[Tile::MAX_ROS - 1];
95 std::vector<double> channelTimes[Tile::MAX_ROS - 1];
96 std::vector<double> channelUncorrectedTimes[Tile::MAX_ROS - 1];
97 std::vector<double> channelAmplitudes[Tile::MAX_ROS - 1];
113 if (rawChannelCollection->empty() )
continue;
115 HWIdentifier adc_id = rawChannelCollection->front()->adc_HWID();
124 adc_id = rawChannel->adc_HWID();
156 channelTimes[
partition].push_back(rawChannel->time());
157 channelUncorrectedTimes[
partition].push_back(rawChannel->uncorrTime());
159 float amplitude = rawChannel->amplitude();
161 channelAmplitudes[
partition].push_back(amplitude);
170 float partitionTime[4] = {0};
174 double averagePartitionTime = 0.0;
177 for (
unsigned int channelIdx = 0; channelIdx <
channels[
partition].size(); ++ channelIdx) {
182 averagePartitionTime +=
times[channelIdx];
191 [averagePartitionTime] (
double time) {return time - averagePartitionTime;});
195 static const int channel2digitizer[48] = {7, 7, 7, 7, 7, 7,
221 for (
unsigned int channelIdx = 0; channelIdx <
channels[
partition].size(); ++ channelIdx) {
233 int partition1 = partitionPair.first;
234 int partition2 = partitionPair.second;
239 fill(
"TileRawChanTimeMonExecuteTime",
timer);
241 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
unsigned constexpr int nChannels
std::vector< int > m_amplitudeGroups
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
std::string find(const std::string &s)
return a remapped string
std::vector< std::vector< std::vector< int > > > m_digiTimeLBGroups
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
#define ATH_MSG_VERBOSE(x)
std::array< bool, TileCalibUtils::MAX_DRAWERIDX > m_amplitudeMonitoredDrawerIdx
bool isStatusBad(unsigned int ros, unsigned int drawer) const
Return true if given Tile drawer considered as bad by summary drawer states per LVPS otherwise return...
const TileCablingService * m_cabling
int channel(const HWIdentifier &id) const
extract channel field from HW identifier
std::vector< int > m_timeLBGroups
def timer(name, disabled=False)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
int ros(const HWIdentifier &id) const
extract ros field from HW identifier
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Gaudi::Property< std::vector< std::pair< int, int > > > m_partitionTimeDifferencePairs
float calibrateChannel(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT rawDataUnitIn, TileRawChannelUnit::UNIT rawDataUnitOut) const
Calibrate a Tile channel.
Class that holds Data Quality fragment information and provides functions to extract the data quality...
int adc(const HWIdentifier &id) const
extract adc field from HW identifier
Generic monitoring tool for athena components.
::StatusCode StatusCode
StatusCode definition for legacy code.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
std::vector< int > m_uncorrTimeGroups
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
std::vector< int > m_timeGroups
uint32_t lumiBlock() const
The current event's luminosity block number.
std::vector< int > m_timeDiffLBGroups
bool isAdcDQgood(int partition, int drawer, int ch, int gain) const
returns status of single ADC returns False if there are any errors
virtual StatusCode initialize() override
initialize
SG::ReadCondHandleKey< TileBadChannels > m_badChannelsKey
Name of TileBadChannels in condition store.
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
std::string to_string(const DetectorType &type)
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
const TileHWID * m_tileHWID
SG::ReadCondHandleKey< TileEMScale > m_emScaleKey
Name of TileEMScale in condition store.
StatusCode initialize(bool used=true)
std::map< std::string, int > m_amplitudeVsLBGroups
Class describing the basic event information.
const TileBchStatus & getAdcStatus(const HWIdentifier adc_id) const
Return Tile ADC status.
virtual StatusCode initialize() override
initialize
static std::string getDrawerString(unsigned int ros, unsigned int drawer)
Return the drawer name, e.g.
bool isDisconnected(int ros, int drawer, int channel) const
int drawer(const HWIdentifier &id) const
extract drawer field from HW identifier
SG::ReadCondHandleKey< TileDCSState > m_DCSStateKey
Name of TileDCSState object in condition store.
uint16_t level1TriggerType() const
The Level-1 trigger type.
Condition object to keep Tile DCS status from DB.
Gaudi::Property< std::vector< double > > m_energyThresholds
Gaudi::Property< bool > m_checkDCS
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
Gaudi::Property< std::vector< unsigned int > > m_triggerTypes
Declare a monitored scalar variable.
std::string to_string(const HWIdentifier &id, int level=0) const
extract all fields from HW identifier HWIdentifier get_all_fields ( const HWIdentifier & id,...
Handle class for reading from StoreGate.
Gaudi::Property< std::vector< int > > m_amplitudeFragIDs
Gaudi::Property< std::vector< double > > m_partitionTimeCorrection
const_pointer_type cptr()