ATLAS Offline Software
TileRawChannelBuilderFlatFilter.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 // Gaudi includes
8 #include "Gaudi/Property.h"
9 
10 // Atlas includes
11 #include "AthAllocators/DataPool.h"
13 
14 // Tile includes
18 #include "TileEvent/TileDigits.h"
19 #include "CaloIdentifier/TileID.h"
23 
24 // lang include
25 #include <algorithm>
26 #include <cmath>
27 
28 static const InterfaceID IID_ITileRawChannelBuilderFlatFilter
29  ("TileRawChannelBuilderFlatFilter", 1, 0);
30 
32  return IID_ITileRawChannelBuilderFlatFilter;
33  //return TileRawChannelBuilder::interfaceID();
34 }
35 
36 #define TILE_FLATFILTERBUILDERVERBOSE false
37 
42  const std::string& name, const IInterface *parent)
44 {
45  //declare interfaces
46  declareInterface< TileRawChannelBuilder >( this );
47  declareInterface< TileRawChannelBuilderFlatFilter >(this);
48 
49  m_rawChannelContainerKey = "TileRawChannelFlat";
50 
51  //declare properties
52  declareProperty("PedStart",m_pedStart = 0);
53  declareProperty("PedLength",m_pedLength = 1);
54  declareProperty("PedOffset",m_pedOffset = 0);
55  declareProperty("SignalStart",m_signalStart = 1);
56  declareProperty("SignalLength",m_signalLength = 8);
57  declareProperty("FilterLength",m_filterLength = 5);
58  declareProperty("FrameLength",m_frameLength = 9);
59  declareProperty("DeltaCutLo",m_deltaCut[0] = 4.5);
60  declareProperty("DeltaCutHi",m_deltaCut[1] = 8.5);
61  declareProperty("RMSCutLo",m_rmsCut[0] = 1.0);
62  declareProperty("RMSCutHi",m_rmsCut[1] = 2.5);
63 }
64 
69 }
70 
75 
76  ATH_MSG_INFO( "TileRawChannelBuilderFlatFilter::initialize()" );
77 
79 
80  // init in superclass
82 
83  return StatusCode::SUCCESS;
84 }
85 
87 
88  ATH_MSG_DEBUG( "Finalizing" );
89  return StatusCode::SUCCESS;
90 }
91 
92 TileRawChannel* TileRawChannelBuilderFlatFilter::rawChannel(const TileDigits* digits, const EventContext& /*ctx*/) {
93 
94  ++m_chCounter;
95 
96  const HWIdentifier adcId = digits->adc_HWID();
97  int gain = m_tileHWID->adc(adcId);
98 
99  ATH_MSG_VERBOSE( "Running FlatFilter for TileRawChannel with HWID "
100  << m_tileHWID->to_string(adcId) );
101 
102  // tmp variables for filtering
103  double amplitude = 0.0;
104  double time = 0.0;
105 
106  // use flat filter
107  flatFilter(digits->samples(), gain, amplitude, time);
108 
109  unsigned int drawerIdx(0), channel(0), adc(0);
110  m_tileIdTransforms->getIndices(adcId, drawerIdx, channel, adc);
111 
112  // flat filter calib
113  if (m_calibrateEnergy) {
114  amplitude = m_tileToolEmscale->doCalibCis(drawerIdx, channel, adc, amplitude);
115  }
116 
117  ATH_MSG_VERBOSE( "Creating RawChannel a=" << amplitude << " t=" << time );
118 
119  // return new TileRawChannel
120  // TileRawChannel *rawCh = new TileRawChannel(adcId,amplitude,time,0.0);
121 
123  TileRawChannel *rawCh = tileRchPool.nextElementPtr();
124  rawCh->assign (adcId, amplitude, time, 0, 0);
125 
126  if (m_correctTime) {
127  time -= m_tileToolTiming->getSignalPhase(drawerIdx, channel, adc);
128  rawCh->insertTime(time);
129  ATH_MSG_VERBOSE( "Correcting time, new time=" << rawCh->time() );
130  }
131 
132  if (TileID::HIGHGAIN == gain) {
133  ++m_nChH;
134  m_RChSumH += amplitude;
135  } else {
136  ++m_nChL;
137  m_RChSumL += amplitude;
138  }
139 
140  return rawCh;
141 }
142 
143 bool TileRawChannelBuilderFlatFilter::isSignalInFrame(const std::vector<float> &digits,
144  double deltaCut, double rmsCut, int &max, int &min, double &mean, double &rms) const {
145 
146  int t, val;
147  // First compute the values that will be used to decide
148  min = 65536;
149  max = 0;
150  mean = 0.0;
151  rms = 0.0;
152 
154  ATH_MSG_VERBOSE( "Checking for signal in frame" );
155 
156  for (t = 0; t < m_frameLength; ++t) {
157  val = (int)digits.at(t);
158  mean += val;
159  rms += val*val;
160  if ( val < min ) min = val;
161  if ( val > max ) max = val;
162  }
163 
164  mean /= m_frameLength;
165  rms /= m_frameLength;
166  rms = sqrt(rms - mean*mean);
167  if ( ( (max-min) >= deltaCut ) &&
168  ( rms >= rmsCut ) ) {
169  return true;
170  }
171  else return false;
172 }
173 
174 double TileRawChannelBuilderFlatFilter::getPedestal(const std::vector<float> &digits
175  , int pedStart, int pedLgt) const {
176  int i, t, sum = 0;
177  double ped;
178 
180  ATH_MSG_VERBOSE( "Getting pedestal " << pedStart
181  << "->" << (pedStart + pedLgt) );
182  }
183 
184  if (pedLgt == 0)
185  return 0.0;
186  else if (pedLgt < 0) {
187  // calculate sum of ped_length samples starting from ped_start
188  // and go to the left (negative direction)
189  // if number of samples is not enough, start from the end of the frame */
190  pedLgt *= -1;
191  t = pedStart;
192  for (i = 0; i < pedLgt; ++i) {
193  if (t < 0) t += m_frameLength;
194  sum += (int) digits.at(t--);
195  }
196  }
197  else {
198  // calculate sum of ped_length samples starting from ped_start
199  // and go to the right
200  // if number of samples is not enough, start from the begining of the frame */
201  t = pedStart;
202  for (i = 0; i < pedLgt; ++i) {
203  if (t == m_frameLength) t -= m_frameLength;
204  sum += (int) digits.at(t++);
205  }
206  }
207 
208  // calculate mean ped
209  ped = (double) sum / (double) pedLgt;
210 
211  if (TILE_FLATFILTERBUILDERVERBOSE) ATH_MSG_VERBOSE( "Got pedestal " << ped );
212 
213  return (ped);
214 }
215 
216 
217 int TileRawChannelBuilderFlatFilter::getMaxAdder(const std::vector<float> &digits,
218  int filterLength,int signalStart, int signalLength
219  , int &tMax, int &tMaxFrame, int &adderFrame) const {
220  int i, t, minW, maxW, adder, adderWindow;
221  int tm=0, maxAdder=-1;
222 
224  ATH_MSG_VERBOSE( "Getting adder flgt " << filterLength
225  << " Signal " << signalStart
226  << "->" << (signalStart + signalLength) );
227  }
228 
229  // left and right limits for signal window
230  minW = signalStart;
231  maxW = signalStart + signalLength - filterLength + 1;
232 
233  // max adder inside signal window
234  for (t = minW; t < maxW; ++t) {
235  adder = 0;
236  // sum of all samples in window
237  for (i = t; i < t+filterLength; ++i) adder += (int)digits.at(i);
238  // store maximum
239  if ( adder > maxAdder ) {
240  tm = t;
241  maxAdder = adder;
242  }
243  }
244 
245  // return parameters for max adder in signal window
246  tMax = tm;
247 
248  adderWindow = maxAdder;
249 
250  // right limit for whole frame
251  maxW = m_frameLength - filterLength + 1;
252 
253  // max adder after signal window
254  for ( ; t < maxW; ++t) {
255  adder = 0;
256  for (i = t; i < t+filterLength; ++i) adder += (int)digits.at(i);
257 
258  if ( adder > maxAdder ) {
259  tm = t;
260  maxAdder = adder;
261  }
262  }
263 
264  // max adder before signal window
265  for (t = 0; t < minW; ++t) {
266  adder = 0;
267  for (i = t; i < t+filterLength; ++i)
268  adder += (int)digits.at(i);
269 
270  if ( adder > maxAdder ) {
271  tm = t;
272  maxAdder = adder;
273  }
274  }
275 
276  // return parameters for max adder in whole frame
277  tMaxFrame = tm;
278  adderFrame = maxAdder;
279 
281  ATH_MSG_VERBOSE( "Got max adder, tMax=" << tMax
282  << " tMaxFrame=" << tMaxFrame
283  << " maxAdder=" << maxAdder
284  << " adderWindow=" << adderWindow );
285  }
286 
287  return adderWindow;
288 }
289 
290 int TileRawChannelBuilderFlatFilter::getMaxSample(const std::vector<float> &digits
291  , int signalStart, int signalLength, int &tMax, int &tMaxFrame, int &sampleFrame) const {
292 
293  int t, minW, maxW, sampleWindow;
294  int tm = 0, maxSample = -1;
295 
297  ATH_MSG_VERBOSE( "Getting max sample, Signal " << signalStart
298  << "->" << (signalStart + signalLength) );
299  }
300 
301  // left and right limits for signal window
302  minW = signalStart;
303  maxW = signalStart + signalLength;
304 
305  // max sample inside signal window take leftmost maximum
306  for (t = minW; t < maxW; ++t) {
307  if ((int) digits.at(t) > maxSample) {
308  tm = t;
309  maxSample = (int) digits.at(t);
310  }
311  }
312 
313  // let's check if we have more than one sample with the same amplitude
314  // in such a case take central sample and also
315  // avoid maximum at the boundary (tm=minW)
316  for (t = tm + 1; t < maxW; ++t)
317  if ((int) digits.at(t) != maxSample) break;
318 
319  t -= tm; // number of identical samples
320  if (t == 2 && tm == minW) ++tm; // move from the boundary
321  else tm += (t - 1) / 2; // center of the window
322 
323  // return parameters for max sample in signal window
324  tMax = tm;
325  sampleWindow = maxSample;
326 
327  // right limit for whole frame
328  maxW = m_frameLength;
329 
330  // max sample after signal window
331  for ( ; t < maxW; ++t) {
332  if ( (int)digits.at(t) > maxSample ) {
333  tm = t;
334  maxSample = (int)digits.at(t);
335  }
336  }
337 
338  // max sample before signal window
339  for (t = 0; t < minW; ++t) {
340  if ( (int)digits.at(t) > maxSample ) {
341  tm = t;
342  maxSample = (int)digits.at(t);
343  }
344  }
345 
346  // return parameters for max adder in whole frame
347  tMaxFrame = tm;
348  sampleFrame = maxSample;
349 
351  ATH_MSG_VERBOSE( "Got max sample " << sampleFrame
352  << " tMaxFrame=" << tMaxFrame
353  << " tMax=" << tMax );
354  }
355 
356  return sampleWindow;
357 }
358 
359 double TileRawChannelBuilderFlatFilter::calculatePeak(const std::vector<float> &digits
360  , int peakPos, double ped, double &position) const {
361 
362  int y_1, y0, y1;
363  double peak, tmax, A, B, C;
364 
366  ATH_MSG_VERBOSE( "Calculating peak, Pos " << peakPos
367  << " Pedestal " << ped );
368  }
369 
370  if ((peakPos == 0) || (peakPos == m_frameLength - 1)) {
371  // peak at the boundary
372  tmax = peakPos;
373  peak = digits.at(peakPos);
374  } else {
375  // let's say that "peak_pos" is X=0 point
376  y_1 = (int) digits.at(peakPos - 1); // ordinate at X=-1
377  y0 = (int) digits.at(peakPos); // ordinate at X=0
378  y1 = (int) digits.at(peakPos + 1); // ordinate at X=1
379 
380  // coefficients A,B,C of Y(x) = A*x^2 + B*x + C
381  C = y0;
382  B = (y1 - y_1) / 2.;
383  A = y1 - B - C;
384 
385  if (A < 0.0) {
386  // amplitude at peak_pos is local maximim
387  tmax = peakPos - B / (A * 2.);
388  peak = C - B * B / (A * 4.);
389  }
390  else if ( y_1 == y0 && y0 == y1 ) {
391  // flat distribution, no peak at all
392  tmax = peakPos;
393  peak = y0;
394  }
395  else {
396  // there is no local maximim
397  // phase has negative sign to indicate that,
398  // peak is amplitude at peak_pos
399  tmax = -peakPos;
400  peak = y0;
401  }
402  }
403 
404  // subtract pedestal
405  peak -= ped;
406  // convert to nanoseconds
407  position = tmax * 25.;
408 
410  ATH_MSG_VERBOSE( "Found Peak " << peak << " at " << position );
411 
412  return (peak);
413 }
414 
415 double TileRawChannelBuilderFlatFilter::calculateFlatFilter(const std::vector<float> &digits,
416  int filterStart, int filterLength, double ped, double &position) const {
417 
418  int t, sum = 0;
419  double energy;
420 
422  ATH_MSG_VERBOSE( "Calc flat filter Filter: " << filterStart
423  << "->" << (filterStart + filterLength)
424  << " pedestal=" << ped );
425  }
426 
427  // calculate sum of filter_length samples
428  for (t = filterStart; t < filterStart+filterLength; ++t)
429  sum += (int)digits.at(t);
430 
431  // subtract pedestal
432  energy = (double)sum - ped * filterLength;
433 
434  // calculate center of the filter and convert to nanoseconds
435  position = (filterStart + (filterLength-1)/2.) * 25.;
436 
438  ATH_MSG_VERBOSE( "Flat amplitude=" << energy
439  << " position=" << position );
440  }
441 
442  return(energy);
443 }
444 
445 double TileRawChannelBuilderFlatFilter::getTime(const std::vector<float> &digits
446  , int signalStart, int signalLength, double ped) const {
447 
448  int t, tmax = signalStart + signalLength;
449  double position, val, sig = 0.0, sum = 0.0;
450 
452  ATH_MSG_VERBOSE( "Getting time Signal: " << signalStart
453  << "->" << (signalStart + signalLength)
454  << " pedestal=" << ped );
455  }
456 
457  // calculate sum of samples and sum of samples weighted with time
458  for (t = signalStart; t < tmax; ++t) {
459  val = (int) (digits.at(t) - ped);
460  sig += val;
461  sum += val * t;
462  }
463 
464  if (sig > 0.0 && sum > 0) {
465  position = sum / sig;
466  // convert to nanoseconds
467  if (position < tmax) position *= 25.0;
468  else position = 0.0;
469 
470  } else {
471  position = 0.0;
472  }
473 
475  ATH_MSG_VERBOSE( "Got time " << position );
476 
477  return (position);
478 }
479 
481  , const int gain, double& amplitude, double& time) const {
482 
483  int frameMax = 0;
484  int frameMin = 0;
485  double frameMean = 0.0;
486  double frameRMS = 0.0;
487  bool signal = false;
488  double pedestal = 0.0;
489 
490  //int adderMax = 0; // maximum of adder
491  int tAdder = 0; // time for adder
492  int tAdderFrame = 0;
493  int adderMaxFrame = 0;
494 
495  //int sampleMax = 0;
496  int tSample = 0;
497  int tSampleFrame = 0;
498  int sampleMaxFrame = 0;
499 
500  //double peakAmplitude;
501  //double peakEnergy;
502  //double peakTime;
503  //double flatEnergy;
504 
505  double flatFilter; // non calibrated energy from flat filter
506  double flatTime;
507 
508  if (msgLvl(MSG::VERBOSE)) {
509  msg(MSG::VERBOSE) << "Digits." << samples.size() << " {";
510  for (unsigned i = 0; i < samples.size(); i++) {
511  msg(MSG::VERBOSE) << samples[i] << " ";
512  }
513  msg(MSG::VERBOSE) << "}" << endmsg;
514  }
515 
516  // check if signal in frame
518  , frameMax, frameMin, frameMean, frameRMS);
519 
520  if (signal && (m_pedOffset < 0)) {
521  // take pedestal before signal
522  // and if number of samples before signal is not enough -
523  // use samples at the end of the frame
524  pedestal = getPedestal(samples, tAdder + m_pedOffset, -m_pedLength);
525  } else {
526  // fixed position of pedestal window for channel without signal
528  }
529 
530  //------------------ Flat Filter ---------------
532  , tAdder , tAdderFrame, adderMaxFrame);
533 
534  // look for max. sample inside maxAdder
535  /*sampleMax =*/getMaxSample(samples, tAdder, m_filterLength, tSample
536  , tSampleFrame, sampleMaxFrame);
537 
538  // position of the peak is always in the signal window even if
539  // real maximum is outside signal window
540  //peakAmplitude = calculatePeak (samples, tSample, pedestal, peakTime);
541  //peakEnergy = calibrateCSL(calibratePeak(peakAmplitude, adcId), adcId);
542 
543  // flat filter method
544  // position of the filter is always in the signal window even if
545  // real maximum is outside signal window
546  flatFilter = calculateFlatFilter(samples, tAdder, m_filterLength, pedestal, flatTime);
547 
548  //ZZZ: No calibration at all!
549  //flatEnergy = calibrateCSL(calibrateFlatFilter(flatFilter,adcId),adcId);
550 
551  // calculate time of the signal as weighted sum of all samples in signal window
553  if (time <= 0.0) time = -flatTime;
554 
555  amplitude = flatFilter;
556 }
557 
558 void TileRawChannelBuilderFlatFilter::flatFilter(const std::vector<uint32_t> &digits,
559  const int gain, double& amplitude, double& time) const {
560 
561  std::vector<float> dVec;
562 
564  ATH_MSG_VERBOSE( "TileRawChannelBuilderFlatFilter - Invoked with vector<int>..");
565 
566  dVec.reserve(digits.size());
567  for (uint32_t i = 0; i < digits.size(); i++) {
568  dVec.push_back((float) digits[i]);
569  }
570  return flatFilter(dVec, gain, amplitude, time);
571 }
572 
TileRawChannelBuilderFlatFilter::finalize
virtual StatusCode finalize()
Definition: TileRawChannelBuilderFlatFilter.cxx:86
mean
void mean(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="")
Definition: dependence.cxx:254
TileRawChannelBuilder::m_dataPoollSize
int m_dataPoollSize
Definition: TileRawChannelBuilder.h:204
TileRawChannel.h
TileRawChannelBuilderFlatFilter::m_pedOffset
int m_pedOffset
Definition: TileRawChannelBuilderFlatFilter.h:179
max
#define max(a, b)
Definition: cfImp.cxx:41
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TileRawChannelBuilder::m_tileToolEmscale
ToolHandle< TileCondToolEmscale > m_tileToolEmscale
Definition: TileRawChannelBuilder.h:166
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TileRawChannelBuilder::m_chCounter
unsigned int m_chCounter
Definition: TileRawChannelBuilder.h:196
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TileRawChannelBuilder::m_calibrateEnergy
bool m_calibrateEnergy
Definition: TileRawChannelBuilder.h:142
TileRawChannelBuilderFlatFilter::m_pedLength
int m_pedLength
Definition: TileRawChannelBuilderFlatFilter.h:178
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
TileRawChannelBuilderFlatFilter::getMaxAdder
int getMaxAdder(const std::vector< float > &digits, int filterLength, int signalStart, int signalLength, int &tMax, int &tMaxFrame, int &adderFrame) const
Get position of maximal adder (sum of <filterLength> samples) in whole frame and in signal window (<s...
Definition: TileRawChannelBuilderFlatFilter.cxx:217
TileRawChannelBuilder::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileRawChannelBuilder.h:161
DMTest::C
C_v1 C
Definition: C.h:26
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
TileRawChannelBuilder::initialize
virtual StatusCode initialize()
Initializer.
Definition: TileRawChannelBuilder.cxx:98
TileRawChannelBuilderFlatFilter.h
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
TileInfo.h
TileRawChannelBuilderFlatFilter::calculatePeak
double calculatePeak(const std::vector< float > &digits, int peakPos, double ped, double &position) const
Definition: TileRawChannelBuilderFlatFilter.cxx:359
Tile_Base_ID::HIGHGAIN
@ HIGHGAIN
Definition: Tile_Base_ID.h:57
TileRawChannelBuilderFlatFilter::m_deltaCut
double m_deltaCut[2]
Definition: TileRawChannelBuilderFlatFilter.h:185
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
TileRawChannelBuilderFlatFilter::isSignalInFrame
bool isSignalInFrame(const std::vector< float > &digits, double deltaCut, double rmsCut, int &frameMax, int &frameMin, double &frameMean, double &frameRMS) const
Find min and max sample Calculate mean and RMS of all samples.
Definition: TileRawChannelBuilderFlatFilter.cxx:143
TileRawData::adc_HWID
HWIdentifier adc_HWID(void) const
Definition: TileRawData.h:53
HWIdentifier
Definition: HWIdentifier.h:13
TileRawChannelBuilder::m_tileToolTiming
ToolHandle< TileCondToolTiming > m_tileToolTiming
Definition: TileRawChannelBuilder.h:169
TileRawChannel::time
float time(int ind=0) const
Definition: TileRawChannel.h:103
TileRawChannelBuilderFlatFilter::initialize
virtual StatusCode initialize()
Initializer.
Definition: TileRawChannelBuilderFlatFilter.cxx:74
makeTRTBarrelCans.y1
tuple y1
Definition: makeTRTBarrelCans.py:15
TileID.h
TileRawChannelBuilderFlatFilter::m_signalLength
int m_signalLength
Definition: TileRawChannelBuilderFlatFilter.h:181
TileRawChannel::assign
void assign(const HWIdentifier &id, float amplitude, float time, float quality, float ped=0.0)
Definition: TileRawChannel.h:63
dqt_zlumi_alleff_HIST.A
A
Definition: dqt_zlumi_alleff_HIST.py:110
TileRawChannelContainer.h
TileRawChannelBuilder::m_rChType
TileFragHash::TYPE m_rChType
Definition: TileRawChannelBuilder.h:136
TileHWID::adc
int adc(const HWIdentifier &id) const
extract adc field from HW identifier
Definition: TileHWID.h:193
TILE_FLATFILTERBUILDERVERBOSE
#define TILE_FLATFILTERBUILDERVERBOSE
Definition: TileRawChannelBuilderFlatFilter.cxx:36
TileRawChannelBuilder::m_nChL
int m_nChL
Definition: TileRawChannelBuilder.h:198
TileHWID.h
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
lumiFormat.i
int i
Definition: lumiFormat.py:92
TileDigitsContainer.h
TileRawChannelBuilderFlatFilter::m_pedStart
int m_pedStart
Definition: TileRawChannelBuilderFlatFilter.h:177
TileRawChannelBuilder::m_rawChannelContainerKey
SG::WriteHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
Definition: TileRawChannelBuilder.h:129
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
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
TileRawChannelBuilder::m_tileIdTransforms
ToolHandle< TileCondIdTransforms > m_tileIdTransforms
Definition: TileRawChannelBuilder.h:172
TileRawChannelBuilder::m_nChH
int m_nChH
Definition: TileRawChannelBuilder.h:199
TileRawChannelBuilderFlatFilter::~TileRawChannelBuilderFlatFilter
~TileRawChannelBuilderFlatFilter()
Destructor.
Definition: TileRawChannelBuilderFlatFilter.cxx:68
TileRawChannel
Definition: TileRawChannel.h:35
python.BuildSignatureFlags.sig
sig
Definition: BuildSignatureFlags.py:215
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TileRawChannelBuilder::m_RChSumL
double m_RChSumL
Definition: TileRawChannelBuilder.h:200
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
TileRawChannelBuilder
Definition: TileRawChannelBuilder.h:59
DataPool::nextElementPtr
pointer nextElementPtr()
obtain the next available element in pool by pointer pool is resized if its limit has been reached On...
TileDigits::samples
const std::vector< float > & samples() const
Definition: TileDigits.h:58
TileRawChannelBuilderFlatFilter::flatFilter
void flatFilter(const std::vector< uint32_t > &digits, const int gain, double &amplitude, double &time) const
Filter given digits using FlatFilter method.
Definition: TileRawChannelBuilderFlatFilter.cxx:558
DataPool.h
min
#define min(a, b)
Definition: cfImp.cxx:40
TileRawChannelBuilder::m_correctTime
bool m_correctTime
Definition: TileRawChannelBuilder.h:145
Cut::signal
@ signal
Definition: SUSYToolsAlg.cxx:64
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TileTrigType.h
TileDigits
Definition: TileDigits.h:30
errorcheck.h
Helpers for checking error return status codes and reporting errors.
TileRawChannel::insertTime
void insertTime(float time)
Definition: TileRawChannel.cxx:76
TileRawChannelBuilderFlatFilter::getTime
double getTime(const std::vector< float > &digits, int signalStart, int signalLength, double ped) const
Calculate the time of signal in window of <signalLength> starting at <signalStart> Result is sum of t...
Definition: TileRawChannelBuilderFlatFilter.cxx:445
dqt_zlumi_alleff_HIST.B
B
Definition: dqt_zlumi_alleff_HIST.py:110
TileRawChannelBuilderFlatFilter::m_filterLength
int m_filterLength
Definition: TileRawChannelBuilderFlatFilter.h:182
Example_ReadSampleNoise.ped
ped
Definition: Example_ReadSampleNoise.py:45
TileRawChannelBuilderFlatFilter::getPedestal
double getPedestal(const std::vector< float > &digits, int pedStart, int pedLgt) const
Calculate pedestal as mean of <pedLgt> samples starting from <pedStart>
Definition: TileRawChannelBuilderFlatFilter.cxx:174
TileRawChannelBuilderFlatFilter::calculateFlatFilter
double calculateFlatFilter(const std::vector< float > &digits, int filterStart, int filterLength, double ped, double &position) const
Calculate energy using flat filter Sum of <filterLength> samples starting at <filterStart> Requires p...
Definition: TileRawChannelBuilderFlatFilter.cxx:415
TileFragHash::FlatFilter
@ FlatFilter
Definition: TileFragHash.h:35
TileRawChannelBuilderFlatFilter::m_rmsCut
double m_rmsCut[2]
Definition: TileRawChannelBuilderFlatFilter.h:186
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TileRawChannelBuilder::m_RChSumH
double m_RChSumH
Definition: TileRawChannelBuilder.h:201
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
beamspotnt.rms
rms
Definition: bin/beamspotnt.py:1266
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:47
TileRawChannelBuilderFlatFilter::getMaxSample
int getMaxSample(const std::vector< float > &digits, int signalStart, int signalLength, int &tMax, int &tMaxFrame, int &sampleFrame) const
Definition: TileRawChannelBuilderFlatFilter.cxx:290
TileRawChannelBuilderFlatFilter::TileRawChannelBuilderFlatFilter
TileRawChannelBuilderFlatFilter(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: TileRawChannelBuilderFlatFilter.cxx:41
TileRawChannelBuilderFlatFilter::rawChannel
virtual TileRawChannel * rawChannel(const TileDigits *digits, const EventContext &ctx)
Builder virtual method to be implemented by subclasses.
Definition: TileRawChannelBuilderFlatFilter.cxx:92
master.tSample
tSample
Definition: master.py:51
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
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:49
TileDigits.h
TileRawChannelBuilderFlatFilter::m_signalStart
int m_signalStart
Definition: TileRawChannelBuilderFlatFilter.h:180
TileRawChannelBuilderFlatFilter::m_frameLength
int m_frameLength
Definition: TileRawChannelBuilderFlatFilter.h:183
TileRawChannelBuilderFlatFilter::interfaceID
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
Definition: TileRawChannelBuilderFlatFilter.cxx:31