ATLAS Offline Software
Loading...
Searching...
No Matches
TileDigiNoiseCalibAlg Class Reference

#include <TileDigiNoiseCalibAlg.h>

Inheritance diagram for TileDigiNoiseCalibAlg:

Public Member Functions

 TileDigiNoiseCalibAlg (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~TileDigiNoiseCalibAlg ()
virtual StatusCode initialize () override
 Only array initialization is done here All the helpers initialization is done at the first event.
virtual StatusCode execute () override
 Main method.
virtual StatusCode finalize () override
 The output ntuple is created in finalize method.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

enum  trigtype {
  Unknown = 0 , Phys = 1 , Las = 2 , Ped = 4 ,
  Cis = 8
}
using Tile = TileCalibUtils
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode FirstEvt_initialize ()
 Initialization done at the first event.
StatusCode fillDigits (const TileDQstatus *theDQstatus)
 fillDigits is called at every events.
void finalDigits ()
 finalDigits is called during finalize Here the average Ped, m_lfn, m_hfn and covariance are calculated.
void StoreRunInfo (const TileDQstatus *dqStatus)
 StoreRunInfo is called only during the first event.
int digiChannel2PMT (int ros, int chan)
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

bool m_calibMode
bool m_usePMT
bool m_doAvgCorr
bool m_doRobustCov
SG::ReadHandleKey< TileDQstatusm_dqStatusKey
SG::ReadHandleKey< TileDigitsContainerm_digitsContainerKey
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey
ToolHandle< TileRawChannelBuilderFlatFilterm_adderFilterAlgTool
TileBeamElemContByteStreamCnvm_beamCnv
const TileCablingServicem_cabling
TileOFCorrelationm_tileOFCorrelation
const TileIDm_tileID
const TileHWIDm_tileHWID
const uint32_t * m_cispar
std::string m_ntupleID
std::string m_file
int64_t m_treeSize
int m_nSamples
std::string m_digitsContainer
std::string m_beamElemContainer
std::string m_dspRawChannelContainer
double(* m_sumPed2 )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
double(* m_sumRms2 )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
double(* m_meanAmp )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
double(* m_meanAmp_ij )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_CHAN][Tile::MAX_GAIN]
int m_evtNr
int(* m_evt )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
int m_time
int m_year
int m_month
int m_day
int m_yday
int m_hour
int m_min
int m_run
int m_trigType
uint8_t(* m_ros )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
uint8_t(* m_drawer )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
uint8_t(* m_channel )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
bool(* m_gain )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
float(* m_ped )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
float(* m_lfn )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
float(* m_hfn )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
float(* m_noise_cov )[Tile::MAX_DRAWER][Tile::MAX_GAIN]
float(* m_auto_corr )[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NVALS]
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 46 of file TileDigiNoiseCalibAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

◆ Tile

Definition at line 124 of file TileDigiNoiseCalibAlg.h.

Member Enumeration Documentation

◆ trigtype

Enumerator
Unknown 
Phys 
Las 
Ped 
Cis 

Definition at line 58 of file TileDigiNoiseCalibAlg.h.

Constructor & Destructor Documentation

◆ TileDigiNoiseCalibAlg()

TileDigiNoiseCalibAlg::TileDigiNoiseCalibAlg ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 44 of file TileDigiNoiseCalibAlg.cxx.

45 : AthAlgorithm(name, pSvcLocator)
46 , m_beamCnv(nullptr)
47 , m_cabling(nullptr)
48 , m_tileOFCorrelation(nullptr)
49 , m_tileID(nullptr)
50 , m_tileHWID(nullptr)
51 , m_cispar(nullptr)
52// , m_nDrawers(0)
53 , m_time(0)
54 , m_year(0)
55 , m_month(0)
56 , m_day(0)
57 , m_yday(0)
58 , m_hour(0)
59 , m_min(0)
60 , m_trigType(0)
61{
62 declareProperty("TileBeamElemContainer", m_beamElemContainer = "TileBeamElemCnt");
63 /* declareProperty("TileRawChannelContainerFlat", m_flatRawChannelContainer = "TileRawChannelFlat");
64 declareProperty("TileRawChannelContainerFit", m_fitRawChannelContainer = ""); // don't create
65 declareProperty("TileRawChannelContainerOpt", m_optRawChannelContainer = ""); // by default */
66 declareProperty("TileRawChannelContainerDsp", m_dspRawChannelContainer = "TileRawChannelCnt");
67 declareProperty("CalibMode", m_calibMode = true);
68 declareProperty("usePMT", m_usePMT = false);
69 declareProperty("RunNumber", m_run = 0);
70 declareProperty("FileNamePrefix", m_file = "Digi_NoiseCalib");
71 declareProperty("NtupleID", m_ntupleID = "Digi_NoiseCalib");
72 declareProperty("TreeSize", m_treeSize = 16000000000LL);
73 declareProperty("NSamples", m_nSamples = 7);
74 declareProperty("DoAvgCorr", m_doAvgCorr = false);
75 declareProperty("DoRobustCov", m_doRobustCov = false);
76 declareProperty("TileDQstatus", m_dqStatusKey = "TileDQstatus");
77
78 m_run = 0;
79 m_evtNr = -1;
80
95}
#define NVALS
AthAlgorithm()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
static const unsigned int MAX_ROS
Number of ROSs.
static const unsigned int MAX_GAIN
Number of gains per channel.
static const unsigned int MAX_DRAWER
Number of drawers in ROS 1-4.
static const unsigned int MAX_CHAN
Number of channels in drawer.
TileOFCorrelation * m_tileOFCorrelation
double(* m_meanAmp_ij)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_CHAN][Tile::MAX_GAIN]
double(* m_sumRms2)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
float(* m_auto_corr)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NVALS]
uint8_t(* m_channel)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
bool(* m_gain)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
SG::ReadHandleKey< TileDQstatus > m_dqStatusKey
float(* m_hfn)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
float(* m_noise_cov)[Tile::MAX_DRAWER][Tile::MAX_GAIN]
uint8_t(* m_ros)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
TileBeamElemContByteStreamCnv * m_beamCnv
double(* m_meanAmp)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
const TileCablingService * m_cabling
float(* m_lfn)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
double(* m_sumPed2)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
int(* m_evt)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
uint8_t(* m_drawer)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
float(* m_ped)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]

