ATLAS Offline Software
TileHitToRawChannel.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //*****************************************************************************
6 // Filename : TileHitToRawChannel.cxx
7 // Author : Zhifang
8 // Created : April, 2002
9 //
10 // DESCRIPTION:
11 // Implement the TileHitToRawChannel class
12 //
13 // HISTORY:
14 //
15 // BUGS:
16 //
17 //*****************************************************************************
18 
19 // Tile includes
27 
28 // Calo includes
29 #include "CaloIdentifier/TileID.h"
31 
32 // Atlas includes
33 #include "StoreGate/ReadHandle.h"
34 #include "StoreGate/WriteHandle.h"
37 // For the Athena-based random numbers.
40 
41 //CLHEP includes
42 #include <CLHEP/Random/Randomize.h>
43 
44 
45 using CLHEP::RandGaussQ;
46 
47 
48 //
49 // Constructor
50 //
51 TileHitToRawChannel::TileHitToRawChannel(const std::string& name, ISvcLocator* pSvcLocator)
52  : AthAlgorithm(name, pSvcLocator)
53  , m_rChUnit(TileRawChannelUnit::ADCcounts)
54  , m_rChType(TileFragHash::Default)
55  , m_tileID(nullptr)
56  , m_tileTBID(nullptr)
57  , m_tileHWID(nullptr)
58  , m_tileInfo(nullptr)
59  , m_cabling(nullptr)
60  , m_tileNoise(false)
61  , m_tileThresh(false)
62  , m_threshHi(0.0)
63  , m_ampMaxHi(0.0)
64 {
67 
68  declareProperty("TileInfoName", m_infoName = "TileInfo");
69  declareProperty("DeltaT", m_deltaT = -1.0); // keep hits only within deltaT;
70  declareProperty("calibrateEnergy", m_calibrateEnergy = false); // convert or not to pCb
71 }
72 
76 
77  for (; itr != last; ++itr) {
78  delete[] (*itr);
79  }
80 }
81 
82 //
83 // Alg standard initialize function
84 //
89 
90  // retrieve TileID helper and TileInfo from det store
91 
93 
95 
97 
99 
102 
103  ATH_CHECK( m_tileToolNoiseSample.retrieve() );
104 
105  if (m_tileNoise) {
106  ATH_CHECK(m_atRndmGenSvc.retrieve());
107  }
108 
109  ATH_CHECK( m_cablingSvc.retrieve() );
110  m_cabling = m_cablingSvc->cablingService();
111 
112  // Get needed parameters from TileInfo
114 
115  /* Get TileNoise flag from TileInfo
116  (true => generate noise in RC's). */
118 
119  /* Get TileZeroSuppress flag from TileInfo
120  (true => apply threshold cut for RC's). */
122 
124 
125  if (m_tileThresh) {
126  ATH_MSG_INFO( "ampMaxHi=" << m_ampMaxHi
127  << ", tileNoise=" << ((m_tileNoise) ? "true" : "false")
128  << ", tileThresh=" << "true, thresh_hi=" << m_threshHi );
129  } else {
130  ATH_MSG_INFO( "ampMaxHi=" << m_ampMaxHi
131  << ", tileNoise=" << ((m_tileNoise) ? "true" : "false")
132  << ", tileThresh=" << "false" );
133  }
134 
135 
136  IdContext drawer_context = m_tileHWID->drawer_context();
137  int ndrawers = m_tileHWID->drawer_hash_max();
138  int nchannels = 48;
139 
140  m_all_ids.reserve(ndrawers);
141 
142  for (int dr = 0; dr < ndrawers; ++dr) {
143 
144  HWIdentifier drawer_id;
145  /* int result = */m_tileHWID->get_id(dr, drawer_id, &drawer_context);
146 
147  HWIdentifier * adc_ids = new HWIdentifier[nchannels];
148  if (m_tileHWID->ros(drawer_id) > 0) { // protection against BEAM ROD
149  for (int ch = 0; ch < nchannels; ++ch) {
150  adc_ids[ch] = m_tileHWID->adc_id(drawer_id, ch, TileID::HIGHGAIN);
151  }
152  }
153  m_all_ids.push_back(adc_ids);
154  }
155 
158 
159  ATH_MSG_INFO( "TileHitToRawChannel initialization completed" );
160 
161  return StatusCode::SUCCESS;
162 }
163 
164 //
165 // Alg standard execute function
166 //
168 
169  ATH_MSG_DEBUG( "Executing TileHitToRawChannel" );
170 
171  const EventContext& ctx = Gaudi::Hive::currentContext();
172 
173  ATHRNG::RNGWrapper* rngWrapper = m_atRndmGenSvc->getEngine(this, m_randomStreamName);
174  rngWrapper->setSeed( m_randomStreamName, ctx );
175 
177  ATH_CHECK( samplingFraction.isValid() );
178 
180  ATH_CHECK( emScale.isValid() );
181 
182  // step1: read hits from TES
184  ATH_CHECK( hitContainer.isValid() );
185 
186  //Zero sums for monitoring.
187  int nChan = 0;
188  int nChLG = 0;
189  int nChHG = 0;
190  double eHitTot = 0.;
191  double eCh = 0.;
192  double eChLG = 0.;
193  double eChHG = 0.;
194 
195  // prepare arrays for all channels in one drawer (collection)
196  const int nChMax = 48;
197  double random[nChMax];
198  memset(random, 0, sizeof(random));
199  HWIdentifier * adc_ids;
200  int adc_gain[nChMax];
201  double adc_ampl[nChMax];
202  double adc_time[nChMax];
203  double adc_qual[nChMax];
204 
205  IdContext drawer_context = m_tileHWID->drawer_context();
206 
207  // step2: form raw channels, and put them in container
208  auto rawChannelContainer = std::make_unique<TileMutableRawChannelContainer>(true, m_rChType, m_rChUnit);
209  ATH_CHECK( rawChannelContainer->status() );
210 
211  // iterate over all collections in a container
212  for (const TileHitCollection* hitCollection : *hitContainer) {
213 
214  HWIdentifier drawer_id = m_tileHWID->drawer_id(hitCollection->identify());
215  int ros = m_tileHWID->ros(drawer_id);
216  int drawer = m_tileHWID->drawer(drawer_id);
217  int drawerIdx = TileCalibUtils::getDrawerIdx(ros, drawer);
218  if (m_cabling->connected(ros, drawer)) {
219  ATH_MSG_VERBOSE( "ROS " << ros
220  << " drawer " << drawer
221  << " is connected" );
222  } else {
223  continue;
224  }
225  int ch;
226 
227  ATH_MSG_VERBOSE( MSG::hex
228  << "Collection = 0x" << hitCollection->identify() << MSG::dec
229  << " : ROS=" << ros
230  << ", drawer=" << drawer );
231 
232  IdentifierHash idhash;
233  /* int result = */m_tileHWID->get_hash(drawer_id, idhash, &drawer_context);
234  adc_ids = m_all_ids[idhash];
235 
236  // If tileNoise is requested, generate random numbers to give noise
237  if (m_tileNoise) {
238 
239  RandGaussQ::shootArray(*rngWrapper, nChMax, random, 0.0, 1.0);
240 
241  for (ch = 0; ch < nChMax; ++ch) {
242  adc_gain[ch] = TileID::HIGHGAIN;
243  adc_ampl[ch] = random[ch] * m_tileToolNoiseSample->getHfn(drawerIdx, ch, TileID::HIGHGAIN, TileRawChannelUnit::ADCcounts, ctx)
245 
246  }
247  } else {
248  memset(adc_gain, -1, sizeof(adc_gain)); /* TileID::INVALID */
249  memset(adc_ampl, 0, sizeof(adc_ampl));
250  }
251 
252  memset(adc_time, 0, sizeof(adc_time));
253  memset(adc_qual, 0, sizeof(adc_qual));
254 
255  // iterate over all hits in a collection
256  for (const TileHit* tile_hit : *hitCollection) {
257 
258  // Get hit Identifier (= identifier of pmt)
259  Identifier pmt_id = tile_hit->pmt_ID();
260  HWIdentifier channel_id = tile_hit->pmt_HWID();
261 
262  // index for array is the channel number
264 
265  /* Get hit amplitude and convert to energy (cell-dependent) */
266  double e_hit = tile_hit->energy();
267  double time = tile_hit->time();
268  if (m_deltaT > 0.0) {
269  if (fabs(time) >= m_deltaT) { // reset first hit if it's outside deltaT window
270  e_hit = 0.0;
271  time = 0.0;
272  }
273  double etime = e_hit * time;
274  for (int i = tile_hit->size() - 1; i > 0; --i) { // don't use first hit (i=0)
275  double en = tile_hit->energy(i);
276  double ti = tile_hit->time(i);
277  if (fabs(ti) < m_deltaT && en > 0.0) {
278  e_hit += en;
279  etime += en * ti;
280  }
281  }
282  if (e_hit > 0.0)
283  time = etime / e_hit;
284  else
285  continue; // go to next hit, do not create channels with zero energy
286  }
287  adc_time[ch] = time;
288  double hit_calib = samplingFraction->getSamplingFraction(drawerIdx, ch);
289  double e_ch = e_hit * hit_calib;
290 
291  /* Convert to amplitude of channel (assuming high gain) */
292  /* need to divide here, because "calib" converts amp to energy */
293  int gain = TileID::HIGHGAIN;
294  double amp_ch = e_ch / emScale->calibrateChannel(drawerIdx, ch, gain, 1., m_rChUnit
296  double noise;
297  // If high saturates, convert adc_id to low-gain value and recalculate.
298  if (adc_ampl[ch] + amp_ch + m_tileToolNoiseSample->getPed(drawerIdx, ch, gain, TileRawChannelUnit::ADCcounts, ctx) > m_ampMaxHi) {
299 
301  amp_ch = e_ch / emScale->calibrateChannel(drawerIdx, ch, gain, 1., m_rChUnit
303 
304  // If Noise is requested,
305  // recalculate noise using the SAME random number as for high.
306  if (m_tileNoise) {
307  adc_ampl[ch] = random[ch] * m_tileToolNoiseSample->getHfn(drawerIdx, ch, TileID::LOWGAIN, TileRawChannelUnit::ADCcounts, ctx)
309  }
310  }
311 
312  adc_gain[ch] = gain;
313  noise = adc_ampl[ch];
314  adc_ampl[ch] += amp_ch; // add real amplitude to the noise
315 
316  ATH_MSG_VERBOSE( "ch=" << ch << ((gain == TileID::HIGHGAIN) ? " Hi" :" Lo")
317  << " pmt=" << m_tileID->to_string(pmt_id, -1)
318  << " adc=" << m_tileHWID->to_string(channel_id, -1) << "/" << gain
319  << " noise=" << noise
320  << " amp=" << amp_ch
321  << " tot=" << adc_ampl[ch]);
322 
323  ++nChan;
324  eHitTot += e_hit;
325  eCh += e_ch;
326  }
327 
328  // store raw channels for one drawer
329 
330  for (int ch = 0; ch < nChMax; ++ch) {
331 
332  int gain = adc_gain[ch];
333 
334  // without noise most of channels do not exist
335  // select only valid channels
336  if (gain != -1) {
337 
338  HWIdentifier adc_id = adc_ids[ch];
339  double amp = adc_ampl[ch];
340 
341  bool lrcGood = true;
342  double thresh = -99999;
343 
344  if (TileID::HIGHGAIN != gain) {
345  // change ADC ID (channel switched to low gain)
346  adc_id = m_tileHWID->adc_id(m_tileHWID->channel_id(adc_id), gain);
347 
348  } else {
349  // Apply threshold cut to small signals (always high gain)
350  if (m_tileThresh) {
351  thresh = m_threshHi;
352  if (thresh < 0) {
353  if (fabs(amp) < fabs(thresh))
354  lrcGood = false;
355  } else {
356  if (amp < thresh)
357  lrcGood = false;
358  }
359  }
360  }
361 
362  if (lrcGood) {
363 
364  auto rawChannel = std::make_unique<TileRawChannel>(adc_id, amp, adc_time[ch], adc_qual[ch]);
365  ATH_CHECK( rawChannelContainer->push_back(std::move(rawChannel)) );
366 
367  if (TileID::HIGHGAIN == gain) {
368  ++nChHG;
369  eChHG += amp;
370  } else {
371  ++nChLG;
372  eChLG += amp;
373  }
374 
375  ATH_MSG_VERBOSE( "Accept RC thr=" << ((thresh < 0) ? "+" : "" ) << thresh
376  << ", id=" << m_tileHWID->to_string(adc_id)
377  << ", amp=" << amp );
378 
379  } else {
380 
381  ATH_MSG_VERBOSE( "Reject RC thr=" << ((thresh < 0) ? "+" : "") << thresh
382  << ", id=" << m_tileHWID->to_string(adc_id)
383  << ", amp=" << amp );
384  }
385  }
386  }
387  }
388 
389 
390  // Execution completed.
391  if (msgLvl(MSG::DEBUG)) {
392  msg(MSG::DEBUG) << "TileHitToRawChannel execution completed." << endmsg;
393  msg(MSG::DEBUG) << " nChan=" << nChan
394  << " eHitTot=" << eHitTot
395  << " eneTot=" << eCh
396  << " nchLG=" << nChLG
397  << " eChLG=" << eChLG
398  << " nchHG=" << nChHG
399  << " eChHG=" << eChHG << endmsg;
400  }
401 
402 
404  ATH_CHECK( rawChannelCnt.record(std::move(rawChannelContainer)) );
405 
406  return StatusCode::SUCCESS;
407 }
408 
410 
411  ATH_MSG_INFO( "TileHitToRawChannel::finalize() end." );
412 
413  return StatusCode::SUCCESS;
414 }
415 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TileSamplingFraction::getSamplingFraction
float getSamplingFraction(unsigned int drawerIdx, unsigned int channel) const
Return Tile Calorimeter sampling fraction.
Definition: TileSamplingFraction.h:53
ATHRNG::RNGWrapper::setSeed
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
Definition: RNGWrapper.h:169
TileHitToRawChannel::m_calibrateEnergy
bool m_calibrateEnergy
if true, amplitude is converted to pCb
Definition: TileHitToRawChannel.h:105
TileRawChannelUnit
Definition: TileRawChannelUnit.h:13
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
TileHitToRawChannel::m_tileToolNoiseSample
ToolHandle< TileCondToolNoiseSample > m_tileToolNoiseSample
Definition: TileHitToRawChannel.h:139
TileHitToRawChannel::m_rChType
TileFragHash::TYPE m_rChType
Type of TileRawChannels (Digitizar, OF1, OF2, Fit, etc.)(see TileFragHash.h)
Definition: TileHitToRawChannel.h:108
TileHitToRawChannel::m_rawChannelContainerKey
SG::WriteHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
Definition: TileHitToRawChannel.h:93
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TileHWID::get_id
virtual int get_id(const IdentifierHash &hash_id, HWIdentifier &id, const IdContext *context=0) const
create compact HW ID from hash id (return == 0 for OK)
Definition: TileHWID.cxx:491
TileHitToRawChannel::m_tileID
const TileID * m_tileID
Pointer to TileID helper.
Definition: TileHitToRawChannel.h:110
physval_make_web_display.thresh
thresh
Definition: physval_make_web_display.py:36
TileHitToRawChannel::m_rChUnit
TileRawChannelUnit::UNIT m_rChUnit
Units used for the TileRawChannels (ADC, pCb, etc.)(see TileInfo.h)
Definition: TileHitToRawChannel.h:107
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
SG::ReadCondHandle::isValid
bool isValid()
Definition: ReadCondHandle.h:206
TileHitToRawChannel::TileHitToRawChannel
TileHitToRawChannel(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: TileHitToRawChannel.cxx:51
AthCommonMsg< Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
TileHitToRawChannel::m_cablingSvc
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
Definition: TileHitToRawChannel.h:126
TileInfo.h
Tile_Base_ID::HIGHGAIN
@ HIGHGAIN
Definition: Tile_Base_ID.h:57
TileHWID::drawer_hash_max
size_type drawer_hash_max(void) const
drawer hash table max size
Definition: TileHWID.h:268
TileHitToRawChannel::m_infoName
std::string m_infoName
name of the TileInfo object
Definition: TileHitToRawChannel.h:103
TileCalibUtils.h
python.TurnDataReader.dr
dr
Definition: TurnDataReader.py:112
TileHWID::drawer_context
IdContext drawer_context(void) const
idContext for drawers
Definition: TileHWID.cxx:471
TileHitToRawChannel::execute
virtual StatusCode execute() override
execute method
Definition: TileHitToRawChannel.cxx:167
TileHitToRawChannel::m_randomStreamName
Gaudi::Property< std::string > m_randomStreamName
Random Stream Name.
Definition: TileHitToRawChannel.h:131
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
TileFragHash
Hash table for Tile fragments (==drawers ==collections in StoreGate)
Definition: TileFragHash.h:24
TileHitCollection
Definition: TileHitCollection.h:12
TileRawChannelUnit::PicoCoulombs
@ PicoCoulombs
Definition: TileRawChannelUnit.h:18
TileHitToRawChannel::m_tileHWID
const TileHWID * m_tileHWID
Pointer to TileHWID helper.
Definition: TileHitToRawChannel.h:112
HWIdentifier
Definition: HWIdentifier.h:13
TileHitToRawChannel::m_threshHi
double m_threshHi
Value of the mimimal amplitude required to do the conversion to raw channel in high gain (not used fo...
Definition: TileHitToRawChannel.h:120
TileHitToRawChannel.h
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
ReadCondHandle.h
TileHWID::channel
int channel(const HWIdentifier &id) const
extract channel field from HW identifier
Definition: TileHWID.h:189
TileID.h
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
TileHWID::ros
int ros(const HWIdentifier &id) const
extract ros field from HW identifier
Definition: TileHWID.h:167
TileHitToRawChannel::m_emScaleKey
SG::ReadCondHandleKey< TileEMScale > m_emScaleKey
Name of TileEMScale in condition store.
Definition: TileHitToRawChannel.h:136
TileInfo::ThresholdRawChannel
double ThresholdRawChannel(int) const
Return the threshold value for good (filtered) TileRawChannels.
Definition: TileInfo.h:98
TileHitToRawChannel::m_atRndmGenSvc
ServiceHandle< IAthRNGSvc > m_atRndmGenSvc
Random number generator engine to use.
Definition: TileHitToRawChannel.h:129
TileEMScale::calibrateChannel
float calibrateChannel(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT rawDataUnitIn, TileRawChannelUnit::UNIT rawDataUnitOut) const
Calibrate a Tile channel.
Definition: TileEMScale.cxx:136
WriteHandle.h
Handle class for recording to StoreGate.
TileHitToRawChannel::m_deltaT
double m_deltaT
if true, keep only hits in deltaT range
Definition: TileHitToRawChannel.h:104
TileTBID.h
TileHWID.h
TileCablingService.h
lumiFormat.i
int i
Definition: lumiFormat.py:85
TileHWID::get_hash
virtual IdentifierHash get_hash(const HWIdentifier &id) const
create hash id from compact ADC id without error checking
Definition: TileHWID.cxx:544
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TileHitToRawChannel::m_tileThresh
bool m_tileThresh
If true => apply threshold on the conversion to raw channels.
Definition: TileHitToRawChannel.h:119
createCoolChannelIdFile.channel_id
channel_id
Definition: createCoolChannelIdFile.py:52
TileRawChannelUnit::MegaElectronVolts
@ MegaElectronVolts
Definition: TileRawChannelUnit.h:20
TileInfo::getNoiseScaleFactor
float getNoiseScaleFactor(void) const
Conversion from ADC sigma noise to OF sigma noise.
Definition: TileInfo.h:399
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Tile_Base_ID::LOWGAIN
@ LOWGAIN
Definition: Tile_Base_ID.h:57
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
TileHitToRawChannel::m_tileTBID
const TileTBID * m_tileTBID
Pointer to TileID helper.
Definition: TileHitToRawChannel.h:111
AthAlgorithm
Definition: AthAlgorithm.h:47
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
TileHitToRawChannel::~TileHitToRawChannel
virtual ~TileHitToRawChannel()
Destructor
Definition: TileHitToRawChannel.cxx:73
TileHWID::drawer_id
HWIdentifier drawer_id(int frag) const
ROS HWIdentifer.
Definition: TileHWID.cxx:187
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
TileHWID::channel_id
HWIdentifier channel_id(int ros, int drawer, int channel) const
channel HWIdentifer
Definition: TileHWID.cxx:199
PlotCalibFromCool.en
en
Definition: PlotCalibFromCool.py:399
errorcheck.h
Helpers for checking error return status codes and reporting errors.
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
TileHitToRawChannel::m_hitContainerKey
SG::ReadHandleKey< TileHitContainer > m_hitContainerKey
Definition: TileHitToRawChannel.h:90
TileHit
Definition: TileSimEvent/TileSimEvent/TileHit.h:30
TileHitToRawChannel::m_all_ids
std::vector< HWIdentifier * > m_all_ids
Vector to store all the drawer ids.
Definition: TileHitToRawChannel.h:116
RNGWrapper.h
TileInfo::TileNoise
bool TileNoise() const
Noise switched on/off?
Definition: TileInfo.h:87
TileHitContainer.h
TileHitToRawChannel::m_cabling
const TileCablingService * m_cabling
Pointer to the TileCablingService instance.
Definition: TileHitToRawChannel.h:114
TileHWID::adc_id
HWIdentifier adc_id(int ros, int drawer, int channel, int adc) const
adc HWIdentifer
Definition: TileHWID.cxx:229
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
TileMutableRawChannelContainer.h
Helper for holding non-const raw data prior to recording in SG.
TileInfo::TileZeroSuppress
bool TileZeroSuppress() const
Zero suppression switched on/off?
Definition: TileInfo.h:91
TileHWID::drawer
int drawer(const HWIdentifier &id) const
extract drawer field from HW identifier
Definition: TileHWID.h:171
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
Tile_Base_ID::to_string
std::string to_string(const Identifier &id, int level=0) const
Definition: Tile_Base_ID.cxx:52
TileHitToRawChannel::m_tileInfo
const TileInfo * m_tileInfo
Pointer to TileInfo.
Definition: TileHitToRawChannel.h:113
TileCablingService::connected
bool connected(int ros, int drawer) const
Definition: TileCablingService.h:275
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
TileHitToRawChannel::initialize
virtual StatusCode initialize() override
initialize method
Definition: TileHitToRawChannel.cxx:85
TileHitToRawChannel::m_ampMaxHi
double m_ampMaxHi
Value of the maximum amplitude to be stored as a high gain channel.
Definition: TileHitToRawChannel.h:121
TileCalibUtils::getDrawerIdx
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
Definition: TileCalibUtils.cxx:60
TileAANtupleConfig.rawChannelContainer
rawChannelContainer
Definition: TileAANtupleConfig.py:120
TileHWID::to_string
std::string to_string(const HWIdentifier &id, int level=0) const
extract all fields from HW identifier HWIdentifier get_all_fields ( const HWIdentifier & id,...
Definition: TileHWID.cxx:50
ReadHandle.h
Handle class for reading from StoreGate.
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
Default
TileHitToRawChannel::m_samplingFractionKey
SG::ReadCondHandleKey< TileSamplingFraction > m_samplingFractionKey
Name of TileSamplingFraction in condition store.
Definition: TileHitToRawChannel.h:99
IdContext
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
Definition: IdContext.h:26
TileHitToRawChannel::finalize
virtual StatusCode finalize() override
finalize method
Definition: TileHitToRawChannel.cxx:409
TileInfo::ADCmax
int ADCmax() const
Returns the maximum ADC output (10 bits --> 1023)
Definition: TileInfo.h:71
TileFragHash::Default
@ Default
Definition: TileFragHash.h:33
TileHitToRawChannel::m_tileNoise
bool m_tileNoise
If true => generate noise for the TileRawChannel creation.
Definition: TileHitToRawChannel.h:118
WriteCellNoiseToCool.noise
noise
Definition: WriteCellNoiseToCool.py:380
TileRawChannelUnit::ADCcounts
@ ADCcounts
Definition: TileRawChannelUnit.h:17
IAthRNGSvc.h
Identifier
Definition: IdentifierFieldParser.cxx:14