ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
TileInfoLoader Class Reference

#include <TileInfoLoader.h>

Inheritance diagram for TileInfoLoader:
Collaboration diagram for TileInfoLoader:

Public Member Functions

 TileInfoLoader (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~TileInfoLoader ()
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Private Member Functions

StatusCode buildDigitsShapesHiLo (TileInfo &info)
 
StatusCode buildTTL1Shapes (TileInfo &info, const std::string &ShapeFile, int &NBins, int &Time0Bin, int &BinsPerX, std::vector< double > &FullShape, std::vector< double > &Shape)
 
void buildCovMatrix (TileInfo &info)
 
 TileInfoLoader (const TileInfoLoader &)
 
TileInfoLoaderoperator= (const TileInfoLoader &)
 

Private Attributes

Gaudi::Property< std::string > m_tileInfoName
 
ServiceHandle< StoreGateSvcm_detStore
 
TilePulseShapesm_pulsevar
 Pointer to TilePulseShapes object. More...
 
int m_nSamples
 Properties to forward to TileInfo. More...
 
int m_iTrigSample
 
bool m_tileNoise
 
bool m_tileCoherNoise
 
bool m_tileZeroSuppress
 
int m_noiseScaleIndex
 
double m_thresholdRawChannel
 
double m_thresholdDigits
 
double m_ttL1Calib
 
double m_ttL1NoiseSigma
 
double m_ttL1Thresh
 
double m_ttL1Ped
 
double m_ttL1Max
 
double m_MuRcvCalib
 
double m_MuRcvNoiseSigma
 
double m_MuRcvThresh
 
double m_MuRcvPed
 
double m_MuRcvMax
 
double m_muL1Calib
 
double m_muL1NoiseSigma
 
double m_muL1Thresh
 
double m_muL1Ped
 
double m_muL1Max
 
double m_mbtsL1Calib
 
double m_mbtsL1NoiseSigma
 
double m_mbtsL1Thresh
 
double m_mbtsL1Ped
 
double m_mbtsL1Max
 
double m_ttL1CosmicsGain
 
double m_ttL1CosmicsThresh
 
int m_ADCmax
 
int m_ADCmaskValue
 
TileWienerFilterWeightsm_WFWeights
 Pointer to Wiener Filtering weights. More...
 
std::string m_digitsShapeFileHi
 Filenames of input files. More...
 
std::string m_digitsShapeFileLo
 
std::string m_TTL1ShapeFile
 
std::string m_MuRcvShapeFile
 
std::string m_MuL1ShapeFile
 
std::string m_DecoCovaFilePrefix
 
bool m_loadWienerFilterWeights
 
std::string m_calibCntName
 
std::vector< std::string > m_connectedDrawers
 

Friends

class SvcFactory< TileInfoLoader >
 

Detailed Description

Definition at line 53 of file TileInfoLoader.h.

Constructor & Destructor Documentation

◆ TileInfoLoader() [1/2]

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

Definition at line 54 of file TileInfoLoader.cxx.

57  : AthService(name, pSvcLocator)
58  , m_detStore("DetectorStore", name)
61 {
62 
63  //==========================================================
64  //=== expected number of ADC samples in digitization
65  //==========================================================
66  declareProperty("NSamples", m_nSamples=7, "Number of 25ns time slices in TileDigits");
67  declareProperty("TrigSample", m_iTrigSample=3, "sample index of t=0 in TileDigits");
68 
69  //==========================================================
70  //=== Noise and conversion factors used in digitization
71  //==========================================================
72  declareProperty("TileNoise", m_tileNoise=true , "true => add noise to TileDigits and TileRawChannels (used in MC generation)");
73  declareProperty("TileCoherNoise", m_tileCoherNoise=false, "true => add coherent noise to TileDigits and TileRawChannels (used in MC generation)");
74  declareProperty("TileZeroSuppress", m_tileZeroSuppress=false, "true => applies threshold cuts in HitToRC, HitToDigits, RCToCells");
75  declareProperty("NoiseScaleIndex", m_noiseScaleIndex=1, "allowed values 0-3 to choose proper ADC->OF noise scale factor for different OF methods");
76  declareProperty("ThresholdRawChannel", m_thresholdRawChannel=-3.0, "threshold for TileRawChannel [adc] (high gain only, negative -> cut on abs value)");
77  declareProperty("ThresholdDigits", m_thresholdDigits=-2.0, "threshold for TileDigits [adc] (high gain only, negative -> cut on abs value)");
78 
79  // values for TileCal Level1 Trigger Towers
80  declareProperty("TTL1Calib", m_ttL1Calib=4.1, "converts pCb to mV for TTL1");
81  declareProperty("TTL1NoiseSigma", m_ttL1NoiseSigma=2.5, "sigma of noise in TTL1 (mV)");
82  declareProperty("TTL1Thresh", m_ttL1Thresh=5.0, "threshold cut for TTL1 signals (mV)");
83  declareProperty("TTL1Ped", m_ttL1Ped=0.0, "pedestal for TTL1 signals (mV)");
84  declareProperty("TTL1Max", m_ttL1Max=1850.0, "max value for TTL1 signals (mV)");
85 
86  // values for TileCal Muon Receiver Boards (!!! TO UPDATE !!! DUMMY Values) ~1mV = 1 ADC count
87  declareProperty("MuRcvCalib", m_MuRcvCalib = 14.20, "converts pCb to ADC counts for MuRcv");
88  declareProperty("MuRcvNoiseSigma", m_MuRcvNoiseSigma = 2, "sigma of noise in MuRcv (ADC counts)");
89  declareProperty("MuRcvThresh", m_MuRcvThresh = 5, "threshold cut for MuRcv signals (ADC count)");
90  declareProperty("MuRcvPed", m_MuRcvPed = 11.73, "pedestal for MuRcv signals (ADC count)");
91  declareProperty("MuRcvMax", m_MuRcvMax = 255, "max value for MuRcv signals (ADC count)");
92 
93  // values for Level1 Muon output (not used currently)
94  declareProperty("MuL1Calib", m_muL1Calib=204.2, "converts pCb to mV for Mu");
95  declareProperty("MuL1NoiseSigma", m_muL1NoiseSigma=15.6, "sigma of noise in Mu (mV)");
96  declareProperty("MuL1Thresh", m_muL1Thresh=5.0, "threshold cut for Mu signals (mV)");
97  declareProperty("MuL1Ped", m_muL1Ped=0.0, "pedestal for Mu signals (mV)");
98  declareProperty("MuL1Max", m_muL1Max=1850.0, "max value for Mu signals (mV)");
99 
100  // new values for high gain MBTS output connected to normal trigger tower
101  declareProperty("MBTSL1Calib", m_mbtsL1Calib=222.0, "converts pCb to mV for MBTS");
102  declareProperty("MBTSL1NoiseSigma", m_mbtsL1NoiseSigma=0.6, "sigma of noise in MBTS (mV)");
103  declareProperty("MBTSL1Thresh", m_mbtsL1Thresh=5.0, "threshold cut for MBTS signals (mV)");
104  declareProperty("MBTSL1Ped", m_mbtsL1Ped=0.0, "pedestal for MBTS signals (mV)");
105  declareProperty("MBTSL1Max", m_mbtsL1Max=1850.0, "max value for MBTS signals (mV)");
106 
107  // values for custom TileCal cosmic trigger boards
108  declareProperty("TTL1CosmicsGain", m_ttL1CosmicsGain=5.0, "gain of the Cosmics board");
109  declareProperty("TTL1CosmicsThresh", m_ttL1CosmicsThresh=5.0, "threshold in the Cosmics board");
110 
111  //==========================================================
112  //=== Digits pulse shapes
113  //==========================================================
114  declareProperty("DigitsShapeFileHi", m_digitsShapeFileHi = "pulsehi_physics.dat", "Filename for high gain pulse shape");
115  declareProperty("DigitsShapeFileLo", m_digitsShapeFileLo = "pulselo_physics.dat", "Filename for low gain pulse shape");
116  //===Trigger Tower Pulse shapes
117  declareProperty("filename_TTL1ShapeFile" ,m_TTL1ShapeFile = "pulse_adder_tower_physics.dat", "Filename for trigger tower pulse shape");
118  declareProperty("filename_MuRcvShapeFile" ,m_MuRcvShapeFile = "pulse_adder_muonRcv_physics.dat", "Filename for Muon Receiver pulse shape"); // using the sames as for TTL1ShapeFile !!! TO UPDATE !!!
119  declareProperty("filename_MuL1ShapeFile" ,m_MuL1ShapeFile = "pulse_adder_muon_physics.dat", "Filename for muon level1 trigger pulse shape");
120 
121  //==========================================================
122  //=== Reference pulseshapes
123  //==========================================================
124  //===CIS Pulse shapes and derivatives
125  declareProperty("filename_lo_cis" ,m_pulsevar->m_filenameLoCIS = "pulselo_cis_100.dat" ,"Low gain CIS pulseshape 100pF");
126  declareProperty("filename_lo_cis_der" ,m_pulsevar->m_filenameLoCISDer = "dpulselo_cis_100.dat" ,"Low gain CIS pulseshape derivative 100pF");
127  declareProperty("filename_slo_cis" ,m_pulsevar->m_filenameSLoCIS = "pulselo.0230055.12.cap.5.2.dat" ,"Low gain CIS pulseshape 5pF");
128  declareProperty("filename_slo_cis_der" ,m_pulsevar->m_filenameSLoCISDer= "dpulselo.0230055.12.cap.5.2.dat" ,"Low gain CIS pulseshape derivative pF");
129  declareProperty("filename_hi_cis" ,m_pulsevar->m_filenameHiCIS = "pulsehi_cis_100.dat" ,"High gain CIS pulseshape 100pF");
130  declareProperty("filename_hi_cis_der" ,m_pulsevar->m_filenameHiCISDer = "dpulsehi_cis_100.dat" ,"High gain CIS pulseshape derivative 100pF");
131  declareProperty("filename_shi_cis" ,m_pulsevar->m_filenameSHiCIS = "pulsehi.0230055.12.cap.5.2.dat" ,"High gain CIS pulseshape 5pF");
132  declareProperty("filename_shi_cis_der" ,m_pulsevar->m_filenameSHiCISDer= "dpulsehi.0230055.12.cap.5.2.dat" ,"High gain CIS pulseshape derivative 5pF");
133  //===Physics Pulse shapes and derivatives
134  declareProperty("filename_lo_phys" ,m_pulsevar->m_filenameLoPhys = "pulselo_physics.dat" ,"Low gain physics pulseshape");
135  declareProperty("filename_hi_phys" ,m_pulsevar->m_filenameHiPhys = "pulsehi_physics.dat" ,"Low gain physics pulseshape derivative");
136  declareProperty("filename_lo_phys_der",m_pulsevar->m_filenameLoPhysDer = "dpulselo_physics.dat" ,"High gain physics pulseshape");
137  declareProperty("filename_hi_phys_der",m_pulsevar->m_filenameHiPhysDer = "dpulsehi_physics.dat" ,"High gain physics pulseshape derivative");
138  //=== Laser Pulse shapes and derivatives
139  declareProperty("filename_lo_las" ,m_pulsevar->m_filenameLoLas = "pulselo_laser.dat" ,"Low gain laser pulseshape");
140  declareProperty("filename_hi_las" ,m_pulsevar->m_filenameHiLas = "pulsehi_laser.dat" ,"Low gain laser pulseshape derivative");
141  declareProperty("filename_lo_las_der" ,m_pulsevar->m_filenameLoLasDer = "dpulselo_laser.dat" ,"High gain laser pulseshape");
142  declareProperty("filename_hi_las_der" ,m_pulsevar->m_filenameHiLasDer = "dpulsehi_laser.dat" ,"High gain laser pulseshape derivative");
143  //=== CIS Leakage Pulse shapes and derivatives
144  declareProperty("filename_sleaklo" ,m_pulsevar->m_filenameSLeakLo = "leaklo.0230055.12.cap.5.2.dat" ,"Low gain CIS leakage pulse 5pF");
145  declareProperty("filename_leaklo" ,m_pulsevar->m_filenameLeakLo = "leaklo_100.dat" ,"Low gain CIS leakage pulse 100pF");
146  declareProperty("filename_dsleaklo" ,m_pulsevar->m_filenameDSLeakLo = "dsleaklo.0230055.12.cap.5.2.dat","Derivative low gain CIS leakage pulse 5pF");
147  declareProperty("filename_dleaklo" ,m_pulsevar->m_filenameDLeakLo = "dleaklo_100.dat" ,"Derivative low gain CIS leakage pulse 100pF");
148  declareProperty("filename_sleakhi" ,m_pulsevar->m_filenameSLeakHi = "leakhi.0230055.12.cap.5.2.dat" ,"High gain CIS leakage pulse 5pF");
149  declareProperty("filename_leakhi" ,m_pulsevar->m_filenameLeakHi = "leakhi_100.dat" ,"High gain CIS leakage pulse 100pF");
150  declareProperty("filename_dsleakhi" ,m_pulsevar->m_filenameDSLeakHi = "dsleakhi.0230055.12.cap.5.2.dat","Derivative high gain CIS leakage pulse 5pF");
151  declareProperty("filename_dleakhi" ,m_pulsevar->m_filenameDLeakHi = "dleakhi_100.dat" ,"Derivative high gain CIS leakage pulse 100pF");
152  //=== Digitizer noise RMS as a function of channel number
153  declareProperty("filename_orig_noise" ,m_pulsevar->m_filenameOrigNoise = "noise_digi_orig.dat" ,"file with noise rms per channel");
154  declareProperty("filename_nk_noise" ,m_pulsevar->m_filenameNkNoise = "noise_digi_nk.dat" ,"file with noise rms per channel");
155 
156  //==========================================================
157  //=== Covariance matrices for noise simulation
158  //==========================================================
159  declareProperty("filename_DecoCovaFilePrefix" ,m_DecoCovaFilePrefix = "DecoCovaMatrix");
160 
161  //==========================================================
162  //=== Digitization
163  //==========================================================
164  declareProperty("ADCmax" ,m_ADCmax = 1023);
165  declareProperty("ADCmaskValue" ,m_ADCmaskValue = 2047);
166 
167  //==========================================================
168  //=== TileWienerFilterWeights configuration
169  //==========================================================
170  declareProperty("LoadWienerFilterWeights" ,m_loadWienerFilterWeights = false);
171  declareProperty("WienerFilterPhysicsNSamples",m_WFWeights->m_NSamples_Phys = 7);
172  declareProperty("WienerFilterLuminosity" ,m_WFWeights->m_Luminosity = 40);
173 }

◆ ~TileInfoLoader()

TileInfoLoader::~TileInfoLoader ( )
virtual

Definition at line 176 of file TileInfoLoader.cxx.

176  {
177 //*****************************************************************************
178  delete m_pulsevar;
179  delete m_WFWeights;
180 }

◆ TileInfoLoader() [2/2]

TileInfoLoader::TileInfoLoader ( const TileInfoLoader )
private

Member Function Documentation

◆ buildCovMatrix()

void TileInfoLoader::buildCovMatrix ( TileInfo info)
private

Definition at line 633 of file TileInfoLoader.cxx.

634 {
635 // author:F Spano' - beg.
636 // TOUPDATE:: In the future maybe read from a root file
637 // Read in Covariance Matrix for Hi Gain/Lo Gain - Barrel/Ext Barrel
638 // from four external files
639 
640 // Changed by F. Veloso: full coverage of the Tilecal without using
641 // the same correlation matrix for all modules.
642 
643  char partstr[10];
644  char gainstr[10];
645  char buff[1024];
646  std::string line;
647 
648  // Cicle over 4 partitions, 64 modules and 2 gains
649  for (int part = 0; part < 4; ++part) {
650  // Create DecoCovaria[part]
651 // ATH_MSG_DEBUG( "begin DecoCovaria.push_back" );
652  info.m_decoCovaria.push_back(std::vector<std::vector<TMatrixD*> >());
653 // ATH_MSG_DEBUG( "DecoCovaria.push_back done" );
654  for (int modu = 0; modu < 64; ++modu) {
655  // Create DecoCovaria[part][modu]
656 // ATH_MSG_DEBUG( " begin DecoCovaria[part].push_back" );
657  info.m_decoCovaria[part].push_back(std::vector<TMatrixD*>());
658 // ATH_MSG_DEBUG( " DecoCovaria[part].push_back done" );
659 
660  for (int gain = 0; gain < 2; ++gain) {
661 // ATH_MSG_DEBUG( " part=" << part << " modu=" << modu << " gain=" << gain );
662 
663  // Open file which corresponds to DecoCovaria[part][modu][gain]
664  if (part == 0) sprintf(partstr, "EBA");
665  else if (part == 1) sprintf(partstr, "LBA");
666  else if (part == 2) sprintf(partstr, "LBC");
667  else sprintf(partstr, "EBC");
668 
669  if (gain == 0) sprintf(gainstr, "Hi");
670  else sprintf(gainstr, "Lo");
671 
672  sprintf(buff, "%s%s%02d%s.txt", m_DecoCovaFilePrefix.c_str(), partstr, modu + 1, gainstr);
673  std::string file = PathResolver::find_file(buff, "DATAPATH");
674 // ATH_MSG_DEBUG( " buff=" << buff << " file=" << file.c_str() );
675 
676  if (file.empty()) {
677  ATH_MSG_WARNING( "Could not find input file " << buff );
678  } else {
679  ATH_MSG_DEBUG( "Reading file " << file );
680 
681  std::ifstream cov_file(file.c_str());
682 
683  if (!cov_file.is_open()) {
684  ATH_MSG_WARNING( "Can't read input files, setting tileCoherNoise flag to FALSE" );
685 
686  info.m_tileCoherNoise = false;
687  return;
688  } else {
689 
690  ATH_MSG_DEBUG( " **** Start of Decomposed Covariance Matrix Read Out" );
691 
692  if (std::getline(cov_file, line)) {
693  ATH_MSG_DEBUG( "Matrix is being loaded: " << line );
694  }
695 
696  //define Matrix dimension
697  int dima = 0;
698  if (std::getline(cov_file, line)) {
699  if (sscanf(line.c_str(), "%80d", &dima) == 1)
700  ATH_MSG_DEBUG( "The Dimension of the matrix is " << dima );
701  }
702 
703  // define Matrix: at this level we cannot initialize it with a given one
704  TMatrixD* pDecoCova = new TMatrixD(dima, dima);
705 
706  // load tokens to be searched for in a string
707  char* word;
708  char* saveptr;
709  const char* TOKENS = { " \t\n" };
710 
711  // read Matrix
712  int row = 0;
713  while (std::getline(cov_file, line) && row < dima) {
714  ATH_MSG_DEBUG( "line " << row << " is " << line );
715 
716  strncpy(buff, line.c_str(), 1023);
717  for (int column = 0; column < dima; column++) {
718  // Check for comment lines
719  if (*buff == '!' || *buff == '*') continue;
720  //
721  if (column == 0) {
722  word = strtok_r(buff, TOKENS, &saveptr);
723  } else {
724  word = strtok_r(nullptr, TOKENS, &saveptr);
725  }
726  double pippo = (word) ? atof(word) : 0.0;
727  // int nread = sscanf(buff, "%1f", &pippo);
728  ATH_MSG_VERBOSE( "elem " << column << " is " << pippo );
729  (*pDecoCova)(row, column) = pippo;
730  }
731  row++;
732  }
733 
734  cov_file.close();
735  // Fill DecoCovaria[part][modu][gain]
736  info.m_decoCovaria[part][modu].push_back(pDecoCova);
737 
738  }
739  }
740  }
741  }
742  }
743 }

◆ buildDigitsShapesHiLo()

StatusCode TileInfoLoader::buildDigitsShapesHiLo ( TileInfo info)
private

Definition at line 321 of file TileInfoLoader.cxx.

321  {
322 
323  ATH_MSG_DEBUG( "In buildDigitsShapesHiLo" );
324 
325  // Read in Shape profile of digits signal from external file.
326 
327  double It0;
328  double dbuff;
329  std::string line;
330 
331  // Hi gain
332  ATH_MSG_DEBUG( " **** Start of High gain Pulse shapes in TileInfo " );
333 
334  // Find the full path to filename:
335  std::string file_hi = PathResolver::find_file(m_digitsShapeFileHi, "DATAPATH");
336  ATH_MSG_DEBUG( "Reading file " << file_hi );
337 
338  //=== Test if files are there and can be opened
339  if (file_hi.empty()) {
340  ATH_MSG_ERROR( "Could not find input file " << m_digitsShapeFileHi );
341  return StatusCode::FAILURE;
342  }
343 
344  std::ifstream shape_file_hi(file_hi.c_str());
345  if (!shape_file_hi.is_open()) {
346  ATH_MSG_ERROR( "Could not open input file " << file_hi );
347  return StatusCode::FAILURE;
348  }
349 
350  if (std::getline(shape_file_hi, line)) {
351  ATH_MSG_DEBUG( endmsg << line );
352  }
353 
354  if (std::getline(shape_file_hi, line)) {
355  if (sscanf(line.c_str(), "%80d", &info.m_digitsNBinsHi) == 1)
356  ATH_MSG_DEBUG( std::setw(3) << info.m_digitsNBinsHi << " number of bins in shaping function" );
357  }
358 
359  if (std::getline(shape_file_hi, line)) {
360  if (sscanf(line.c_str(), "%80d", &info.m_digitsTime0BinHi) == 1)
361  ATH_MSG_DEBUG( std::setw(3) << info.m_digitsTime0BinHi << " index of in-time bin" );
362  }
363 
364  if (std::getline(shape_file_hi, line)) {
365  if (sscanf(line.c_str(), "%80d", &info.m_digitsBinsPerXHi) == 1)
366  ATH_MSG_DEBUG( std::setw(3) << info.m_digitsBinsPerXHi << " bins per beam crossing" );
367  }
368 
369  // Read in the Hi gain shape vector.
370  info.m_digitsFullShapeHi.resize(info.m_digitsNBinsHi, 0.);
371  size_t jt = 0;
372  while (std::getline(shape_file_hi, line) && jt < info.m_digitsFullShapeHi.size()) {
373  int nread = sscanf(line.c_str(), "%80lf %80lf", &It0, &dbuff);
374  if (nread > 1) info.m_digitsFullShapeHi[jt++] = dbuff;
375  ATH_MSG_VERBOSE( "t= " << It0 << " a= " << dbuff );
376  }
377 
378  shape_file_hi.close();
379 
380  // Lo gain
381  ATH_MSG_DEBUG( " **** Start of Low gain Pulse shapes in TileInfo " );
382 
383  // Find the full path to filename:
384  std::string file_lo = PathResolver::find_file(m_digitsShapeFileLo, "DATAPATH");
385  ATH_MSG_DEBUG( "Reading file " << file_lo );
386 
387  //=== Test if files are there and can be opened
388  if (file_lo.empty()) {
389  ATH_MSG_ERROR( "Could not find input file " << m_digitsShapeFileLo );
390  return StatusCode::FAILURE;
391  }
392 
393  std::ifstream shape_file_lo(file_lo.c_str());
394  if (!shape_file_lo.is_open()) {
395  ATH_MSG_ERROR( "Could not open input file " << file_lo );
396  return StatusCode::FAILURE;
397  }
398 
399  if (std::getline(shape_file_lo, line)) {
400  ATH_MSG_DEBUG( endmsg << line );
401  }
402 
403  if (std::getline(shape_file_lo, line)) {
404  if (sscanf(line.c_str(), "%80d", &info.m_digitsNBinsLo) == 1)
405  ATH_MSG_DEBUG( std::setw(3) << info.m_digitsNBinsLo << " number of bins in shaping function" );
406  }
407 
408  if (std::getline(shape_file_lo, line)) {
409  if (sscanf(line.c_str(), "%80d", &info.m_digitsTime0BinLo) == 1)
410  ATH_MSG_DEBUG( std::setw(3) << info.m_digitsTime0BinLo << " index of in-time bin" );
411  }
412 
413  if (std::getline(shape_file_lo, line)) {
414  if (sscanf(line.c_str(), "%80d", &info.m_digitsBinsPerXLo) == 1)
415  ATH_MSG_DEBUG( std::setw(3) << info.m_digitsBinsPerXLo << " bins per beam crossing" );
416  }
417 
418  // Read in the Lo gain shape vector.
419  info.m_digitsFullShapeLo.resize(info.m_digitsNBinsLo, 0.);
420  jt = 0;
421  while (std::getline(shape_file_lo, line) && jt < info.m_digitsFullShapeLo.size()) {
422  int nread = sscanf(line.c_str(), "%80lf %80lf", &It0, &dbuff);
423  if (nread > 1) info.m_digitsFullShapeLo[jt++] = dbuff;
424  ATH_MSG_VERBOSE( "t= " << It0 << " a= " << dbuff );
425  }
426 
427  shape_file_lo.close();
428 
429  //find the greatest value in digitsFullShape (should equal info.m_digitsTime0Bin)
430  int it0_hi = 0;
431  int it0_lo = 0;
432  double peak_hi = 0;
433  double peak_lo = 0;
434  for (int i = 0; i < info.m_digitsNBinsHi; i++) {
435  if (info.m_digitsFullShapeHi[i] > peak_hi) {
436  peak_hi = info.m_digitsFullShapeHi[i];
437  it0_hi = i;
438  }
439  }
440 
441  for (int i = 0; i < info.m_digitsNBinsLo; i++) {
442  if (info.m_digitsFullShapeLo[i] > peak_lo) {
443  peak_lo = info.m_digitsFullShapeLo[i];
444  it0_lo = i;
445  }
446  }
447 
448  if (msgLvl(MSG::DEBUG)) {
449  msg(MSG::DEBUG) << " High Gain: Peak value = " << peak_hi
450  << " at bin = " << it0_hi
451  << ", info.m_digitsTime0BinHi = " << info.m_digitsTime0BinHi << endmsg;
452 
453  msg(MSG::DEBUG) << " Low Gain: Peak value = " << peak_lo
454  << " at bin = " << it0_lo
455  << ", info.m_digitsTime0BinLow = " << info.m_digitsTime0BinLo << endmsg;
456  }
457 
458  // Create vector of time profiles at beam crossings.
459  info.m_digitsShapeHi.resize(info.m_nSamples, 0.);
460  info.m_digitsShapeLo.resize(info.m_nSamples, 0.);
461 // ATH_MSG_DEBUG( " Pasa el resize y va a entrar en el lopp" );
462 
463  for (int i = 0; i < info.m_nSamples; i++) {
464  int j = info.m_digitsTime0BinHi + (i - info.m_iTrigSample) * info.m_digitsBinsPerXHi;
465  if (j < 0) j = 0;
466  if (j > info.m_digitsNBinsHi) j = info.m_digitsNBinsHi;
467  info.m_digitsShapeHi[i] = info.m_digitsFullShapeHi[j];
468  int k = info.m_digitsTime0BinLo + (i - info.m_iTrigSample) * info.m_digitsBinsPerXLo;
469  if (k < 0) k = 0;
470  if (k > info.m_digitsNBinsLo) k = info.m_digitsNBinsLo;
471  info.m_digitsShapeLo[i] = info.m_digitsFullShapeLo[k];
472  }
473 
474  if (msgLvl(MSG::DEBUG)) {
475  msg(MSG::DEBUG) << " Shaping profile at beam crossings: "
476  << " Number of samples = " << info.m_nSamples
477  << ", Sample at Time 0 = " << info.m_iTrigSample << endmsg;
478 
479  msg(MSG::DEBUG) << " High gain Shape factor = ";
480  for (int i = 0; i < info.m_nSamples; i++) {
481  msg(MSG::DEBUG) << std::setiosflags(std::ios::fixed)
482  << std::setiosflags(std::ios::showpoint) << std::setw(9) << std::setprecision(5)
483  << info.m_digitsShapeHi[i];
484  }
485 
486  msg(MSG::DEBUG) << endmsg;
487 
488  msg(MSG::DEBUG) << " Low gain Shape factor = ";
489  for (int i = 0; i < info.m_nSamples; i++) {
490  msg(MSG::DEBUG) << std::setiosflags(std::ios::fixed)
491  << std::setiosflags(std::ios::showpoint) << std::setw(9) << std::setprecision(5)
492  << info.m_digitsShapeLo[i];
493  }
494  msg(MSG::DEBUG) << endmsg;
495 
496  }
497 
498  // Create vector of derivatives from shaping vector.
499  info.m_digitsDerivativeHi.resize(info.m_digitsNBinsHi, 0.);
500  info.m_digitsDerivativeLo.resize(info.m_digitsNBinsLo, 0.);
501  for (int i = 1; i < info.m_digitsNBinsHi - 1; i++) {
502  info.m_digitsDerivativeHi[i] = (info.m_digitsFullShapeHi[i + 1]
503  - info.m_digitsFullShapeHi[i - 1]) / 2;
504  }
505 
506  for (int i = 1; i < info.m_digitsNBinsLo - 1; i++) {
507  info.m_digitsDerivativeLo[i] = (info.m_digitsFullShapeLo[i + 1]
508  - info.m_digitsFullShapeLo[i - 1]) / 2;
509  }
510 
511  return StatusCode::SUCCESS;
512 }

◆ buildTTL1Shapes()

StatusCode TileInfoLoader::buildTTL1Shapes ( TileInfo info,
const std::string &  ShapeFile,
int &  NBins,
int &  Time0Bin,
int &  BinsPerX,
std::vector< double > &  FullShape,
std::vector< double > &  Shape 
)
private

Definition at line 515 of file TileInfoLoader.cxx.

518  {
519 
520  // Read in Shape profile of signal from external file.
521  ATH_MSG_DEBUG( " **** Start of TTL1 shapes in TileInfo " );
522 
523  // Find the full path to filename:
524  std::string file = PathResolver::find_file(ShapeFile, "DATAPATH");
525  ATH_MSG_DEBUG( "Reading file " << file );
526 
527  if (file.empty()) {
528  ATH_MSG_ERROR( "Could not find input file " << ShapeFile );
529  return StatusCode::FAILURE;
530  }
531 
532  std::ifstream shape_file(file.c_str());
533  if (!shape_file.is_open()) {
534  ATH_MSG_ERROR( "Could not open input file " << file );
535  return StatusCode::FAILURE;
536  }
537 
538  double It0;
539  double dbuff;
540  std::string line;
541 
542  if (std::getline(shape_file, line)) {
544 
545  }
546 
547  if (std::getline(shape_file, line)) {
548  if (sscanf(line.c_str(), "%80d", &NBins) == 1)
549  ATH_MSG_DEBUG( std::setw(3) << NBins << " number of bins in shaping function" );
550  }
551 
552  if (std::getline(shape_file, line)) {
553  if (sscanf(line.c_str(), "%80d", &Time0Bin) == 1)
554  ATH_MSG_DEBUG( std::setw(3) << Time0Bin << " index of in-time bin" );
555  }
556 
557  if (std::getline(shape_file, line)) {
558  if (sscanf(line.c_str(), "%80d", &BinsPerX) == 1)
559  ATH_MSG_DEBUG( BinsPerX << " bins per beam crossing" );
560  }
561 
562  // Read in the ttl1shape vector.
563  FullShape.resize(NBins, 0.);
564  size_t jt = 0;
565  while (std::getline(shape_file, line) && jt < FullShape.size()) {
566  int nread = sscanf(line.c_str(), "%80lf %80lf", &It0, &dbuff);
567  if (nread > 1) FullShape[jt++] = dbuff;
568  ATH_MSG_VERBOSE( "t= " << It0 << " a= " << dbuff );
569  }
570 
571  shape_file.close();
572 
573  // Print out ttl1shape values.
574  int nline = (NBins - 1) / 8 + 1;
575  if (msgLvl(MSG::DEBUG)) {
576  for (int jline = 0; jline < nline; jline++) {
577  int j1 = 8 * jline;
578  int j2 = j1 + 8;
579  if (j2 > NBins) j2 = NBins;
580  msg(MSG::DEBUG) << " " << std::setw(3) << j1 << " ";
581 
582  for (int i = j1; i < j2; i++) {
583  msg(MSG::DEBUG) << std::setiosflags(std::ios::fixed)
584  << std::setiosflags(std::ios::showpoint) << std::setw(9) << std::setprecision(5)
585  << FullShape[i];
586  }
587  msg(MSG::DEBUG) << endmsg;
588  }
589  }
590 
591  //find the greatest value in ttl1shape (should equal Time0Bin)
592  int it0 = 0;
593  double peak = 0;
594  for (int i = 0; i < NBins; i++) {
595  if (FullShape[i] > peak) {
596  peak = FullShape[i];
597  it0 = i;
598  }
599  }
600 
601  ATH_MSG_DEBUG( " Peak value = " << peak
602  << " at bin = " << it0
603  << ", Time0Bin = " << Time0Bin );
604 
605 
606  // Create vector of time profiles at beam crossings.
607  Shape.resize(info.m_nSamples, 0.);
608  for (int i = 0; i < info.m_nSamples; i++) {
609  int j = Time0Bin + (i - info.m_iTrigSample) * BinsPerX;
610  if (j < 0) j = 0;
611  if (j > NBins) j = NBins;
612  Shape[i] = FullShape[j];
613  }
614 
615  if (msgLvl(MSG::DEBUG)) {
616  msg(MSG::DEBUG) << " TileInfo: profile at beam crossings: "
617  << " Number of samples = " << info.m_nSamples
618  << ", Sample at Time 0 = " << info.m_iTrigSample << endmsg;
619 
620  msg(MSG::DEBUG) << " Shape factor = ";
621  for (int i = 0; i < info.m_nSamples; i++) {
622  msg(MSG::DEBUG) << std::setiosflags(std::ios::fixed)
623  << std::setiosflags(std::ios::showpoint) << std::setw(9) << std::setprecision(5)
624  << Shape[i];
625  }
626  msg(MSG::DEBUG) << endmsg;
627  }
628 
629  return StatusCode::SUCCESS;
630 }

◆ finalize()

StatusCode TileInfoLoader::finalize ( )
overridevirtual

Definition at line 310 of file TileInfoLoader.cxx.

310  {
311 //****************************************************************************
312 
313  ATH_MSG_DEBUG( "TileInfoLoader::finalize()" );
314 
315  return Service::finalize();
316 }

◆ initialize()

StatusCode TileInfoLoader::initialize ( )
overridevirtual

Definition at line 183 of file TileInfoLoader.cxx.

183  {
184 //*****************************************************************************
185 
186  ATH_MSG_DEBUG( "Initializing...." << name() );
187 
188  auto info = std::make_unique<TileInfo>();
189 
190  // Forward properties.
191  info->m_nSamples = m_nSamples;
192  info->m_iTrigSample = m_iTrigSample;
193  info->m_tileNoise = m_tileNoise;
194  info->m_tileCoherNoise = m_tileCoherNoise;
195  info->m_tileZeroSuppress = m_tileZeroSuppress;
196  info->m_noiseScaleIndex = m_noiseScaleIndex;
197  info->m_thresholdRawChannel = m_thresholdRawChannel;
198  info->m_thresholdDigits = m_thresholdDigits;
199  info->m_ttL1Calib = m_ttL1Calib;
200  info->m_ttL1NoiseSigma = m_ttL1NoiseSigma;
201  info->m_ttL1Thresh = m_ttL1Thresh;
202  info->m_ttL1Ped = m_ttL1Ped;
203  info->m_ttL1Max = m_ttL1Max;
204  info->m_MuRcvCalib = m_MuRcvCalib;
205  info->m_MuRcvNoiseSigma = m_MuRcvNoiseSigma;
206  info->m_MuRcvThresh = m_MuRcvThresh;
207  info->m_MuRcvPed = m_MuRcvPed;
208  info->m_MuRcvMax = m_MuRcvMax;
209  info->m_muL1Calib = m_muL1Calib;
210  info->m_muL1NoiseSigma = m_muL1NoiseSigma;
211  info->m_muL1Thresh = m_muL1Thresh;
212  info->m_muL1Ped = m_muL1Ped;
213  info->m_muL1Max = m_muL1Max;
214  info->m_mbtsL1Calib = m_mbtsL1Calib;
215  info->m_mbtsL1NoiseSigma = m_mbtsL1NoiseSigma;
216  info->m_mbtsL1Thresh = m_mbtsL1Thresh;
217  info->m_mbtsL1Ped = m_mbtsL1Ped;
218  info->m_mbtsL1Max = m_mbtsL1Max;
219  info->m_ttL1CosmicsGain = m_ttL1CosmicsGain;
220  info->m_ttL1CosmicsThresh = m_ttL1CosmicsThresh;
221  info->m_ADCmax = m_ADCmax;
222  info->m_ADCmaskValue = m_ADCmaskValue;
223 
224  m_WFWeights->m_NSamples_Phys = info->m_nSamples; // to make sure that everything is consistent
225 
226  //=== Find the detector store service.
227  CHECK( m_detStore.retrieve() );
228 
229  const IGeoModelSvc *geoModel=nullptr;
230 
231  if(service("GeoModelSvc", geoModel).isFailure()) {
232  ATH_MSG_ERROR( "Could not locate GeoModelSvc" );
233  } else {
234  // check the DetDescr version
235  std::string atlasVersion = geoModel->atlasVersion();
236  int geo = atlasVersion.compare(0,9,"ATLAS-GEO");
237  int run1 = atlasVersion.compare(0,8,"ATLAS-R1");
238  int ibl = atlasVersion.compare(0,9,"ATLAS-IBL");
239  int run2 = atlasVersion.compare(0,8,"ATLAS-R2");
240  int comm = atlasVersion.compare(0,10,"ATLAS-Comm");
241  int upg = atlasVersion.compare(0,7,"ATLAS-P") ;
242  int ver = 0;
243  const auto comparisons={geo, run1, ibl, run2, comm, upg};
244  bool nothing_found = std::none_of(comparisons.begin(), comparisons.end(), [](int zeroMeansFound){return zeroMeansFound==0;});
245  GeoModel::GeoConfig geoConfig = geoModel->geoConfig();
246  bool RUN2 = (nothing_found && (geoConfig==GeoModel::GEO_RUN2
247  || geoConfig==GeoModel::GEO_RUN3
248  || geoConfig==GeoModel::GEO_RUN4
249  )) || (run2 == 0); // calibration for all geometries >=RUN2 are the same as in RUN2
250 
251  if (geo == 0 || comm == 0 || ibl == 0 || run1 == 0 || run2 == 0 || upg == 0 || RUN2) {
252  int pos = (atlasVersion.substr(9)).find('-');
253  if(run1 == 0 || run2 == 0) pos = (atlasVersion.substr(13)).find('-') + 4;
254  std::string geoVersion = atlasVersion.substr(pos+10,2)
255  + atlasVersion.substr(pos+13,2)
256  + atlasVersion.substr(pos+16,2);
257  ver = atoi(geoVersion.c_str());
258  ATH_MSG_DEBUG( "New ATLAS geometry detected: " << atlasVersion << " (" << geoVersion << ")" << " version " << ver );
259 
260  if (fabs(info->m_ttL1Calib - 4.1) < 0.001) {
261  // They are TTL1Calib = 4.1 and TTL1NoiseSigma = 2.5 but should be 6.9 and 2.8 respectively.
262 
263  msg(MSG::INFO) << "Changing TTL1 calib from " << info->m_ttL1Calib;
264  info->m_ttL1Calib = 6.9;
265  msg(MSG::INFO) << " to " << info->m_ttL1Calib << endmsg;
266 
267  msg(MSG::INFO) << "Changing TTL1 noise sigma from " << info->m_ttL1NoiseSigma;
268  info->m_ttL1NoiseSigma = 2.8;
269  msg(MSG::INFO) << " to " << info->m_ttL1NoiseSigma << endmsg;
270  }
271  } else {
272  ATH_MSG_DEBUG( "ATLAS geometry " << atlasVersion << " version " << ver );
273  }
274 
275  }
276 
277  //=== Read in Shape profile of digits & TTL1
279 
280  CHECK( buildTTL1Shapes(*info, m_TTL1ShapeFile, info->m_TTL1NBins, info->m_TTL1Time0Bin
281  , info->m_TTL1BinsPerX, info->m_TTL1FullShape, info->m_TTL1Shape) );
282 
283 
284  CHECK( buildTTL1Shapes(*info, m_MuRcvShapeFile, info->m_MuRcvNBins, info->m_MuRcvTime0Bin
285  , info->m_MuRcvBinsPerX, info->m_MuRcvFullShape, info->m_MuRcvShape) );
286 
287  CHECK( buildTTL1Shapes(*info, m_MuL1ShapeFile, info->m_MuL1NBins, info->m_MuL1Time0Bin
288  , info->m_MuL1BinsPerX, info->m_MuL1FullShape, info->m_MuL1Shape) );
289 
290  //=== Read in coherent noise if required
291  if (info->TileCoherNoise()) buildCovMatrix (*info);
292 
293  // put pointer to new TilePulseShapes in TileInfo
294  // only if we want to use them (i.e. when we also read all calib files)
295  info->m_pulseShapes = m_pulsevar;
296 
297  // point to WienerFilterWeights
298  if (m_loadWienerFilterWeights) info->m_WienerFilterWeights=m_WFWeights;
299 
300  //=== Initialize and register TileInfo object
301  CHECK( info->initialize() );
302 
303  CHECK( m_detStore->record(std::move(info), m_tileInfoName, false ) );
304  ATH_MSG_DEBUG( "Placed TileInfo object [" << m_tileInfoName << "] in the detector store." );
305 
306  return StatusCode::SUCCESS;
307 }

◆ interfaceID()

static const InterfaceID& TileInfoLoader::interfaceID ( )
inlinestatic

Definition at line 64 of file TileInfoLoader.h.

64 { return IID_TileInfoLoader; }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Service >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ operator=()

TileInfoLoader& TileInfoLoader::operator= ( const TileInfoLoader )
private

Friends And Related Function Documentation

◆ SvcFactory< TileInfoLoader >

friend class SvcFactory< TileInfoLoader >
friend

Definition at line 51 of file TileInfoLoader.h.

Member Data Documentation

◆ m_ADCmaskValue

int TileInfoLoader::m_ADCmaskValue
private

Definition at line 116 of file TileInfoLoader.h.

◆ m_ADCmax

int TileInfoLoader::m_ADCmax
private

Definition at line 115 of file TileInfoLoader.h.

◆ m_calibCntName

std::string TileInfoLoader::m_calibCntName
private

Definition at line 134 of file TileInfoLoader.h.

◆ m_connectedDrawers

std::vector<std::string> TileInfoLoader::m_connectedDrawers
private

Definition at line 136 of file TileInfoLoader.h.

◆ m_DecoCovaFilePrefix

std::string TileInfoLoader::m_DecoCovaFilePrefix
private

Definition at line 129 of file TileInfoLoader.h.

◆ m_detStore

ServiceHandle<StoreGateSvc> TileInfoLoader::m_detStore
private

Definition at line 79 of file TileInfoLoader.h.

◆ m_digitsShapeFileHi

std::string TileInfoLoader::m_digitsShapeFileHi
private

Filenames of input files.

Definition at line 124 of file TileInfoLoader.h.

◆ m_digitsShapeFileLo

std::string TileInfoLoader::m_digitsShapeFileLo
private

Definition at line 125 of file TileInfoLoader.h.

◆ m_iTrigSample

int TileInfoLoader::m_iTrigSample
private

Definition at line 86 of file TileInfoLoader.h.

◆ m_loadWienerFilterWeights

bool TileInfoLoader::m_loadWienerFilterWeights
private

Definition at line 131 of file TileInfoLoader.h.

◆ m_mbtsL1Calib

double TileInfoLoader::m_mbtsL1Calib
private

Definition at line 108 of file TileInfoLoader.h.

◆ m_mbtsL1Max

double TileInfoLoader::m_mbtsL1Max
private

Definition at line 112 of file TileInfoLoader.h.

◆ m_mbtsL1NoiseSigma

double TileInfoLoader::m_mbtsL1NoiseSigma
private

Definition at line 109 of file TileInfoLoader.h.

◆ m_mbtsL1Ped

double TileInfoLoader::m_mbtsL1Ped
private

Definition at line 111 of file TileInfoLoader.h.

◆ m_mbtsL1Thresh

double TileInfoLoader::m_mbtsL1Thresh
private

Definition at line 110 of file TileInfoLoader.h.

◆ m_muL1Calib

double TileInfoLoader::m_muL1Calib
private

Definition at line 103 of file TileInfoLoader.h.

◆ m_muL1Max

double TileInfoLoader::m_muL1Max
private

Definition at line 107 of file TileInfoLoader.h.

◆ m_muL1NoiseSigma

double TileInfoLoader::m_muL1NoiseSigma
private

Definition at line 104 of file TileInfoLoader.h.

◆ m_muL1Ped

double TileInfoLoader::m_muL1Ped
private

Definition at line 106 of file TileInfoLoader.h.

◆ m_MuL1ShapeFile

std::string TileInfoLoader::m_MuL1ShapeFile
private

Definition at line 128 of file TileInfoLoader.h.

◆ m_muL1Thresh

double TileInfoLoader::m_muL1Thresh
private

Definition at line 105 of file TileInfoLoader.h.

◆ m_MuRcvCalib

double TileInfoLoader::m_MuRcvCalib
private

Definition at line 98 of file TileInfoLoader.h.

◆ m_MuRcvMax

double TileInfoLoader::m_MuRcvMax
private

Definition at line 102 of file TileInfoLoader.h.

◆ m_MuRcvNoiseSigma

double TileInfoLoader::m_MuRcvNoiseSigma
private

Definition at line 99 of file TileInfoLoader.h.

◆ m_MuRcvPed

double TileInfoLoader::m_MuRcvPed
private

Definition at line 101 of file TileInfoLoader.h.

◆ m_MuRcvShapeFile

std::string TileInfoLoader::m_MuRcvShapeFile
private

Definition at line 127 of file TileInfoLoader.h.

◆ m_MuRcvThresh

double TileInfoLoader::m_MuRcvThresh
private

Definition at line 100 of file TileInfoLoader.h.

◆ m_noiseScaleIndex

int TileInfoLoader::m_noiseScaleIndex
private

Definition at line 90 of file TileInfoLoader.h.

◆ m_nSamples

int TileInfoLoader::m_nSamples
private

Properties to forward to TileInfo.

Definition at line 85 of file TileInfoLoader.h.

◆ m_pulsevar

TilePulseShapes* TileInfoLoader::m_pulsevar
private

Pointer to TilePulseShapes object.

Definition at line 82 of file TileInfoLoader.h.

◆ m_thresholdDigits

double TileInfoLoader::m_thresholdDigits
private

Definition at line 92 of file TileInfoLoader.h.

◆ m_thresholdRawChannel

double TileInfoLoader::m_thresholdRawChannel
private

Definition at line 91 of file TileInfoLoader.h.

◆ m_tileCoherNoise

bool TileInfoLoader::m_tileCoherNoise
private

Definition at line 88 of file TileInfoLoader.h.

◆ m_tileInfoName

Gaudi::Property<std::string> TileInfoLoader::m_tileInfoName
private
Initial value:
{this,
"TileInfo", "TileInfo", "Name of TileInfo object in Detector Store"}

Definition at line 75 of file TileInfoLoader.h.

◆ m_tileNoise

bool TileInfoLoader::m_tileNoise
private

Definition at line 87 of file TileInfoLoader.h.

◆ m_tileZeroSuppress

bool TileInfoLoader::m_tileZeroSuppress
private

Definition at line 89 of file TileInfoLoader.h.

◆ m_ttL1Calib

double TileInfoLoader::m_ttL1Calib
private

Definition at line 93 of file TileInfoLoader.h.

◆ m_ttL1CosmicsGain

double TileInfoLoader::m_ttL1CosmicsGain
private

Definition at line 113 of file TileInfoLoader.h.

◆ m_ttL1CosmicsThresh

double TileInfoLoader::m_ttL1CosmicsThresh
private

Definition at line 114 of file TileInfoLoader.h.

◆ m_ttL1Max

double TileInfoLoader::m_ttL1Max
private

Definition at line 97 of file TileInfoLoader.h.

◆ m_ttL1NoiseSigma

double TileInfoLoader::m_ttL1NoiseSigma
private

Definition at line 94 of file TileInfoLoader.h.

◆ m_ttL1Ped

double TileInfoLoader::m_ttL1Ped
private

Definition at line 96 of file TileInfoLoader.h.

◆ m_TTL1ShapeFile

std::string TileInfoLoader::m_TTL1ShapeFile
private

Definition at line 126 of file TileInfoLoader.h.

◆ m_ttL1Thresh

double TileInfoLoader::m_ttL1Thresh
private

Definition at line 95 of file TileInfoLoader.h.

◆ m_WFWeights

TileWienerFilterWeights* TileInfoLoader::m_WFWeights
private

Pointer to Wiener Filtering weights.

Definition at line 121 of file TileInfoLoader.h.


The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
AthService::AthService
AthService()
TileInfoLoader::m_mbtsL1Max
double m_mbtsL1Max
Definition: TileInfoLoader.h:112
query_example.row
row
Definition: query_example.py:24
get_hdefs.buff
buff
Definition: get_hdefs.py:64
TilePulseShapes::m_filenameHiPhysDer
std::string m_filenameHiPhysDer
Definition: TilePulseShapes.h:160
TileInfoLoader::m_TTL1ShapeFile
std::string m_TTL1ShapeFile
Definition: TileInfoLoader.h:126
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
TileInfoLoader::m_MuRcvShapeFile
std::string m_MuRcvShapeFile
Definition: TileInfoLoader.h:127
checkFileSG.line
line
Definition: checkFileSG.py:75
TileInfoLoader::m_mbtsL1Thresh
double m_mbtsL1Thresh
Definition: TileInfoLoader.h:110
TileInfoLoader::m_mbtsL1NoiseSigma
double m_mbtsL1NoiseSigma
Definition: TileInfoLoader.h:109
TileInfoLoader::m_tileZeroSuppress
bool m_tileZeroSuppress
Definition: TileInfoLoader.h:89
TilePulseShapes::m_filenameLoLas
std::string m_filenameLoLas
Definition: TilePulseShapes.h:163
TilePulseShapes::m_filenameLoCISDer
std::string m_filenameLoCISDer
Definition: TilePulseShapes.h:138
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
PathResolver::find_file
static std::string find_file(const std::string &logical_file_name, const std::string &search_path, SearchType search_type=LocalSearch)
Definition: PathResolver.cxx:251
IGeoModelSvc
Definition: IGeoModelSvc.h:17
TileInfoLoader::m_tileCoherNoise
bool m_tileCoherNoise
Definition: TileInfoLoader.h:88
TileInfoLoader::m_loadWienerFilterWeights
bool m_loadWienerFilterWeights
Definition: TileInfoLoader.h:131
TilePulseShapes::m_filenameDLeakLo
std::string m_filenameDLeakLo
Definition: TilePulseShapes.h:150
GeoModel::GeoConfig
GeoConfig
Definition: IGeoDbTagSvc.h:17
TilePulseShapes::m_filenameLoPhys
std::string m_filenameLoPhys
Definition: TilePulseShapes.h:157
TilePulseShapes::m_filenameHiLas
std::string m_filenameHiLas
Definition: TilePulseShapes.h:164
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
TileInfoLoader::m_tileInfoName
Gaudi::Property< std::string > m_tileInfoName
Definition: TileInfoLoader.h:75
DeMoUpdate.column
dictionary column
Definition: DeMoUpdate.py:1110
TileInfoLoader::m_muL1NoiseSigma
double m_muL1NoiseSigma
Definition: TileInfoLoader.h:104
AthCommonMsg< Service >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
TileInfoLoader::m_iTrigSample
int m_iTrigSample
Definition: TileInfoLoader.h:86
TileInfoLoader::m_tileNoise
bool m_tileNoise
Definition: TileInfoLoader.h:87
TilePulseShapes::m_filenameHiCISDer
std::string m_filenameHiCISDer
Definition: TilePulseShapes.h:142
TileInfoLoader::m_ADCmax
int m_ADCmax
Definition: TileInfoLoader.h:115
TileInfoLoader::m_ttL1Thresh
double m_ttL1Thresh
Definition: TileInfoLoader.h:95
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
TileInfoLoader::m_digitsShapeFileLo
std::string m_digitsShapeFileLo
Definition: TileInfoLoader.h:125
TileInfoLoader::m_ADCmaskValue
int m_ADCmaskValue
Definition: TileInfoLoader.h:116
TileInfoLoader::m_nSamples
int m_nSamples
Properties to forward to TileInfo.
Definition: TileInfoLoader.h:85
TilePulseShapes::m_filenameSHiCISDer
std::string m_filenameSHiCISDer
Definition: TilePulseShapes.h:144
LArNewCalib_Delay_OFC_Cali.partstr
partstr
Definition: LArNewCalib_Delay_OFC_Cali.py:54
TileInfoLoader::m_DecoCovaFilePrefix
std::string m_DecoCovaFilePrefix
Definition: TileInfoLoader.h:129
TileInfoLoader::buildCovMatrix
void buildCovMatrix(TileInfo &info)
Definition: TileInfoLoader.cxx:633
TilePulseShapes::m_filenameSLeakLo
std::string m_filenameSLeakLo
Definition: TilePulseShapes.h:147
TilePulseShapes::m_filenameSLeakHi
std::string m_filenameSLeakHi
Definition: TilePulseShapes.h:151
TilePulseShapes::m_filenameHiPhys
std::string m_filenameHiPhys
Definition: TilePulseShapes.h:158
Pythia8_A14_NNPDF23LO_Var1Down_Common.ver
ver
Definition: Pythia8_A14_NNPDF23LO_Var1Down_Common.py:26
TilePulseShapes::m_filenameHiCIS
std::string m_filenameHiCIS
Definition: TilePulseShapes.h:141
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TileInfoLoader::m_digitsShapeFileHi
std::string m_digitsShapeFileHi
Filenames of input files.
Definition: TileInfoLoader.h:124
TilePulseShapes::m_filenameLoPhysDer
std::string m_filenameLoPhysDer
Definition: TilePulseShapes.h:159
doubleTestComp.j1
j1
Definition: doubleTestComp.py:21
TileInfoLoader::buildTTL1Shapes
StatusCode buildTTL1Shapes(TileInfo &info, const std::string &ShapeFile, int &NBins, int &Time0Bin, int &BinsPerX, std::vector< double > &FullShape, std::vector< double > &Shape)
Definition: TileInfoLoader.cxx:515
lumiFormat.i
int i
Definition: lumiFormat.py:92
TilePulseShapes::m_filenameSLoCIS
std::string m_filenameSLoCIS
Definition: TilePulseShapes.h:139
TilePulseShapes::m_filenameHiLasDer
std::string m_filenameHiLasDer
Definition: TilePulseShapes.h:166
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
maskDeadModules.run1
run1
Definition: maskDeadModules.py:40
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TileInfoLoader::m_ttL1Ped
double m_ttL1Ped
Definition: TileInfoLoader.h:96
TileInfoLoader::m_muL1Calib
double m_muL1Calib
Definition: TileInfoLoader.h:103
TileWienerFilterWeights::m_Luminosity
int m_Luminosity
Definition: TileWienerFilterWeights.h:33
TileInfoLoader::m_ttL1CosmicsThresh
double m_ttL1CosmicsThresh
Definition: TileInfoLoader.h:114
file
TFile * file
Definition: tile_monitor.h:29
GeoModel::GEO_RUN4
@ GEO_RUN4
Definition: IGeoDbTagSvc.h:21
TileInfoLoader::m_MuRcvNoiseSigma
double m_MuRcvNoiseSigma
Definition: TileInfoLoader.h:99
TilePulseShapes::m_filenameNkNoise
std::string m_filenameNkNoise
Definition: TilePulseShapes.h:170
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
TileInfoLoader::m_MuRcvMax
double m_MuRcvMax
Definition: TileInfoLoader.h:102
TileInfoLoader::m_ttL1NoiseSigma
double m_ttL1NoiseSigma
Definition: TileInfoLoader.h:94
GeoModel::GEO_RUN3
@ GEO_RUN3
Definition: IGeoDbTagSvc.h:20
TileInfoLoader::m_ttL1Calib
double m_ttL1Calib
Definition: TileInfoLoader.h:93
TileInfoLoader::m_muL1Thresh
double m_muL1Thresh
Definition: TileInfoLoader.h:105
TileInfoLoader::m_noiseScaleIndex
int m_noiseScaleIndex
Definition: TileInfoLoader.h:90
CxxUtils::atof
double atof(std::string_view str)
Converts a string into a double / float.
Definition: Control/CxxUtils/Root/StringUtils.cxx:91
TileInfoLoader::m_muL1Ped
double m_muL1Ped
Definition: TileInfoLoader.h:106
TileInfoLoader::m_MuRcvThresh
double m_MuRcvThresh
Definition: TileInfoLoader.h:100
ReadCellNoiseFromCoolCompare.run2
run2
Definition: ReadCellNoiseFromCoolCompare.py:53
TileInfoLoader::m_muL1Max
double m_muL1Max
Definition: TileInfoLoader.h:107
TileInfoLoader::m_MuRcvCalib
double m_MuRcvCalib
Definition: TileInfoLoader.h:98
TileInfoLoader::m_ttL1Max
double m_ttL1Max
Definition: TileInfoLoader.h:97
TileInfoLoader::m_ttL1CosmicsGain
double m_ttL1CosmicsGain
Definition: TileInfoLoader.h:113
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TilePulseShapes::m_filenameDSLeakHi
std::string m_filenameDSLeakHi
Definition: TilePulseShapes.h:153
TileInfoLoader::m_mbtsL1Calib
double m_mbtsL1Calib
Definition: TileInfoLoader.h:108
TilePulseShapes::m_filenameSLoCISDer
std::string m_filenameSLoCISDer
Definition: TilePulseShapes.h:140
GeoModel::GEO_RUN2
@ GEO_RUN2
Definition: IGeoDbTagSvc.h:19
IGeoModelSvc::geoConfig
virtual GeoModel::GeoConfig geoConfig() const =0
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
TilePulseShapes::m_filenameLeakLo
std::string m_filenameLeakLo
Definition: TilePulseShapes.h:148
TilePulseShapes
Definition: TilePulseShapes.h:119
TilePulseShapes::m_filenameLeakHi
std::string m_filenameLeakHi
Definition: TilePulseShapes.h:152
TileWienerFilterWeights
Definition: TileWienerFilterWeights.h:17
ReadCalibFromCool.comm
comm
Definition: ReadCalibFromCool.py:440
TilePulseShapes::m_filenameSHiCIS
std::string m_filenameSHiCIS
Definition: TilePulseShapes.h:143
TileInfoLoader::m_thresholdRawChannel
double m_thresholdRawChannel
Definition: TileInfoLoader.h:91
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LArCellConditions.geo
bool geo
Definition: LArCellConditions.py:46
TileInfoLoader::m_MuL1ShapeFile
std::string m_MuL1ShapeFile
Definition: TileInfoLoader.h:128
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< Service >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
TilePulseShapes::m_filenameDLeakHi
std::string m_filenameDLeakHi
Definition: TilePulseShapes.h:154
TileInfoLoader::m_WFWeights
TileWienerFilterWeights * m_WFWeights
Pointer to Wiener Filtering weights.
Definition: TileInfoLoader.h:121
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:569
TilePulseShapes::m_filenameDSLeakLo
std::string m_filenameDSLeakLo
Definition: TilePulseShapes.h:149
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
TileInfoLoader::m_mbtsL1Ped
double m_mbtsL1Ped
Definition: TileInfoLoader.h:111
TilePulseShapes::m_filenameLoLasDer
std::string m_filenameLoLasDer
Definition: TilePulseShapes.h:165
CxxUtils::atoi
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
Definition: Control/CxxUtils/Root/StringUtils.cxx:85
TilePulseShapes::m_filenameLoCIS
std::string m_filenameLoCIS
Definition: TilePulseShapes.h:137
TilePulseShapes::m_filenameOrigNoise
std::string m_filenameOrigNoise
Definition: TilePulseShapes.h:169
TileInfoLoader::m_pulsevar
TilePulseShapes * m_pulsevar
Pointer to TilePulseShapes object.
Definition: TileInfoLoader.h:82
IGeoModelSvc::atlasVersion
virtual const std::string & atlasVersion() const =0
TileInfoLoader::m_detStore
ServiceHandle< StoreGateSvc > m_detStore
Definition: TileInfoLoader.h:79
TileWienerFilterWeights::m_NSamples_Phys
int m_NSamples_Phys
Definition: TileWienerFilterWeights.h:34
TileInfoLoader::m_thresholdDigits
double m_thresholdDigits
Definition: TileInfoLoader.h:92
TileInfoLoader::buildDigitsShapesHiLo
StatusCode buildDigitsShapesHiLo(TileInfo &info)
Definition: TileInfoLoader.cxx:321
doubleTestComp.j2
j2
Definition: doubleTestComp.py:22
fitman.k
k
Definition: fitman.py:528
TileInfoLoader::m_MuRcvPed
double m_MuRcvPed
Definition: TileInfoLoader.h:101