◆ ~TileDigiNoiseCalibAlg()

TileDigiNoiseCalibAlg::~TileDigiNoiseCalibAlg ( )
virtual

Definition at line 97 of file TileDigiNoiseCalibAlg.cxx.

97 {
98
99 delete[] m_sumPed2;
100 delete[] m_sumRms2;
101 delete[] m_meanAmp;
102 delete[] m_meanAmp_ij;
103 delete[] m_evt;
104 delete[] m_ros;
105 delete[] m_drawer;
106 delete[] m_channel;
107 delete[] m_gain;
108 delete[] m_ped;
109 delete[] m_lfn;
110 delete[] m_hfn;
111 delete[] m_noise_cov;
112 delete[] m_auto_corr;
113}

Member Function Documentation

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ digiChannel2PMT()

int TileDigiNoiseCalibAlg::digiChannel2PMT ( int ros,
int chan )
inlineprivate

Definition at line 72 of file TileDigiNoiseCalibAlg.h.

72 {
73 return (abs(m_cabling->channel2hole(ros, chan)) - 1);
74 }

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode TileDigiNoiseCalibAlg::execute ( )
overridevirtual

Main method.

Definition at line 196 of file TileDigiNoiseCalibAlg.cxx.

196 {
197
198 const EventContext& ctx = Gaudi::Hive::currentContext();
199 const TileDQstatus * dqStatus = SG::makeHandle (m_dqStatusKey, ctx).get();
200
202 bool empty(false);
203
204 if (m_evtNr < 0) {
205
206 if (FirstEvt_initialize().isFailure()) {
207 ATH_MSG_ERROR( "FirstEvt_initialize failed" );
208 }
209
210 bool calibMode = (dqStatus->calibMode() == 1);
211 if (calibMode != m_calibMode) {
212 ATH_MSG_INFO( "Calib mode from data is " );
213 ATH_MSG_INFO( " Overwriting calib mode " );
214 m_calibMode = calibMode;
215 }
216
217 m_cispar = dqStatus->cispar();
218 StoreRunInfo(dqStatus); // done only once
219 }
220
221 m_cispar = dqStatus->cispar();
222 if (m_evtNr % 1000 == 0)
223 ATH_MSG_WARNING( m_evtNr << " events processed so far" );
224
225 // store TileDigits
226 if (m_nSamples > 0) sc = fillDigits (dqStatus);
227 empty &= (sc.isFailure());
228
229 if (empty) {
230 ATH_MSG_WARNING( "Error in execute " );
231 }
232 ++m_evtNr;
233 return StatusCode::SUCCESS;
234}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_WARNING(x)
static Double_t sc
static const Attributes_t empty
uint32_t calibMode() const
Calibration mode.
const uint32_t * cispar() const
CIS parameters.
StatusCode fillDigits(const TileDQstatus *theDQstatus)
fillDigits is called at every events.
StatusCode FirstEvt_initialize()
Initialization done at the first event.
void StoreRunInfo(const TileDQstatus *dqStatus)
StoreRunInfo is called only during the first event.
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ fillDigits()

StatusCode TileDigiNoiseCalibAlg::fillDigits ( const TileDQstatus * theDQstatus)
private

fillDigits is called at every events.

Statistics is summed for Average, RMS and covariance calculations

Definition at line 379 of file TileDigiNoiseCalibAlg.cxx.

