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 43 of file TileDigiNoiseCalibAlg.cxx.

44 : AthAlgorithm(name, pSvcLocator)
45 , m_beamCnv(nullptr)
46 , m_cabling(nullptr)
47 , m_tileOFCorrelation(nullptr)
48 , m_tileID(nullptr)
49 , m_tileHWID(nullptr)
50 , m_cispar(nullptr)
51// , m_nDrawers(0)
52 , m_time(0)
53 , m_year(0)
54 , m_month(0)
55 , m_day(0)
56 , m_yday(0)
57 , m_hour(0)
58 , m_min(0)
59 , m_trigType(0)
60{
61 declareProperty("TileBeamElemContainer", m_beamElemContainer = "TileBeamElemCnt");
62 /* declareProperty("TileRawChannelContainerFlat", m_flatRawChannelContainer = "TileRawChannelFlat");
63 declareProperty("TileRawChannelContainerFit", m_fitRawChannelContainer = ""); // don't create
64 declareProperty("TileRawChannelContainerOpt", m_optRawChannelContainer = ""); // by default */
65 declareProperty("TileRawChannelContainerDsp", m_dspRawChannelContainer = "TileRawChannelCnt");
66 declareProperty("CalibMode", m_calibMode = true);
67 declareProperty("usePMT", m_usePMT = false);
68 declareProperty("RunNumber", m_run = 0);
69 declareProperty("FileNamePrefix", m_file = "Digi_NoiseCalib");
70 declareProperty("NtupleID", m_ntupleID = "Digi_NoiseCalib");
71 declareProperty("TreeSize", m_treeSize = 16000000000LL);
72 declareProperty("NSamples", m_nSamples = 7);
73 declareProperty("DoAvgCorr", m_doAvgCorr = false);
74 declareProperty("DoRobustCov", m_doRobustCov = false);
75 declareProperty("TileDQstatus", m_dqStatusKey = "TileDQstatus");
76
77 m_run = 0;
78 m_evtNr = -1;
79
94}
#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 96 of file TileDigiNoiseCalibAlg.cxx.

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

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 195 of file TileDigiNoiseCalibAlg.cxx.

195 {
196
197 const EventContext& ctx = Gaudi::Hive::currentContext();
198 const TileDQstatus * dqStatus = SG::makeHandle (m_dqStatusKey, ctx).get();
199
201 bool empty(false);
202
203 if (m_evtNr < 0) {
204
205 if (FirstEvt_initialize().isFailure()) {
206 ATH_MSG_ERROR( "FirstEvt_initialize failed" );
207 }
208
209 bool calibMode = (dqStatus->calibMode() == 1);
210 if (calibMode != m_calibMode) {
211 ATH_MSG_INFO( "Calib mode from data is " );
212 ATH_MSG_INFO( " Overwriting calib mode " );
213 m_calibMode = calibMode;
214 }
215
216 m_cispar = dqStatus->cispar();
217 StoreRunInfo(dqStatus); // done only once
218 }
219
220 m_cispar = dqStatus->cispar();
221 if (m_evtNr % 1000 == 0)
222 ATH_MSG_WARNING( m_evtNr << " events processed so far" );
223
224 // store TileDigits
225 if (m_nSamples > 0) sc = fillDigits (dqStatus);
226 empty &= (sc.isFailure());
227
228 if (empty) {
229 ATH_MSG_WARNING( "Error in execute " );
230 }
231 ++m_evtNr;
232 return StatusCode::SUCCESS;
233}
#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 378 of file TileDigiNoiseCalibAlg.cxx.

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

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

◆ finalize()

StatusCode TileDigiNoiseCalibAlg::finalize ( )
overridevirtual

The output ntuple is created in finalize method.

Definition at line 236 of file TileDigiNoiseCalibAlg.cxx.

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

131 {
132
133 // find TileCablingService
135
136 // retrieve TileID helper from det store
138
140
141 CHECK( m_adderFilterAlgTool.retrieve() );
142
144 sc &= m_adderFilterAlgTool->setProperty("TileRawChannelContainer", "TileAdderFlat");
145 sc &= m_adderFilterAlgTool->setProperty("calibrateEnergy", "true");
146 sc &= m_adderFilterAlgTool->setProperty("PedStart", "0");
147 sc &= m_adderFilterAlgTool->setProperty("PedLength", "1");
148 sc &= m_adderFilterAlgTool->setProperty("PedOffset", "0");
149 sc &= m_adderFilterAlgTool->setProperty("SignalStart", "1");
150 sc &= m_adderFilterAlgTool->setProperty("SignalLength", "15");
151 sc &= m_adderFilterAlgTool->setProperty("FilterLength", "5");
152 sc &= m_adderFilterAlgTool->setProperty("FrameLength", "16");
153 sc &= m_adderFilterAlgTool->setProperty("DeltaCutLo", "9.5");
154 sc &= m_adderFilterAlgTool->setProperty("DeltaCutHi", "9.5");
155 sc &= m_adderFilterAlgTool->setProperty("RMSCutLo", "1.0");
156 sc &= m_adderFilterAlgTool->setProperty("RMSCutHi", "1.0");
157
158 if (sc.isFailure()) {
159 ATH_MSG_ERROR("Failure setting properties of " << m_adderFilterAlgTool);
160 return StatusCode::FAILURE;
161 }
162
163 m_tileOFCorrelation = new TileOFCorrelation();
164 m_tileOFCorrelation->SetCorrelationZero(msg(), m_nSamples);
165
166 ATH_MSG_INFO( "calibMode " << m_calibMode );
167 ATH_MSG_INFO( "number of samples " << m_nSamples );
168
169 // set event number to 0 before first event
170 m_evtNr = 0;
171
172 if (m_evtNr == 0) {
173 if (m_beamElemContainer.length() > 0) {
174 ServiceHandle<IConversionSvc> cnvSvc("ByteStreamCnvSvc", "");
175 if (cnvSvc.retrieve().isFailure()) {
176 ATH_MSG_ERROR( " Can't get ByteStreamCnvSvc " );
177 m_beamCnv = nullptr;
178 } else {
179 m_beamCnv = dynamic_cast<TileBeamElemContByteStreamCnv *>(cnvSvc->converter(ClassID_traits<TileBeamElemContainer>::ID()));
180 if (m_beamCnv == nullptr) {
181 ATH_MSG_ERROR( " Can't get TileBeamElemContByteStreamCnv " );
182 }
183 }
184
185 } else {
186 m_beamCnv = nullptr;
187 }
188 }
189
190 ATH_MSG_INFO( "initialization completed" );
191 return StatusCode::SUCCESS;
192}
#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
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ initialize()

StatusCode TileDigiNoiseCalibAlg::initialize ( )
overridevirtual

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

Definition at line 116 of file TileDigiNoiseCalibAlg.cxx.

116 {
117
118 CHECK( m_dqStatusKey.initialize() );
119
120 if (!m_eventInfoKey.key().empty()) {
121 ATH_CHECK( m_eventInfoKey.initialize() );
122 }
123 // TileDigitsContainer initialization
124 ATH_CHECK( m_digitsContainerKey.initialize() );
125
126 return StatusCode::SUCCESS;
127}
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 298 of file TileDigiNoiseCalibAlg.cxx.

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