![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
34 std::vector<std::string> modules;
42 std::ostringstream
os;
58 std::map<std::string, unsigned int> roses = { {
"AUX", 0}, {
"LBA", 1}, {
"LBC", 2}, {
"EBA", 3}, {
"EBC", 4} };
59 for (
const std::string& maskedModuleChannels :
m_masked) {
61 std::string
module = maskedModuleChannels.substr(0, 5);
65 <<
" => skip because of bad format: " << maskedModuleChannels);
69 unsigned int drawer = std::stoi(
module.substr(3, 2)) - 1;
72 <<
" => skip because of bad format: " << maskedModuleChannels);
79 std::string
gain = maskedModuleChannels.substr(5,7);
80 unsigned int adc = std::stoi(
gain);
83 ATH_MSG_WARNING(
"There no such gain: " <<
gain <<
" => skip because of bad format: " << maskedModuleChannels);
87 std::stringstream
channels(maskedModuleChannels.substr(7));
94 <<
" => skip because of bad format: " << maskedModuleChannels);
129 return StatusCode::SUCCESS;
139 constexpr
int nSamples = allSamples + 1;
146 if (!caloCellContainer->
empty()) {
148 Identifier
id =
cell->ID();
151 if (!tile_cell)
continue;
168 IdentifierHash hash1 = caloDDE->
onl1();
177 IdentifierHash hash2 = caloDDE->
onl2();
206 double energyDiff = (single_PMT_scin) ? 0.0 : tile_cell->
eneDiff() * (1.0 /
GeV);
208 double time1 = tile_cell->
time1();
209 double time2 = tile_cell->
time2();
210 double timeDiff = (single_PMT_scin) ? 0.0 : 2. * tile_cell->
timeDiff();
257 if (isMaskedChannel1 && !isMaskedChannel2) {
259 }
else if (isMaskedChannel2 && !isMaskedChannel1) {
261 }
else if (isMaskedChannel1 && isMaskedChannel2) {
265 sampleEnergy[drawerIdx1][allSamples] +=
energy;
291 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
std::map< std::string, int > m_energyGroups
IdentifierHash onl2() const
cell online identifier 2
float time1(void) const
get time of first PMT
Gaudi::Property< float > m_energyThresholdForTime
std::array< bool, TileCalibUtils::MAX_DRAWERIDX > m_monitoredDrawerIdx
static unsigned int getMaxDrawer(unsigned int ros)
Returns the maximal channel number for a given drawer.
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
std::map< std::string, int > m_time2VsTime1Groups
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
Gaudi::Property< std::vector< int > > m_fragIDs
std::map< std::string, int > m_energy2VsEnergy1Groups
float time2(void) const
get time of second PMT
static const unsigned int MAX_DRAWERIDX
Maximal drawer index
float ene1(void) const
get energy of first PMT
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
int sample(const Identifier &id) const
std::map< std::string, int > m_channelTimeGroups
int tower(const Identifier &id) const
Gaudi::Property< float > m_scaleFactor
std::array< unsigned int, TileCalibUtils::MAX_DRAWERIDX > m_drawerIdxToROS
std::map< std::string, int > m_sampleEnergyGroups
int channel(const HWIdentifier &id) const
extract channel field from HW identifier
def timer(name, disabled=False)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
static const unsigned int MAX_DRAWER
Number of drawers in ROS 1-4.
int ros(const HWIdentifier &id) const
extract ros field from HW identifier
std::map< std::string, int > m_channelEnergyGroups
std::array< std::array< unsigned char, TileCalibUtils::MAX_CHAN >, TileCalibUtils::MAX_DRAWERIDX > m_maskedChannels
IdentifierHash onl1() const
cell online identifier 1
float timeDiff(void) const
get time diff for two PMTs (data member)
SG::ReadHandleKey< CaloCellContainer > m_caloCellContainerKey
Generic monitoring tool for athena components.
::StatusCode StatusCode
StatusCode definition for legacy code.
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Gaudi::Property< bool > m_fillHistogramsPerChannel
bool is_tile(Identifier id) const
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.
static const unsigned int MAX_ROS
Number of ROSs
int gain1(void) const
get gain of first PMT
float eneDiff(void) const
all get methods
double m_energyThresholdForTimeInGeV
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
std::string to_string(const DetectorType &type)
HWIdentifier channel_id(int ros, int drawer, int channel) const
channel HWIdentifer
std::map< std::string, int > m_energyDiffGroups
std::map< std::string, int > m_timeGroups
const TileHWID * m_tileHWID
Wrapper to avoid constant divisions when using units.
std::array< unsigned int, TileCalibUtils::MAX_DRAWERIDX > m_drawerIdxToDrawer
virtual StatusCode initialize() override
initialize
static std::string getDrawerString(unsigned int ros, unsigned int drawer)
Return the drawer name, e.g.
int gain2(void) const
get gain of second PMT
float ene2(void) const
get energy of second PMT
int drawer(const HWIdentifier &id) const
extract drawer field from HW identifier
Data object for each calorimeter readout cell.
def time(flags, cells_name, *args, **kw)
#define ATH_MSG_WARNING(x)
const TileCablingService * m_cabling
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
virtual StatusCode initialize() override
initialize
Declare a monitored scalar variable.
Handle class for reading from StoreGate.
std::map< std::string, int > m_timeDiffGroups
static const unsigned int MAX_CHAN
Number of channels in drawer.
Gaudi::Property< std::vector< std::string > > m_masked
bool empty() const noexcept
Returns true if the collection is empty.
static const unsigned int MAX_GAIN
Number of gains per channel