379 {
380/*---------------------------------------------------------*/
381
382 SG::ReadHandle<TileDigitsContainer> digitsCnt(m_digitsContainerKey);
383 ATH_CHECK( digitsCnt.isValid() );
384
385 TileDigitsContainer::const_iterator collItr = digitsCnt->begin();
386 TileDigitsContainer::const_iterator lastColl = digitsCnt->end();
387
388 for (; collItr != lastColl; ++collItr) {
389
390 TileDigitsCollection::const_iterator digitsItr = (*collItr)->begin();
391 TileDigitsCollection::const_iterator lastDigits = (*collItr)->end();
392
393 if (digitsItr != lastDigits) { //loop over all the drawers in the data
394
395 HWIdentifier adc_id = (*digitsItr)->adc_HWID();
396 int ros = m_tileHWID->ros(adc_id);
397 // IMPORTANT! ros for TileCal partitions goes like LBA=1 LBC=2 EBA=3 EBC=4
398
399 int drawer = m_tileHWID->drawer(adc_id);
400 // IMPORTANT! Drawers are from 0 to 63!
401
402 //coverity[STACK_USE]
403 double mean_tmp[48][16][2] = {};
404
405
406 for (; digitsItr != lastDigits; ++digitsItr) { // loop over all channels in the drawer
407
408 adc_id = (*digitsItr)->adc_HWID();
409 int chan = m_tileHWID->channel(adc_id);
410 if (m_usePMT) {
411 chan = digiChannel2PMT(ros, chan); // IMPORTANT: 0-47 PMT format!
412 // by default we use CHANNELS.
413 // PMTs usage is possible by switching on m_usePMT
414 }
415 int gain = m_tileHWID->adc(adc_id);
416
417 std::vector<float> vdigits = (*digitsItr)->samples();
418
419 // Needed to calculate the AutoCorrealtion matrix at end of run
420 //m_tileOFCorrelation->RunningCorrelation(vdigits,ros-1,drawer,chan,gain,msg(),false,m_nSamples,100);
421
422 // if (theDQstatus->isChEmpty(ros, drawer, chan)) {
423 // ATH_MSG_DEBUG( "Skipping Module: " << TileCalibUtils::getDrawerString(ros, drawer)
424 // << " channel: " << chan
425 // << " ADC: " << gain
426 // << " because empty" );
427 // continue;
428 // }
429
430 // If DQ problem, do not fill calib ntuple
431 if (m_calibMode == 1) {// Bigain: check indivual adc's
432 if (!(theDQstatus->isAdcDQgood(ros, drawer, chan, gain))) {
433 ATH_MSG_DEBUG( "Skipping Module: " << TileCalibUtils::getDrawerString(ros, drawer)
434 << " channel: " << chan
435 << " ADC: " << gain
436 << " due to DQ error found." );
437 continue;
438 }
439 } else {// monogain, just check channel
440
441 if (!(theDQstatus->isChanDQgood(ros, drawer, chan))) {
442 ATH_MSG_DEBUG( "Skipping Module: " << TileCalibUtils::getDrawerString(ros, drawer)
443 << " channel: " << chan
444 << " due to DQ error found." );
445 continue;
446 }
447 }
448
449 double meansamp = 0.0;
450 double rmssamp = 0.0;
451 unsigned int dsize = vdigits.size();
452
453 if (dsize > 16) {
454 ATH_MSG_ERROR( "length of digits vector " << dsize << " - greater than 16 !" );
455 dsize = 16;
456 }
457
458 for (unsigned int i = 0; i < dsize; ++i) {
459 double dig = vdigits[i];
460 meansamp += dig;
461 rmssamp += dig * dig;
462 mean_tmp[chan][i][gain] = dig;
463 }
464 if (dsize > 0) {
465 m_ped[ros][drawer][chan][gain] += vdigits[0];
466 m_sumPed2[ros][drawer][chan][gain] += vdigits[0] * vdigits[0];
467
468 if (dsize > 1) {
469 m_evt[ros][drawer][chan][gain]++;
470 meansamp /= dsize;
471 rmssamp = rmssamp / dsize - meansamp * meansamp;
472 rmssamp = (rmssamp > 0.0) ? sqrt(rmssamp * dsize / (dsize - 1)) : 0.0;
473 m_hfn[ros][drawer][chan][gain] += rmssamp;
474 m_sumRms2[ros][drawer][chan][gain] += rmssamp * rmssamp;
475 }
476 }
477
478 // Fill event-by-event correlation values
479 if (m_doAvgCorr)
480 m_tileOFCorrelation->RunningCorrelation(vdigits, ros - 1, drawer, chan, gain, msg(), false, m_nSamples, 100);
481 else
482 m_tileOFCorrelation->Sum(vdigits, ros - 1, drawer, chan, gain, msg(), false, m_nSamples, m_doRobustCov);
483
484 } // loop over channels
485
486 //For cor&cov
487 for (int sample = 0; sample < m_nSamples; ++sample) {
488 for (unsigned int gain = 0; gain < TileCalibUtils::MAX_GAIN; ++gain) {
489 for (unsigned int chan_i = 0; chan_i < TileCalibUtils::MAX_CHAN; ++chan_i) {
490 m_meanAmp[ros][drawer][chan_i][gain] += mean_tmp[chan_i][sample][gain];
491 for (unsigned int chan_j = 0; chan_j < TileCalibUtils::MAX_CHAN; ++chan_j)
492 m_meanAmp_ij[ros][drawer][chan_i][chan_j][gain] += mean_tmp[chan_i][sample][gain] * mean_tmp[chan_j][sample][gain];
493 }
494 }
495 }
496 } //check if Digits in module
497 } //loop over drawers
498
499 return StatusCode::SUCCESS;
500}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
MsgStream & msg() const
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
Definition DataVector.h:838
static std::string getDrawerString(unsigned int ros, unsigned int drawer)
Return the drawer name, e.g.
bool isAdcDQgood(int partition, int drawer, int ch, int gain) const
returns status of single ADC returns False if there are any errors
bool isChanDQgood(int partition, int drawer, int ch) const
returns status of single channel (if bigain, returns AND of ADCs' status
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
int digiChannel2PMT(int ros, int chan)

◆ finalDigits()

void TileDigiNoiseCalibAlg::finalDigits ( )
private

finalDigits is called during finalize Here the average Ped, m_lfn, m_hfn and covariance are calculated.

Definition at line 505 of file TileDigiNoiseCalibAlg.cxx.

505 {
506/*---------------------------------------------------------*/
507
508
509 // Calculate AutoCorrealtion matrix
510 // --Average calculation (Assumes matrix is Toeplitz)
511 if (m_doAvgCorr)
512 m_tileOFCorrelation->CalcRunningCorrelation(msg(), m_nSamples, 100, false);
513 // --Rigorous calculation
514 else
515 m_tileOFCorrelation->CalcCorrelation(msg(), m_nSamples, false, m_doRobustCov);
516
517 // Needed to store autoCorrelation matrix
518 float tmpCorr[9][9] = {};
519
520
521 for (unsigned int ros = 1; ros < TileCalibUtils::MAX_ROS; ++ros) {
522 for (unsigned int drawer = 0; drawer < TileCalibUtils::MAX_DRAWER; ++drawer) {
523 for (unsigned int gain = 0; gain < TileCalibUtils::MAX_GAIN; ++gain) {
524 for (unsigned int chan = 0; chan < TileCalibUtils::MAX_CHAN; ++chan) {
525
526 m_ros[ros][drawer][chan][gain] = ros;
530
531 if (m_evt[ros][drawer][chan][gain] > 0) {
532 int nev = m_evt[ros][drawer][chan][gain];
533 m_ped[ros][drawer][chan][gain] /= nev;
534 double Ped = m_ped[ros][drawer][chan][gain];
535 m_hfn[ros][drawer][chan][gain] /= nev;
536
537 if (nev > 1) {
538 double PedRMS = m_sumPed2[ros][drawer][chan][gain] / nev - Ped * Ped;
539 PedRMS = m_sumPed2[ros][drawer][chan][gain] / nev - Ped * Ped;
540 PedRMS = (PedRMS > 0.0) ? sqrt(PedRMS * nev / (nev - 1)) : 0.0;
541 m_lfn[ros][drawer][chan][gain] = PedRMS;
542 }
543 }
544
545 // Get values from AutoCorrelation matrix
546 // matrix is symmetric, so only half-retrieved and stored
547 m_tileOFCorrelation->GetCorrelation(m_nSamples, tmpCorr, ros - 1, drawer, chan, gain);
548 //std::cout << "Printing AutoCorr values: " << std::endl;
549 int nVals = 0;
550 if (m_doRobustCov){ //save 28 elements for robust method
551 for (int i = 0; i < m_nSamples; i++) {
552 for (int j = i; j < m_nSamples; j++) {
553 //std::cout << "Auto Corr [" << i << "][" << j << "]:" << tmpCorr[i][j] << std::endl;
554 //std::cout << "Auto CorrSym [" << j << "][" << i << "]:" << tmpCorr[j][i] << std::endl;
555 m_auto_corr[ros][drawer][chan][gain][nVals] = tmpCorr[i][j];
556 nVals++;
557 }
558 }
559 } else {
560 for (int i = 0; i < m_nSamples; i++) {
561 for (int j = i+1; j < m_nSamples; j++) {
562 //std::cout << "Auto Corr [" << i << "][" << j << "]:" << tmpCorr[i][j] << std::endl;
563 //std::cout << "Auto CorrSym [" << j << "][" << i << "]:" << tmpCorr[j][i] << std::endl;
564 m_auto_corr[ros][drawer][chan][gain][nVals] = tmpCorr[i][j];
565 nVals++;
566 }
567 }
568 }
569
570 } // end chan loop
571
572 //Calculate covariance loop over chan_i, chan_j
573 if (m_evtNr * m_nSamples > 0) {
574 // Avoid a spurious FPE from clang.
576 //replace m_evtNr with sqrt(m_evt[ch_i]*m_evt[ch_j])
577
578 for (unsigned int chan_i = 0; chan_i < TileCalibUtils::MAX_CHAN; ++chan_i) {
579 m_meanAmp[ros][drawer][chan_i][gain] /= m_evtNr * m_nSamples;
580 for (unsigned int chan_j = 0; chan_j < TileCalibUtils::MAX_CHAN; ++chan_j)
581 m_meanAmp_ij[ros][drawer][chan_i][chan_j][gain] /= m_evtNr * m_nSamples;
582 }
583
584 //coverity[STACK_USE]
585 double covar[48][48];
586 double mean_cov_ii = 0.; // mean values of covar in diag terms
587 double mean_cov_ij = 0.; // mean values of covar in off diag terms
588
589 for (unsigned int chan_i = 0; chan_i < TileCalibUtils::MAX_CHAN; ++chan_i) {
590 for (unsigned int chan_j = 0; chan_j < TileCalibUtils::MAX_CHAN; ++chan_j) {
591 covar[chan_i][chan_j] = m_meanAmp_ij[ros][drawer][chan_i][chan_j][gain] - m_meanAmp[ros][drawer][chan_i][gain] * m_meanAmp[ros][drawer][chan_j][gain];
592
593 if (chan_j < chan_i) {
594 mean_cov_ij += covar[chan_i][chan_j]; //LF: we take C_ij with its sign
595 }
596 }
597 mean_cov_ii += covar[chan_i][chan_i];
598 }
599
600 if (mean_cov_ii != 0.) {
601 m_noise_cov[ros][drawer][gain] = (2. * mean_cov_ij) / (mean_cov_ii * 47.); //(2*cov_ij/(48*47))/(cov_ii/48)
602
603 } else {
604 m_noise_cov[ros][drawer][gain] = 0.;
605 }
606
607 }
608 }
609 }
610 }
611}
float j(const xAOD::IParticle &, const xAOD::TrackMeasurementValidation &hit, const Eigen::Matrix3d &jab_inv)
#define CXXUTILS_TRAPPING_FP
Definition trapping_fp.h:24

◆ finalize()

StatusCode TileDigiNoiseCalibAlg::finalize ( )
overridevirtual

The output ntuple is created in finalize method.

Definition at line 237 of file TileDigiNoiseCalibAlg.cxx.

237 {
238
239 ATH_MSG_INFO( "Finalizing TileDigiNoiseCalibAlg" );
240
241 finalDigits();
242
243 std::ostringstream sStr;
244 std::string trig_str;
245
246 if (m_trigType == Phys) trig_str = "Phys";
247 else if (m_trigType == Las) trig_str = "Las";
248 else if (m_trigType == Ped) trig_str = "Ped";
249 else if (m_trigType == Cis) trig_str = "Cis";
250 else {
251 ATH_MSG_WARNING( "Unknown trigger type " << m_trigType );
252 trig_str = "Unk";
253 }
254 sStr << m_file << "_" << m_run << "_" << trig_str << ".root";
255 m_file = sStr.str();
256 ATH_MSG_INFO( "Writing calibrations to file " << m_file );
257
258 // Create output file: for now creating file for just this
259 // algorithm; want to add to ntuple file eventually??
260 TFile* fout = new TFile(m_file.c_str(), "recreate");
261
262 // Create tree with branches
263 TTree* t = new TTree(m_ntupleID.c_str(), "TileCalib-Ntuple");
264
265 t->Branch("RunNumber", &m_run, "RunNumber/I");
266 t->Branch("TrigType", &m_trigType, "TrigType/I");
267 t->Branch("Time", &m_time, "Time/I");
268 t->Branch("Year", &m_year, "Year/I");
269 t->Branch("Month", &m_month, "Month/I");
270 t->Branch("Day", &m_day, "Day/I");
271 t->Branch("YDay", &m_yday, "YDay/I");
272 t->Branch("Hour", &m_hour, "Hour/I");
273 t->Branch("Min", &m_min, "Min/I");
274 t->Branch("nSamples", &m_nSamples, "nSamples/I");
275 t->Branch("nEvt", &m_evtNr, "nEvt/I"); // events processed
276 t->Branch("ros", *m_ros, "ros[5][64][48][2]/b");
277 t->Branch("drawer", *m_drawer, "drawer[5][64][48][2]/b");
278 t->Branch("channel", *m_channel, "channel[5][64][48][2]/b");
279 t->Branch("gain", *m_gain, "gain[5][64][48][2]/O");
280 t->Branch("EvtGood", *m_evt, "Evt[5][64][48][2]/I"); // events used in the noise calculation for every channel
281 t->Branch("ped", *m_ped, "ped[5][64][48][2]/F");
282 t->Branch("lfn", *m_lfn, "lfn[5][64][48][2]/F");
283 t->Branch("hfn", *m_hfn, "hfn[5][64][48][2]/F");
284 t->Branch("noise_cov", *m_noise_cov, "noise_cov[5][64][2]/F");
285 // AutoCorrelation Matrix: Store only non-diagonal half of symmetric matrix
286 t->Branch("auto_corr", *m_auto_corr, "auto_corr[5][64][48][2][36]/F");
287
288 // Fill with current values (i.e. tree will have only one entry for this whole run)
289
290 t->Fill();
291 t->Write();
292
293 fout->Close();
294
295 return StatusCode::SUCCESS;
296}
void finalDigits()
finalDigits is called during finalize Here the average Ped, m_lfn, m_hfn and covariance are calculate...
static TFile * fout
Definition listroot.cxx:40

◆ FirstEvt_initialize()

StatusCode TileDigiNoiseCalibAlg::FirstEvt_initialize ( )
private

Initialization done at the first event.

All the helpers and data dependent variables are initialized here

Definition at line 132 of file TileDigiNoiseCalibAlg.cxx.

132 {
133
134 // find TileCablingService
136
137 // retrieve TileID helper from det store
138 CHECK( detStore()->retrieve(m_tileID) );
139
140 CHECK( detStore()->retrieve(m_tileHWID) );
141
142 CHECK( m_adderFilterAlgTool.retrieve() );
143
145 sc &= m_adderFilterAlgTool->setProperty("TileRawChannelContainer", "TileAdderFlat");
146 sc &= m_adderFilterAlgTool->setProperty("calibrateEnergy", "true");
147 sc &= m_adderFilterAlgTool->setProperty("PedStart", "0");
148 sc &= m_adderFilterAlgTool->setProperty("PedLength", "1");
149 sc &= m_adderFilterAlgTool->setProperty("PedOffset", "0");
150 sc &= m_adderFilterAlgTool->setProperty("SignalStart", "1");
151 sc &= m_adderFilterAlgTool->setProperty("SignalLength", "15");
152 sc &= m_adderFilterAlgTool->setProperty("FilterLength", "5");
153 sc &= m_adderFilterAlgTool->setProperty("FrameLength", "16");
154 sc &= m_adderFilterAlgTool->setProperty("DeltaCutLo", "9.5");
155 sc &= m_adderFilterAlgTool->setProperty("DeltaCutHi", "9.5");
156 sc &= m_adderFilterAlgTool->setProperty("RMSCutLo", "1.0");
157 sc &= m_adderFilterAlgTool->setProperty("RMSCutHi", "1.0");
158
159 if (sc.isFailure()) {
160 ATH_MSG_ERROR("Failure setting properties of " << m_adderFilterAlgTool);
161 return StatusCode::FAILURE;
162 }
163
164 m_tileOFCorrelation = new TileOFCorrelation();
165 m_tileOFCorrelation->SetCorrelationZero(msg(), m_nSamples);
166
167 ATH_MSG_INFO( "calibMode " << m_calibMode );
168 ATH_MSG_INFO( "number of samples " << m_nSamples );
169
170 // set event number to 0 before first event
171 m_evtNr = 0;
172
173 if (m_evtNr == 0) {
174 if (m_beamElemContainer.length() > 0) {
175 ServiceHandle<IConversionSvc> cnvSvc("ByteStreamCnvSvc", "");
176 if (cnvSvc.retrieve().isFailure()) {
177 ATH_MSG_ERROR( " Can't get ByteStreamCnvSvc " );
178 m_beamCnv = nullptr;
179 } else {
180 m_beamCnv = dynamic_cast<TileBeamElemContByteStreamCnv *>(cnvSvc->converter(ClassID_traits<TileBeamElemContainer>::ID()));
181 if (m_beamCnv == nullptr) {
182 ATH_MSG_ERROR( " Can't get TileBeamElemContByteStreamCnv " );
183 }
184 }
185
186 } else {
187 m_beamCnv = nullptr;
188 }
189 }
190
191 ATH_MSG_INFO( "initialization completed" );
192 return StatusCode::SUCCESS;
193}
#define CHECK(...)
Evaluate an expression and check for errors.
const ServiceHandle< StoreGateSvc > & detStore() const
static const TileCablingService * getInstance()
get pointer to service instance
ToolHandle< TileRawChannelBuilderFlatFilter > m_adderFilterAlgTool

◆ initialize()

StatusCode TileDigiNoiseCalibAlg::initialize ( )
overridevirtual

Only array initialization is done here All the helpers initialization is done at the first event.

Definition at line 117 of file TileDigiNoiseCalibAlg.cxx.

117 {
118
119 CHECK( m_dqStatusKey.initialize() );
120
121 if (!m_eventInfoKey.key().empty()) {
122 ATH_CHECK( m_eventInfoKey.initialize() );
123 }
124 // TileDigitsContainer initialization
125 ATH_CHECK( m_digitsContainerKey.initialize() );
126
127 return StatusCode::SUCCESS;
128}
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ StoreRunInfo()

void TileDigiNoiseCalibAlg::StoreRunInfo ( const TileDQstatus * dqStatus)
private

StoreRunInfo is called only during the first event.

Definition at line 299 of file TileDigiNoiseCalibAlg.cxx.

299 {
300 if (not dqStatus){
301 m_time = 0;
302 m_year = 0;
303 m_month = 0;
304 m_day = 0;
305 m_yday = 0;
306 m_hour = 0;
307 m_min = 0;
308 m_trigType = 0;
309 ATH_MSG_WARNING( "TileDigiNoiseCalibAlg::StoreRunInfo : dqStatus pointer is null" );
310 return;
311 }
312 if (dqStatus->calibMode() == 1 && m_beamElemContainer.length() > 0) {// Bigain can use cispar
313 if (m_beamCnv) {
314 // std::cout << "LUCA m_time= "<< m_time << " bc_time_seconds= "<< m_beamCnv->eventFragment()->bc_time_seconds() <<
315 // " bc_time_nanoseconds= " << m_beamCnv->eventFragment()->bc_time_nanoseconds() << std::endl;
316 if (m_beamCnv->validBeamFrag()) {
317 m_run = m_beamCnv->robFragment()->rod_run_no(); // take it from beam ROD header
318 } else {
319 m_run = 0;
320 }
321 } else
322 m_run = 0;
323
324 if (m_cispar) {
325 m_time = m_cispar[10]; //time in sc from 1970
326 m_trigType = m_cispar[12];
327 } else {
328 m_time = 0;
329 m_year = 0;
330 m_month = 0;
331 m_day = 0;
332 m_yday = 0;
333 m_hour = 0;
334 m_min = 0;
335 m_trigType = 0;
336 }
337 } else {// monogain can use eventinfo
338
339 SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfoKey);
340 if ( !eventInfo.isValid() ) {
341 ATH_MSG_ERROR( "No EventInfo object found! Can't read run number!" );
342 m_run = 0;
343 m_time = 0;
344 m_trigType = 0;
345 } else {
346 m_run = eventInfo->runNumber();
347 m_time = eventInfo->timeStamp();
348 if (!(eventInfo->eventType(xAOD::EventInfo::IS_CALIBRATION))) // if not calibration, physics
349 m_trigType = 1;
350 else
351 m_trigType = 0;
352 }
353
354 }
355
356 if (m_time != 0) {
357 struct tm t;
358 time_t t_time = m_time;
359 localtime_r(&t_time, &t);
360 m_year = t.tm_year + 1900;
361 m_month = t.tm_mon + 1;
362 m_day = t.tm_mday;
363 m_yday = t.tm_yday + 1;
364 m_hour = t.tm_hour;
365 m_min = t.tm_min;
366 } else {
367 m_year = 0;
368 m_month = 0;
369 m_day = 0;
370 m_yday = 0;
371 m_hour = 0;
372 m_min = 0;
373 }
374}
@ IS_CALIBRATION
true: calibration, false: physics

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_adderFilterAlgTool

ToolHandle<TileRawChannelBuilderFlatFilter> TileDigiNoiseCalibAlg::m_adderFilterAlgTool
private
Initial value:
{this,
"TileAdderFlatFilter","TileRawChannelBuilderFlatFilter/TileAdderFlatFilter","Tile adder flat filter"}

Definition at line 97 of file TileDigiNoiseCalibAlg.h.

97 {this,
98 "TileAdderFlatFilter","TileRawChannelBuilderFlatFilter/TileAdderFlatFilter","Tile adder flat filter"};

◆ m_auto_corr

float(* TileDigiNoiseCalibAlg::m_auto_corr)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NVALS]
private

Definition at line 153 of file TileDigiNoiseCalibAlg.h.

◆ m_beamCnv

TileBeamElemContByteStreamCnv* TileDigiNoiseCalibAlg::m_beamCnv
private

Definition at line 99 of file TileDigiNoiseCalibAlg.h.

◆ m_beamElemContainer

std::string TileDigiNoiseCalibAlg::m_beamElemContainer
private

Definition at line 118 of file TileDigiNoiseCalibAlg.h.

◆ m_cabling

const TileCablingService* TileDigiNoiseCalibAlg::m_cabling
private

Definition at line 100 of file TileDigiNoiseCalibAlg.h.

◆ m_calibMode

bool TileDigiNoiseCalibAlg::m_calibMode
private

Definition at line 77 of file TileDigiNoiseCalibAlg.h.

◆ m_channel

uint8_t(* TileDigiNoiseCalibAlg::m_channel)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 147 of file TileDigiNoiseCalibAlg.h.

◆ m_cispar

const uint32_t* TileDigiNoiseCalibAlg::m_cispar
private

Definition at line 107 of file TileDigiNoiseCalibAlg.h.

◆ m_day

int TileDigiNoiseCalibAlg::m_day
private

Definition at line 139 of file TileDigiNoiseCalibAlg.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_digitsContainer

std::string TileDigiNoiseCalibAlg::m_digitsContainer
private

Definition at line 117 of file TileDigiNoiseCalibAlg.h.

◆ m_digitsContainerKey

SG::ReadHandleKey<TileDigitsContainer> TileDigiNoiseCalibAlg::m_digitsContainerKey
private
Initial value:
{this,
"TileDigitsContainer", "TileDigitsCnt", "Tile digits container"}

Definition at line 91 of file TileDigiNoiseCalibAlg.h.

91 {this,
92 "TileDigitsContainer", "TileDigitsCnt", "Tile digits container"};

◆ m_doAvgCorr

bool TileDigiNoiseCalibAlg::m_doAvgCorr
private

Definition at line 84 of file TileDigiNoiseCalibAlg.h.

◆ m_doRobustCov

bool TileDigiNoiseCalibAlg::m_doRobustCov
private

Definition at line 88 of file TileDigiNoiseCalibAlg.h.

◆ m_dqStatusKey

SG::ReadHandleKey<TileDQstatus> TileDigiNoiseCalibAlg::m_dqStatusKey
private

Definition at line 90 of file TileDigiNoiseCalibAlg.h.

◆ m_drawer

uint8_t(* TileDigiNoiseCalibAlg::m_drawer)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 146 of file TileDigiNoiseCalibAlg.h.

◆ m_dspRawChannelContainer

std::string TileDigiNoiseCalibAlg::m_dspRawChannelContainer
private

Definition at line 122 of file TileDigiNoiseCalibAlg.h.

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> TileDigiNoiseCalibAlg::m_eventInfoKey
private
Initial value:
{this,
"EventInfo", "EventInfo", "EventInfo key"}

Definition at line 93 of file TileDigiNoiseCalibAlg.h.

93 {this,
94 "EventInfo", "EventInfo", "EventInfo key"};

◆ m_evt

int(* TileDigiNoiseCalibAlg::m_evt)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 133 of file TileDigiNoiseCalibAlg.h.

◆ m_evtNr

int TileDigiNoiseCalibAlg::m_evtNr
private

Definition at line 132 of file TileDigiNoiseCalibAlg.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_file

std::string TileDigiNoiseCalibAlg::m_file
private

Definition at line 111 of file TileDigiNoiseCalibAlg.h.

◆ m_gain

bool(* TileDigiNoiseCalibAlg::m_gain)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 148 of file TileDigiNoiseCalibAlg.h.

◆ m_hfn

float(* TileDigiNoiseCalibAlg::m_hfn)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 151 of file TileDigiNoiseCalibAlg.h.

◆ m_hour

int TileDigiNoiseCalibAlg::m_hour
private

Definition at line 141 of file TileDigiNoiseCalibAlg.h.

◆ m_lfn

float(* TileDigiNoiseCalibAlg::m_lfn)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 150 of file TileDigiNoiseCalibAlg.h.

◆ m_meanAmp

double(* TileDigiNoiseCalibAlg::m_meanAmp)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 128 of file TileDigiNoiseCalibAlg.h.

◆ m_meanAmp_ij

double(* TileDigiNoiseCalibAlg::m_meanAmp_ij)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 129 of file TileDigiNoiseCalibAlg.h.

◆ m_min

int TileDigiNoiseCalibAlg::m_min
private

Definition at line 142 of file TileDigiNoiseCalibAlg.h.

◆ m_month

int TileDigiNoiseCalibAlg::m_month
private

Definition at line 138 of file TileDigiNoiseCalibAlg.h.

◆ m_noise_cov

float(* TileDigiNoiseCalibAlg::m_noise_cov)[Tile::MAX_DRAWER][Tile::MAX_GAIN]
private

Definition at line 152 of file TileDigiNoiseCalibAlg.h.

◆ m_nSamples

int TileDigiNoiseCalibAlg::m_nSamples
private

Definition at line 113 of file TileDigiNoiseCalibAlg.h.

◆ m_ntupleID

std::string TileDigiNoiseCalibAlg::m_ntupleID
private

Definition at line 110 of file TileDigiNoiseCalibAlg.h.

◆ m_ped

float(* TileDigiNoiseCalibAlg::m_ped)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 149 of file TileDigiNoiseCalibAlg.h.

◆ m_ros

uint8_t(* TileDigiNoiseCalibAlg::m_ros)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 145 of file TileDigiNoiseCalibAlg.h.

◆ m_run

int TileDigiNoiseCalibAlg::m_run
private

Definition at line 143 of file TileDigiNoiseCalibAlg.h.

◆ m_sumPed2

double(* TileDigiNoiseCalibAlg::m_sumPed2)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 126 of file TileDigiNoiseCalibAlg.h.

◆ m_sumRms2

double(* TileDigiNoiseCalibAlg::m_sumRms2)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
private

Definition at line 127 of file TileDigiNoiseCalibAlg.h.

◆ m_tileHWID

const TileHWID* TileDigiNoiseCalibAlg::m_tileHWID
private

Definition at line 105 of file TileDigiNoiseCalibAlg.h.

◆ m_tileID

const TileID* TileDigiNoiseCalibAlg::m_tileID
private

Definition at line 104 of file TileDigiNoiseCalibAlg.h.

◆ m_tileOFCorrelation

TileOFCorrelation* TileDigiNoiseCalibAlg::m_tileOFCorrelation
private

Definition at line 101 of file TileDigiNoiseCalibAlg.h.

◆ m_time

int TileDigiNoiseCalibAlg::m_time
private

Definition at line 136 of file TileDigiNoiseCalibAlg.h.

◆ m_treeSize

int64_t TileDigiNoiseCalibAlg::m_treeSize
private

Definition at line 112 of file TileDigiNoiseCalibAlg.h.

◆ m_trigType

int TileDigiNoiseCalibAlg::m_trigType
private

Definition at line 144 of file TileDigiNoiseCalibAlg.h.

◆ m_usePMT

bool TileDigiNoiseCalibAlg::m_usePMT
private

Definition at line 80 of file TileDigiNoiseCalibAlg.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_yday

int TileDigiNoiseCalibAlg::m_yday
private

Definition at line 140 of file TileDigiNoiseCalibAlg.h.

◆ m_year

int TileDigiNoiseCalibAlg::m_year
private

Definition at line 137 of file TileDigiNoiseCalibAlg.h.


The documentation for this class was generated from the following files: