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

#include <L1CaloPprPhos4Shape.h>

Inheritance diagram for L1CaloPprPhos4Shape:
Collaboration diagram for L1CaloPprPhos4Shape:

Public Types

enum  CaloLayer { LAYER_NOT_SET = 0, EM = 1, HAD = 2 }
 

Public Member Functions

 L1CaloPprPhos4Shape (const L1CaloCoolChannelId &coolId)
 
 ~L1CaloPprPhos4Shape ()
 
void SetMinimumSignalHeight (const unsigned int min)
 
unsigned int GetMinimumSignalHeight (void) const
 
void SetEta (const float eta)
 
float GetEta (void) const
 
void SetPhi (const float phi)
 
float GetPhi (void) const
 
void SetLayer (const CaloLayer layer)
 
CaloLayer GetLayer (void) const
 
StatusCode Fill (const unsigned int ns_step, const unsigned int adc)
 Fill the profile with the ADC values at each nanosecond step. More...
 
StatusCode Fill (const unsigned int timeSlice, const unsigned int rodHeaderStep, const int adc)
 Fill the profile with the ADC values at each nanosecond step Here I can accept the rodHeaderStep and ADC time slice directly and I will calculate the nanosecond step. More...
 
StatusCode Fill (const unsigned int rodHeaderStep, const std::vector< int > &adc)
 Fill the profile with the ADC values at each nanosecond step Here I can accept the rodHeaderStep and a vector of the ADC values, which should only contain as many entries as there are ADC time slices since I use the vector to determine the number of time slices. More...
 
StatusCode Finalize (void)
 In finalize I want the profile to be processed and extract some useful characteristics like the peak value and the peak location. More...
 
TProfileGetRawSignalShape (void)
 
unsigned int GetRawMaxPeakBin (void)
 
float GetRawMaxPeakValue (void)
 
unsigned int GetRawMaxFullDelayData (void)
 
unsigned int GetRawFitPeakBin (void)
 
float GetRawFitPeakValue (void)
 
unsigned int GetRawFitFullDelayData (void)
 
bool GetRawFitPerformed (void)
 
TF1 * GetRawFit (void)
 
TH1FGetProcessedSignalShape (void)
 
unsigned int GetProcessedMaxPeakBin (void)
 
float GetProcessedMaxPeakValue (void)
 
unsigned int GetProcessedMaxFullDelayData (void)
 
unsigned int GetProcessedFitPeakBin (void)
 
float GetProcessedFitPeakValue (void)
 
unsigned int GetProcessedFitFullDelayData (void)
 
bool GetProcessedFitPerformed (void)
 
TF1 * GetProcessedFit (void)
 
unsigned int GetRawPhos4Setting (void)
 
unsigned int GetCoolId (void)
 
void SetPedValue (unsigned int value)
 
void SetL1aFadcSlice (unsigned int slice)
 
unsigned int GetPedValue (void)
 
unsigned int GetL1aFadcSlice (void)
 
float GetRisingSlopeMean (void)
 
float GetRisingSlopeSigma (void)
 
unsigned int GetErrorCode (void)
 
float GetPedestalMean (void)
 
float GetPedestalSigma (void)
 
void SetCurrentFullDelayData (unsigned int delay)
 
unsigned int GetCurrentFullDelayData (void)
 
bool IsValidChannel (void)
 
void SetValidChannel (bool validity)
 
bool IsEnabled (void)
 
void SetEnabled (bool enabled)
 
bool IsProcessed (void)
 
bool msgLvl (const MSG::Level lvl) const
 Test the output level. More...
 
MsgStream & msg () const
 The standard message stream. More...
 
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream. More...
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Private Member Functions

 L1CaloPprPhos4Shape ()
 
 L1CaloPprPhos4Shape (const L1CaloPprPhos4Shape &rhs)
 
void operator= (const L1CaloPprPhos4Shape &rhs)
 
unsigned int CalculateFullDelayData (const int truePeakPosition)
 
void CorrectRawPedestal (void)
 
void CalculatePedCorrection (void)
 
void CalculatePedestal (TH1 *histo, float &pedMean, float &pedSigma)
 
void FindBinWithMaxValue (TH1 *histo, float &peakValue, unsigned int &peakBin)
 Given a signal profile, this finds the maximum value and it's corresponding bin. More...
 
TF1 * FitSignalPeak (TH1 *histo, const float maxPeakValue, const unsigned int maxPeakBin, const unsigned int pedestal, float &fitPeakValue, unsigned int &fitPeakBin)
 Given a signal profile, this finds the maximum value and it's corresponding bin. More...
 
void FillErrorCode (bool signalIsPresent, bool signalIsSaturated)
 
bool IsSignalPresent (TH1 *histo, const unsigned int threshold) const
 
bool IsSignalSaturated (TH1 *histo, const unsigned int saturationPoint) const
 
void CheckRisingSlope (TH1 *histo, unsigned int peakBin, float peakValue)
 
std::string GetPlotName (const std::string &base, const L1CaloCoolChannelId &coolId) const
 
std::string GetPlotTitle (const std::string &base, const L1CaloCoolChannelId &coolId) const
 
std::string CoolIdToString (const L1CaloCoolChannelId &coolId) const
 
void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

unsigned int m_minSignalHeight
 
L1CaloCoolChannelId m_coolId
 
float m_eta
 
float m_phi
 
CaloLayer m_layer
 
bool m_isValid
 
bool m_isEnabled
 
unsigned int m_currentFullDelayData
 
unsigned int m_pedValue
 
unsigned int m_l1aFadcSlice
 
ChanCalibErrorCode m_errorCode
 
TProfilem_raw_signalShape
 
float m_raw_maxPeakValue
 
unsigned int m_raw_maxPeakBin
 
unsigned int m_raw_maxFullDelayData
 
float m_raw_fitPeakValue
 
unsigned int m_raw_fitPeakBin
 
unsigned int m_raw_fitFullDelayData
 
bool m_raw_fitPerformed
 
TF1 * m_raw_fit
 
float m_rawPedestalMean
 
float m_rawPedestalSigma
 
std::vector< unsigned int > m_pedCorrectionSum
 
std::vector< unsigned int > m_pedCorrectionSum2
 
std::vector< unsigned int > m_pedCorrectionN
 
std::vector< float > m_pedCorrectionMean
 
std::vector< float > m_pedCorrectionSigma
 
TH1Fm_processed_signalShape
 
float m_processed_maxPeakValue
 
unsigned int m_processed_maxPeakBin
 
unsigned int m_processed_maxFullDelayData
 
float m_processed_fitPeakValue
 
unsigned int m_processed_fitPeakBin
 
unsigned int m_processed_fitFullDelayData
 
bool m_processed_fitPerformed
 
TF1 * m_processed_fit
 
float m_risingSlopeMean
 
float m_risingSlopeSigma
 
bool m_processSignalShape
 
std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Static Private Attributes

static const unsigned int MAX_ADC_TIME_SLICES = 15
 
static const unsigned int NANOSEC_PER_LHC_CLOCK_TICK = 25
 
static const unsigned int MAX_PEDESTAL_SIGMA = 4
 
static const unsigned int SATURATED_ADC = 1000
 

Detailed Description

Definition at line 86 of file L1CaloPprPhos4Shape.h.

Member Enumeration Documentation

◆ CaloLayer

Enumerator
LAYER_NOT_SET 
EM 
HAD 

Definition at line 92 of file L1CaloPprPhos4Shape.h.

92  {
93  LAYER_NOT_SET = 0,
94  EM = 1,
95  HAD = 2
96  };

Constructor & Destructor Documentation

◆ L1CaloPprPhos4Shape() [1/3]

L1CaloPprPhos4Shape::L1CaloPprPhos4Shape ( const L1CaloCoolChannelId coolId)

Definition at line 17 of file L1CaloPprPhos4Shape.cxx.

17  :
18  AthMessaging("L1CaloPprPhos4Shape"),
19  m_minSignalHeight (30),
20  m_coolId (coolId),
21  m_eta (999),
22  m_phi (999),
24  m_isValid (true),
25  m_isEnabled (true),
27  m_pedValue (0),
28  m_l1aFadcSlice (0)
29 {
30  // setup raw signal profile.
32 // sm_raw_signalShape->GetXaxis()->SetTitle("nanosecond steps");
33 
34  m_raw_maxPeakValue = 0.;
35  m_raw_maxPeakBin = 0;
37  m_raw_fitPeakValue = 0.;
38  m_raw_fitPeakBin = 0;
40  m_raw_fitPerformed = true;
41 
42  m_raw_fit = 0;
43 
44  m_rawPedestalMean = 0.;
45  m_rawPedestalSigma = 0.;
46 
47  // I use the first 50 entries, which should all be pedestal level, to
48  // correct for the nanosecond depedent PHOS4 correction.
54 
63 
64  m_processed_fit = 0;
65 
66  m_risingSlopeMean = 0.;
67  m_risingSlopeSigma = 0.;
68 
69  m_processSignalShape = true;
70 
71 }

◆ ~L1CaloPprPhos4Shape()

L1CaloPprPhos4Shape::~L1CaloPprPhos4Shape ( )

Definition at line 73 of file L1CaloPprPhos4Shape.cxx.

73  {
74 
75 }

◆ L1CaloPprPhos4Shape() [2/3]

L1CaloPprPhos4Shape::L1CaloPprPhos4Shape ( )
private

◆ L1CaloPprPhos4Shape() [3/3]

L1CaloPprPhos4Shape::L1CaloPprPhos4Shape ( const L1CaloPprPhos4Shape rhs)
private

Member Function Documentation

◆ CalculateFullDelayData()

unsigned int L1CaloPprPhos4Shape::CalculateFullDelayData ( const int  truePeakPosition)
private

Definition at line 352 of file L1CaloPprPhos4Shape.cxx.

352  {
353 
354  // Stephen Hillier derived this calculation
355 
356  // integer division to get the course timing delay
357  const int courseDelay = (int)(m_currentFullDelayData/NANOSEC_PER_LHC_CLOCK_TICK);
358  // base delay
359  const int baseDelay = courseDelay*NANOSEC_PER_LHC_CLOCK_TICK + 9;
360 
361  const int idealPeakPosition = m_l1aFadcSlice*NANOSEC_PER_LHC_CLOCK_TICK;
362  const int dt = idealPeakPosition - truePeakPosition;
363 
364  const int newFullDelayData = (baseDelay + dt);
365  if(newFullDelayData < 0){
366  ATH_MSG_WARNING("[CalculateFullDelayData]: New Full Delay data was calculated as zero. Should only be greater than zero. Returning 0 for safety. Channel 0x" << CoolIdToString(m_coolId) << ". Peak position passed was: " << truePeakPosition << " and the idealPeakPosition is: " << idealPeakPosition);
367  return 0;
368  }
369 
370  return (unsigned int)newFullDelayData;
371 }

◆ CalculatePedCorrection()

void L1CaloPprPhos4Shape::CalculatePedCorrection ( void  )
private

Definition at line 344 of file L1CaloPprPhos4Shape.cxx.

344  {
345  for(unsigned int step=0;step<NANOSEC_PER_LHC_CLOCK_TICK;++step){
348  }
349 
350 }

◆ CalculatePedestal()

void L1CaloPprPhos4Shape::CalculatePedestal ( TH1 histo,
float &  pedMean,
float &  pedSigma 
)
private

Definition at line 292 of file L1CaloPprPhos4Shape.cxx.

292  {
293 
294  if((unsigned int)histo->GetNbinsX() < NANOSEC_PER_LHC_CLOCK_TICK*2){
295  ATH_MSG_WARNING("[CalculatePedestal] Could not calculate pedestal due to lack of bins in " << histo->GetName());
296  return;
297  }
298 
299  float pedSum=0,pedSum2=0;
300  unsigned int pedN=0;
301  for(unsigned int bin=1;bin<NANOSEC_PER_LHC_CLOCK_TICK*2;++bin){
302  pedSum += histo->GetBinContent(bin);
303  pedSum2 += histo->GetBinContent(bin)*histo->GetBinContent(bin);
304  pedN++;
305  }
306  // pedN > 0 <=> NANOSEC_PER_LHC_CLOCK_TICK > 0, which is protected by the above return
307  pedMean = pedSum/(float)pedN;
308  pedSigma = sqrt( (1.0/(float)pedN)*pedSum2 - pedMean*pedMean);
309 
310 }

◆ CheckRisingSlope()

void L1CaloPprPhos4Shape::CheckRisingSlope ( TH1 histo,
unsigned int  peakBin,
float  peakValue 
)
private

Definition at line 462 of file L1CaloPprPhos4Shape.cxx.

462  {
463 
464  // want to only look at the slope from 10% to 90%
465  const float peakValue10percent = peakValue*0.10;
466  const float peakValue90percent = peakValue*0.90;
467  unsigned int peakBin10percent = 0;
468  unsigned int peakBin90percent = 0;
469  for(unsigned int bin=peakBin;bin>0;--bin){
470  if(histo->GetBinContent(bin) < peakValue10percent && peakBin10percent == 0){
471  peakBin10percent = bin;
472  break;
473  }
474  if(histo->GetBinContent(bin) < peakValue90percent && peakBin90percent == 0){
475  peakBin90percent = bin;
476  }
477 
478  }// end for(bin)
479 
480  //now calculate the mean and sigma instantaneous slope
481  float sum=0,sum2=0;
482  unsigned int n=0;
483  for(unsigned int bin=peakBin10percent+1;bin<=peakBin90percent;++bin){
484  float dydx = histo->GetBinContent(bin) - histo->GetBinContent(bin-1);
485  // dx = 1 by definition so dy = dydx
486 
487  sum += dydx;
488  sum2 += dydx*dydx;
489  n++;
490 
491  }
492 
493  m_risingSlopeMean = (n == 0) ? 0 : sum/(float)n;
494  m_risingSlopeSigma = (n == 0) ? 0 : sqrt( (1.0/(float)n)*sum2 - m_risingSlopeMean*m_risingSlopeMean);
495 
496 }

◆ CoolIdToString()

std::string L1CaloPprPhos4Shape::CoolIdToString ( const L1CaloCoolChannelId coolId) const
private

Definition at line 508 of file L1CaloPprPhos4Shape.cxx.

508  {
509  char temp[200];
510  sprintf(temp,"%08x",coolId.id());
511  std::string tempStr = temp;
512  return tempStr;
513 }

◆ CorrectRawPedestal()

void L1CaloPprPhos4Shape::CorrectRawPedestal ( void  )
private

Definition at line 312 of file L1CaloPprPhos4Shape.cxx.

312  {
313 
314  // if the pedestal sigma is greater than this value we set
315  // the pedestal is flat to false so that the correction is
316  // not completed and the raw signal is used instead.
318  //m_processed_signalShape->GetXaxis()->SetTitle("nanosecond steps");
319 
321  m_processSignalShape = false;
322  }
323  else{
325 
326 
327  for(unsigned int bin=1;(int)bin<m_raw_signalShape->GetNbinsX();++bin){
328 
329  unsigned int phos4step = (bin - 1) % NANOSEC_PER_LHC_CLOCK_TICK;
330 
331  // add the bin content from the raw and pedestal correction
333 
334  // calculate the error
335  float error = sqrt(m_raw_signalShape->GetBinError(bin)*m_raw_signalShape->GetBinError(bin) + m_pedCorrectionSigma[phos4step]*m_pedCorrectionSigma[phos4step] );
336 
337  m_processed_signalShape->SetBinError(bin,error);
338 
339  }
340  }
341 
342 }

◆ Fill() [1/3]

StatusCode L1CaloPprPhos4Shape::Fill ( const unsigned int  ns_step,
const unsigned int  adc 
)

Fill the profile with the ADC values at each nanosecond step.

Definition at line 78 of file L1CaloPprPhos4Shape.cxx.

78  {
79  m_raw_signalShape->Fill(ns_step,adc);
80 
81  if(ns_step < NANOSEC_PER_LHC_CLOCK_TICK*2){
82  const unsigned int phos4step = ns_step % NANOSEC_PER_LHC_CLOCK_TICK;
83  m_pedCorrectionSum[phos4step] += adc;
84  m_pedCorrectionSum2[phos4step] += adc*adc;
85  ++m_pedCorrectionN[phos4step];
86  }
87 
88  return StatusCode::SUCCESS;
89 }

◆ Fill() [2/3]

StatusCode L1CaloPprPhos4Shape::Fill ( const unsigned int  rodHeaderStep,
const std::vector< int > &  adc 
)

Fill the profile with the ADC values at each nanosecond step Here I can accept the rodHeaderStep and a vector of the ADC values, which should only contain as many entries as there are ADC time slices since I use the vector to determine the number of time slices.

Definition at line 113 of file L1CaloPprPhos4Shape.cxx.

113  {
114  const unsigned int phos4step = rodHeaderStep % NANOSEC_PER_LHC_CLOCK_TICK;
115 
116  for(unsigned int timeSlice = 0;timeSlice < adc.size();++timeSlice){
117  const unsigned int ns_step = timeSlice*NANOSEC_PER_LHC_CLOCK_TICK + phos4step;
118  m_raw_signalShape->Fill(ns_step,adc[timeSlice]);
119  }
120 
121  m_pedCorrectionSum[phos4step] += adc[0];
122  m_pedCorrectionSum2[phos4step] += adc[0]*adc[0];
123  ++m_pedCorrectionN[phos4step];
124 
125  m_pedCorrectionSum[phos4step] += adc[1];
126  m_pedCorrectionSum2[phos4step] += adc[1]*adc[1];
127  ++m_pedCorrectionN[phos4step];
128 
129  return StatusCode::SUCCESS;
130 }

◆ Fill() [3/3]

StatusCode L1CaloPprPhos4Shape::Fill ( const unsigned int  timeSlice,
const unsigned int  rodHeaderStep,
const int  adc 
)

Fill the profile with the ADC values at each nanosecond step Here I can accept the rodHeaderStep and ADC time slice directly and I will calculate the nanosecond step.

Definition at line 94 of file L1CaloPprPhos4Shape.cxx.

94  {
95  const unsigned int phos4step = rodHeaderStep % NANOSEC_PER_LHC_CLOCK_TICK;
96  const unsigned int ns_step = timeSlice*NANOSEC_PER_LHC_CLOCK_TICK + phos4step;
97  m_raw_signalShape->Fill(ns_step,adc);
98 
99  if(ns_step < NANOSEC_PER_LHC_CLOCK_TICK*2){
100  m_pedCorrectionSum[phos4step] += adc;
101  m_pedCorrectionSum2[phos4step] += adc*adc;
102  ++m_pedCorrectionN[phos4step];
103  }
104 
105  return StatusCode::SUCCESS;
106 }

◆ FillErrorCode()

void L1CaloPprPhos4Shape::FillErrorCode ( bool  signalIsPresent,
bool  signalIsSaturated 
)
private

Definition at line 373 of file L1CaloPprPhos4Shape.cxx.

373  {
374 
375  // if the signal is not present set the bad data bit
376  if(!signalIsPresent){
377  ATH_MSG_WARNING("[FillErrorCode] Set bad data bit because signal not present. Channel 0x" << CoolIdToString(m_coolId));
378  m_errorCode.badData(true);
380 
381  // fill FullDelayData variables with current database value for safety
386  return;
387  }
388 
389  if(signalIsSaturated){
390  ATH_MSG_WARNING("[FillErrorCode] Set bad data bit because signal is saturated. Channel 0x" << CoolIdToString(m_coolId));
391  m_errorCode.badData(true);
393 
394  // fill FullDelayData variables with current database value for safety
399 
400  }
401 
404  else
406 
407  // if no Mean or sigma was calculated this usually indicates a bad signal shape
408  if((m_risingSlopeMean < 0.0001 || m_risingSlopeSigma < 0.0001)){
409  ATH_MSG_WARNING("[FillErrorCode] Set bad data bit because the signal shape is corrupt. Channel 0x" << CoolIdToString(m_coolId));
410  m_errorCode.badData(true);
411  ATH_MSG_WARNING("[FillErrorCode] Set phos4 scan bad signal bit because the signal shape is corrupt. Channel 0x" << CoolIdToString(m_coolId));
413 
414 
415  // fill FullDelayData variables with current database value for safety
420  }
421  else if( m_risingSlopeSigma > 10.0){
422  ATH_MSG_WARNING("[FillErrorCode] Set bad data because the signal rising edge instantaneous slope has a large sigma. Channel 0x" << CoolIdToString(m_coolId));
423  m_errorCode.badData(true);
424  ATH_MSG_WARNING("[FillErrorCode] Set phos4 scan bad signal bit because the signal rising edge instantaneous slope has a large sigma. Channel 0x" << CoolIdToString(m_coolId));
426 
427 
428  // fill FullDelayData variables with current database value for safety
433  }
434 
435 
436 }

◆ Finalize()

StatusCode L1CaloPprPhos4Shape::Finalize ( void  )

In finalize I want the profile to be processed and extract some useful characteristics like the peak value and the peak location.

Definition at line 135 of file L1CaloPprPhos4Shape.cxx.

135  {
136 
137 
138  // calculate pedestal with first 50 ns steps
140  const unsigned int pedestal = (unsigned int)m_rawPedestalMean;
141  // use pedestal + minSignalHeight as the cut unless it is lower than 6sigma
142  unsigned int signalCut = m_minSignalHeight;
143  if(signalCut < (unsigned int)(m_rawPedestalSigma*6.))
144  signalCut = (unsigned int)(m_rawPedestalSigma*6.);
145 
146  // signal cut above pedestal
147  signalCut += pedestal;
148 
149  bool signalIsPresent = IsSignalPresent(m_raw_signalShape,signalCut);
150 
151  if(!signalIsPresent || !m_isValid || !m_isEnabled){
152  // subtract the pedestal correction from the raw signal
154 
155  FillErrorCode(signalIsPresent,false);
156 
157  return StatusCode::SUCCESS;
158  }
159 
160  // check if the signal is saturated
161  const unsigned short int saturationLevel = 1020;
162  bool signalIsSaturated = IsSignalSaturated(m_raw_signalShape,saturationLevel);
163  // if signal is saturated, don't fit signals
164  if(signalIsSaturated){
165  m_raw_fitPerformed = false;
166  m_processed_fitPerformed = false;
167  }
168 
169  // find the peak value and location for the raw signal
171  // calculate the fullDelayData for these max values
173  // find the peak value and location using landau/gaus fit
174  if(m_raw_fitPerformed){
176  std::string rawFitName = "raw_";
177  rawFitName += m_raw_fit->GetName();
178  m_raw_fit->SetName(rawFitName.c_str());
179  // calculate the fullDelayData for these fitvalues
181  }
182 
183  // find the peak value and location for the corrected signal
184  // and calculate the new FullDataDelay
186  // subtract the pedestal correction from the raw signal
188 
190  // calculate the fullDelayData for these fitvalues
192 
193 
194  // find the peak value and location using landau/gaus fit
197 
198  std::string processedFitName = "processed_";
199  processedFitName += m_processed_fit->GetName();
200  m_processed_fit->SetName(processedFitName.c_str());
201 
202  // calculate the fullDelayData for these fitvalues
204  }
205  }
206 
207  // Fill Error Code
208  FillErrorCode(signalIsPresent,signalIsSaturated);
209 
210  return StatusCode::SUCCESS;
211 }

◆ FindBinWithMaxValue()

void L1CaloPprPhos4Shape::FindBinWithMaxValue ( TH1 histo,
float &  peakValue,
unsigned int &  peakBin 
)
private

Given a signal profile, this finds the maximum value and it's corresponding bin.

Definition at line 214 of file L1CaloPprPhos4Shape.cxx.

214  {
215 
216  peakValue = 0;
217  peakBin = 0;
218  for(unsigned int bin=1;(int)bin<=histo->GetNbinsX();++bin){
219  if(peakValue < histo->GetBinContent(bin)){
220  peakValue = histo->GetBinContent(bin);
221  peakBin = bin;
222  }
223  }
224 }

◆ FitSignalPeak()

TF1 * L1CaloPprPhos4Shape::FitSignalPeak ( TH1 histo,
const float  maxPeakValue,
const unsigned int  maxPeakBin,
const unsigned int  pedestal,
float &  fitPeakValue,
unsigned int &  fitPeakBin 
)
private

Given a signal profile, this finds the maximum value and it's corresponding bin.

Definition at line 226 of file L1CaloPprPhos4Shape.cxx.

226  {
227 
228  fitPeakValue = 0.;
229  fitPeakBin = 0;
230 
231  const unsigned int fitRangeWidth = 13;
232  const unsigned int minFitRange = maxPeakBin - fitRangeWidth - 1; // -1 for bin to ns correction
233  const unsigned int maxFitRange = maxPeakBin + fitRangeWidth - 1;
234 
235  LandGaussFunc *fitFunc = new LandGaussFunc;
236 
237  std::string fitName = "fit_" + CoolIdToString(m_coolId);
238  TF1* fit = new TF1(fitName.c_str(),fitFunc,minFitRange,maxFitRange,5);
239  // fix the pedestal value
240  fit->FixParameter(4,pedestal);
241 
242  // constrain the mean position
243 // const unsigned int xmax_min = 0, xmax_max = 15*25;
244 // fit->SetParLimits(0,xmax_min,xmax_max);
245  // set initial mean position to that of the maximum bin
246  const unsigned int xmax_init = maxPeakBin-1;
247  fit->SetParameter(0,xmax_init);
248 
249  // constrain the amplitude
250 // const unsigned int amp_min = m_minSignalHeight+pedestal, amp_max = 1020;
251 // fit->SetParLimits(1,amp_min,amp_max);
252  // set initial amplitude
253  const float amp_init = (maxPeakValue-pedestal)*exp(0.5);
254  fit->SetParameter(1,amp_init);
255 
256  // constrain the sigma gaus
257 // const unsigned int gSigma_min = 1, gSigma_max = 60;
258 // fit->SetParLimits(2,gSigma_min,gSigma_max);
259  // set initial sigma gaus
260  const unsigned int gSigma_init = 25;
261  fit->SetParameter(2,gSigma_init);
262 
263  // constrain the sigma landau
264 // const unsigned int lSigma_min = 1, lSigma_max = 60;
265 // fit->SetParLimits(3,lSigma_min,lSigma_max);
266  // set initial sigma gaus
267  const unsigned int lSigma_init = 15;
268  fit->SetParameter(3,lSigma_init);
269 
270  histo->Fit(fit,"qurnob");
271 
272 
273 
274 // const float x_max = fit->GetParameter(0);
275  const float ampl = fit->GetParameter(1);
276 // const float gSigma = fit->GetParameter(2);
277 // const float lSigma = fit->GetParameter(3);
278 // const float ped = fit->GetParameter(4);
279 
280  fitPeakValue = ampl*exp(-0.5)+pedestal;
281  // +0.5 deals with rounding. If fitPeakValue is between x.0 and x.49
282  // the bin should not change after adding 0.5, but if it is x.5 to x.9
283  // the bin should be assigned to the next bin (so rounding up)
284  fitPeakBin = histo->FindBin(fit->GetParameter(0));
285 
286  delete fitFunc;
287  fitFunc = 0;
288 
289  return fit;
290 }

◆ GetCoolId()

unsigned int L1CaloPprPhos4Shape::GetCoolId ( void  )
inline

Definition at line 140 of file L1CaloPprPhos4Shape.h.

140 {return m_coolId.id();};

◆ GetCurrentFullDelayData()

unsigned int L1CaloPprPhos4Shape::GetCurrentFullDelayData ( void  )
inline

Definition at line 157 of file L1CaloPprPhos4Shape.h.

157 {return m_currentFullDelayData;};

◆ GetErrorCode()

unsigned int L1CaloPprPhos4Shape::GetErrorCode ( void  )
inline

Definition at line 151 of file L1CaloPprPhos4Shape.h.

151 {return m_errorCode.errorCode();};

◆ GetEta()

float L1CaloPprPhos4Shape::GetEta ( void  ) const
inline

Definition at line 102 of file L1CaloPprPhos4Shape.h.

102 {return m_eta;};

◆ GetL1aFadcSlice()

unsigned int L1CaloPprPhos4Shape::GetL1aFadcSlice ( void  )
inline

Definition at line 146 of file L1CaloPprPhos4Shape.h.

146 {return m_l1aFadcSlice;};

◆ GetLayer()

CaloLayer L1CaloPprPhos4Shape::GetLayer ( void  ) const
inline

Definition at line 108 of file L1CaloPprPhos4Shape.h.

108 {return m_layer;};

◆ GetMinimumSignalHeight()

unsigned int L1CaloPprPhos4Shape::GetMinimumSignalHeight ( void  ) const
inline

Definition at line 99 of file L1CaloPprPhos4Shape.h.

99 {return m_minSignalHeight;};

◆ GetPedestalMean()

float L1CaloPprPhos4Shape::GetPedestalMean ( void  )
inline

Definition at line 153 of file L1CaloPprPhos4Shape.h.

153 {return m_rawPedestalMean;};

◆ GetPedestalSigma()

float L1CaloPprPhos4Shape::GetPedestalSigma ( void  )
inline

Definition at line 154 of file L1CaloPprPhos4Shape.h.

154 {return m_rawPedestalSigma;};

◆ GetPedValue()

unsigned int L1CaloPprPhos4Shape::GetPedValue ( void  )
inline

Definition at line 145 of file L1CaloPprPhos4Shape.h.

145 {return m_pedValue;};

◆ GetPhi()

float L1CaloPprPhos4Shape::GetPhi ( void  ) const
inline

Definition at line 105 of file L1CaloPprPhos4Shape.h.

105 {return m_phi;};

◆ GetPlotName()

std::string L1CaloPprPhos4Shape::GetPlotName ( const std::string &  base,
const L1CaloCoolChannelId coolId 
) const
private

Definition at line 498 of file L1CaloPprPhos4Shape.cxx.

498  {
499  std::string tempStr = base + "_" + CoolIdToString(coolId);
500  return tempStr;
501 }

◆ GetPlotTitle()

std::string L1CaloPprPhos4Shape::GetPlotTitle ( const std::string &  base,
const L1CaloCoolChannelId coolId 
) const
private

Definition at line 503 of file L1CaloPprPhos4Shape.cxx.

503  {
504  std::string tempStr = base + " " + CoolIdToString(coolId);
505  return tempStr;
506 }

◆ GetProcessedFit()

TF1* L1CaloPprPhos4Shape::GetProcessedFit ( void  )
inline

Definition at line 136 of file L1CaloPprPhos4Shape.h.

136 {return m_processed_fit;};

◆ GetProcessedFitFullDelayData()

unsigned int L1CaloPprPhos4Shape::GetProcessedFitFullDelayData ( void  )
inline

Definition at line 133 of file L1CaloPprPhos4Shape.h.

◆ GetProcessedFitPeakBin()

unsigned int L1CaloPprPhos4Shape::GetProcessedFitPeakBin ( void  )
inline

Definition at line 131 of file L1CaloPprPhos4Shape.h.

131 {return m_processed_fitPeakBin;};

◆ GetProcessedFitPeakValue()

float L1CaloPprPhos4Shape::GetProcessedFitPeakValue ( void  )
inline

Definition at line 132 of file L1CaloPprPhos4Shape.h.

132 {return m_processed_fitPeakValue;};

◆ GetProcessedFitPerformed()

bool L1CaloPprPhos4Shape::GetProcessedFitPerformed ( void  )
inline

Definition at line 134 of file L1CaloPprPhos4Shape.h.

134 {return m_processed_fitPerformed;};

◆ GetProcessedMaxFullDelayData()

unsigned int L1CaloPprPhos4Shape::GetProcessedMaxFullDelayData ( void  )
inline

Definition at line 130 of file L1CaloPprPhos4Shape.h.

◆ GetProcessedMaxPeakBin()

unsigned int L1CaloPprPhos4Shape::GetProcessedMaxPeakBin ( void  )
inline

Definition at line 128 of file L1CaloPprPhos4Shape.h.

128 {return m_processed_maxPeakBin;};

◆ GetProcessedMaxPeakValue()

float L1CaloPprPhos4Shape::GetProcessedMaxPeakValue ( void  )
inline

Definition at line 129 of file L1CaloPprPhos4Shape.h.

129 {return m_processed_maxPeakValue;};

◆ GetProcessedSignalShape()

TH1F* L1CaloPprPhos4Shape::GetProcessedSignalShape ( void  )
inline

Definition at line 127 of file L1CaloPprPhos4Shape.h.

127 {return m_processed_signalShape;};

◆ GetRawFit()

TF1* L1CaloPprPhos4Shape::GetRawFit ( void  )
inline

Definition at line 125 of file L1CaloPprPhos4Shape.h.

125 {return m_raw_fit;};

◆ GetRawFitFullDelayData()

unsigned int L1CaloPprPhos4Shape::GetRawFitFullDelayData ( void  )
inline

Definition at line 122 of file L1CaloPprPhos4Shape.h.

122 {return m_raw_fitFullDelayData;};

◆ GetRawFitPeakBin()

unsigned int L1CaloPprPhos4Shape::GetRawFitPeakBin ( void  )
inline

Definition at line 120 of file L1CaloPprPhos4Shape.h.

120 {return m_raw_fitPeakBin;};

◆ GetRawFitPeakValue()

float L1CaloPprPhos4Shape::GetRawFitPeakValue ( void  )
inline

Definition at line 121 of file L1CaloPprPhos4Shape.h.

121 {return m_raw_fitPeakValue;};

◆ GetRawFitPerformed()

bool L1CaloPprPhos4Shape::GetRawFitPerformed ( void  )
inline

Definition at line 123 of file L1CaloPprPhos4Shape.h.

123 {return m_raw_fitPerformed;};

◆ GetRawMaxFullDelayData()

unsigned int L1CaloPprPhos4Shape::GetRawMaxFullDelayData ( void  )
inline

Definition at line 119 of file L1CaloPprPhos4Shape.h.

119 {return m_raw_maxFullDelayData;};

◆ GetRawMaxPeakBin()

unsigned int L1CaloPprPhos4Shape::GetRawMaxPeakBin ( void  )
inline

Definition at line 117 of file L1CaloPprPhos4Shape.h.

117 {return m_raw_maxPeakBin;};

◆ GetRawMaxPeakValue()

float L1CaloPprPhos4Shape::GetRawMaxPeakValue ( void  )
inline

Definition at line 118 of file L1CaloPprPhos4Shape.h.

118 {return m_raw_maxPeakValue;};

◆ GetRawPhos4Setting()

unsigned int L1CaloPprPhos4Shape::GetRawPhos4Setting ( void  )
inline

Definition at line 138 of file L1CaloPprPhos4Shape.h.

138 {return ((m_processed_maxPeakBin - 1) % 25);};

◆ GetRawSignalShape()

TProfile* L1CaloPprPhos4Shape::GetRawSignalShape ( void  )
inline

Definition at line 116 of file L1CaloPprPhos4Shape.h.

116 {return m_raw_signalShape;};

◆ GetRisingSlopeMean()

float L1CaloPprPhos4Shape::GetRisingSlopeMean ( void  )
inline

Definition at line 148 of file L1CaloPprPhos4Shape.h.

148 {return m_risingSlopeMean;};

◆ GetRisingSlopeSigma()

float L1CaloPprPhos4Shape::GetRisingSlopeSigma ( void  )
inline

Definition at line 149 of file L1CaloPprPhos4Shape.h.

149 {return m_risingSlopeSigma;};

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40 {
42  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ IsEnabled()

bool L1CaloPprPhos4Shape::IsEnabled ( void  )
inline

Definition at line 162 of file L1CaloPprPhos4Shape.h.

162 {return m_isEnabled;};

◆ IsProcessed()

bool L1CaloPprPhos4Shape::IsProcessed ( void  )
inline

Definition at line 165 of file L1CaloPprPhos4Shape.h.

165 {return m_processSignalShape;};

◆ IsSignalPresent()

bool L1CaloPprPhos4Shape::IsSignalPresent ( TH1 histo,
const unsigned int  threshold 
) const
private

Definition at line 440 of file L1CaloPprPhos4Shape.cxx.

440  {
441  for(unsigned int bin=1;bin<=(unsigned int)histo->GetNbinsX();++bin){
442  if(histo->GetBinContent(bin) > threshold){
443  return true;
444  }
445  }
446  return false;
447 }

◆ IsSignalSaturated()

bool L1CaloPprPhos4Shape::IsSignalSaturated ( TH1 histo,
const unsigned int  saturationPoint 
) const
private

Definition at line 450 of file L1CaloPprPhos4Shape.cxx.

450  {
451  for(unsigned int bin=1;bin<=(unsigned int)histo->GetNbinsX();++bin){
452  if(histo->GetBinContent(bin) >= saturationPoint){
453  return true;
454  }
455  }
456  return false;
457 }

◆ IsValidChannel()

bool L1CaloPprPhos4Shape::IsValidChannel ( void  )
inline

Definition at line 159 of file L1CaloPprPhos4Shape.h.

159 {return m_isValid;};

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 164 of file AthMessaging.h.

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level  lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 179 of file AthMessaging.h.

180 { return msg() << lvl; }

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152 {
153  if (!m_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ operator=()

void L1CaloPprPhos4Shape::operator= ( const L1CaloPprPhos4Shape rhs)
private

◆ SetCurrentFullDelayData()

void L1CaloPprPhos4Shape::SetCurrentFullDelayData ( unsigned int  delay)
inline

Definition at line 156 of file L1CaloPprPhos4Shape.h.

◆ SetEnabled()

void L1CaloPprPhos4Shape::SetEnabled ( bool  enabled)
inline

Definition at line 163 of file L1CaloPprPhos4Shape.h.

163 {m_isEnabled = enabled;};

◆ SetEta()

void L1CaloPprPhos4Shape::SetEta ( const float  eta)
inline

Definition at line 101 of file L1CaloPprPhos4Shape.h.

101 {m_eta = eta;};

◆ SetL1aFadcSlice()

void L1CaloPprPhos4Shape::SetL1aFadcSlice ( unsigned int  slice)
inline

Definition at line 143 of file L1CaloPprPhos4Shape.h.

143 {m_l1aFadcSlice = slice;};

◆ SetLayer()

void L1CaloPprPhos4Shape::SetLayer ( const CaloLayer  layer)
inline

Definition at line 107 of file L1CaloPprPhos4Shape.h.

107 {m_layer = layer;};

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level  lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29 {
30  m_lvl = lvl;
31 }

◆ SetMinimumSignalHeight()

void L1CaloPprPhos4Shape::SetMinimumSignalHeight ( const unsigned int  min)
inline

Definition at line 98 of file L1CaloPprPhos4Shape.h.

◆ SetPedValue()

void L1CaloPprPhos4Shape::SetPedValue ( unsigned int  value)
inline

Definition at line 142 of file L1CaloPprPhos4Shape.h.

142 {m_pedValue = value;};

◆ SetPhi()

void L1CaloPprPhos4Shape::SetPhi ( const float  phi)
inline

Definition at line 104 of file L1CaloPprPhos4Shape.h.

104 {m_phi = phi;};

◆ SetValidChannel()

void L1CaloPprPhos4Shape::SetValidChannel ( bool  validity)
inline

Definition at line 160 of file L1CaloPprPhos4Shape.h.

160 {m_isValid = validity;};

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_coolId

L1CaloCoolChannelId L1CaloPprPhos4Shape::m_coolId
private

Definition at line 176 of file L1CaloPprPhos4Shape.h.

◆ m_currentFullDelayData

unsigned int L1CaloPprPhos4Shape::m_currentFullDelayData
private

Definition at line 184 of file L1CaloPprPhos4Shape.h.

◆ m_errorCode

ChanCalibErrorCode L1CaloPprPhos4Shape::m_errorCode
private

Definition at line 188 of file L1CaloPprPhos4Shape.h.

◆ m_eta

float L1CaloPprPhos4Shape::m_eta
private

Definition at line 177 of file L1CaloPprPhos4Shape.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_isEnabled

bool L1CaloPprPhos4Shape::m_isEnabled
private

Definition at line 182 of file L1CaloPprPhos4Shape.h.

◆ m_isValid

bool L1CaloPprPhos4Shape::m_isValid
private

Definition at line 181 of file L1CaloPprPhos4Shape.h.

◆ m_l1aFadcSlice

unsigned int L1CaloPprPhos4Shape::m_l1aFadcSlice
private

Definition at line 186 of file L1CaloPprPhos4Shape.h.

◆ m_layer

CaloLayer L1CaloPprPhos4Shape::m_layer
private

Definition at line 179 of file L1CaloPprPhos4Shape.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

◆ m_minSignalHeight

unsigned int L1CaloPprPhos4Shape::m_minSignalHeight
private

Definition at line 174 of file L1CaloPprPhos4Shape.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_pedCorrectionMean

std::vector<float> L1CaloPprPhos4Shape::m_pedCorrectionMean
private

Definition at line 209 of file L1CaloPprPhos4Shape.h.

◆ m_pedCorrectionN

std::vector<unsigned int> L1CaloPprPhos4Shape::m_pedCorrectionN
private

Definition at line 208 of file L1CaloPprPhos4Shape.h.

◆ m_pedCorrectionSigma

std::vector<float> L1CaloPprPhos4Shape::m_pedCorrectionSigma
private

Definition at line 210 of file L1CaloPprPhos4Shape.h.

◆ m_pedCorrectionSum

std::vector<unsigned int> L1CaloPprPhos4Shape::m_pedCorrectionSum
private

Definition at line 206 of file L1CaloPprPhos4Shape.h.

◆ m_pedCorrectionSum2

std::vector<unsigned int> L1CaloPprPhos4Shape::m_pedCorrectionSum2
private

Definition at line 207 of file L1CaloPprPhos4Shape.h.

◆ m_pedValue

unsigned int L1CaloPprPhos4Shape::m_pedValue
private

Definition at line 185 of file L1CaloPprPhos4Shape.h.

◆ m_phi

float L1CaloPprPhos4Shape::m_phi
private

Definition at line 178 of file L1CaloPprPhos4Shape.h.

◆ m_processed_fit

TF1* L1CaloPprPhos4Shape::m_processed_fit
private

Definition at line 221 of file L1CaloPprPhos4Shape.h.

◆ m_processed_fitFullDelayData

unsigned int L1CaloPprPhos4Shape::m_processed_fitFullDelayData
private

Definition at line 218 of file L1CaloPprPhos4Shape.h.

◆ m_processed_fitPeakBin

unsigned int L1CaloPprPhos4Shape::m_processed_fitPeakBin
private

Definition at line 217 of file L1CaloPprPhos4Shape.h.

◆ m_processed_fitPeakValue

float L1CaloPprPhos4Shape::m_processed_fitPeakValue
private

Definition at line 216 of file L1CaloPprPhos4Shape.h.

◆ m_processed_fitPerformed

bool L1CaloPprPhos4Shape::m_processed_fitPerformed
private

Definition at line 219 of file L1CaloPprPhos4Shape.h.

◆ m_processed_maxFullDelayData

unsigned int L1CaloPprPhos4Shape::m_processed_maxFullDelayData
private

Definition at line 215 of file L1CaloPprPhos4Shape.h.

◆ m_processed_maxPeakBin

unsigned int L1CaloPprPhos4Shape::m_processed_maxPeakBin
private

Definition at line 214 of file L1CaloPprPhos4Shape.h.

◆ m_processed_maxPeakValue

float L1CaloPprPhos4Shape::m_processed_maxPeakValue
private

Definition at line 213 of file L1CaloPprPhos4Shape.h.

◆ m_processed_signalShape

TH1F* L1CaloPprPhos4Shape::m_processed_signalShape
private

Definition at line 212 of file L1CaloPprPhos4Shape.h.

◆ m_processSignalShape

bool L1CaloPprPhos4Shape::m_processSignalShape
private

Definition at line 226 of file L1CaloPprPhos4Shape.h.

◆ m_raw_fit

TF1* L1CaloPprPhos4Shape::m_raw_fit
private

Definition at line 201 of file L1CaloPprPhos4Shape.h.

◆ m_raw_fitFullDelayData

unsigned int L1CaloPprPhos4Shape::m_raw_fitFullDelayData
private

Definition at line 198 of file L1CaloPprPhos4Shape.h.

◆ m_raw_fitPeakBin

unsigned int L1CaloPprPhos4Shape::m_raw_fitPeakBin
private

Definition at line 197 of file L1CaloPprPhos4Shape.h.

◆ m_raw_fitPeakValue

float L1CaloPprPhos4Shape::m_raw_fitPeakValue
private

Definition at line 196 of file L1CaloPprPhos4Shape.h.

◆ m_raw_fitPerformed

bool L1CaloPprPhos4Shape::m_raw_fitPerformed
private

Definition at line 199 of file L1CaloPprPhos4Shape.h.

◆ m_raw_maxFullDelayData

unsigned int L1CaloPprPhos4Shape::m_raw_maxFullDelayData
private

Definition at line 195 of file L1CaloPprPhos4Shape.h.

◆ m_raw_maxPeakBin

unsigned int L1CaloPprPhos4Shape::m_raw_maxPeakBin
private

Definition at line 194 of file L1CaloPprPhos4Shape.h.

◆ m_raw_maxPeakValue

float L1CaloPprPhos4Shape::m_raw_maxPeakValue
private

Definition at line 193 of file L1CaloPprPhos4Shape.h.

◆ m_raw_signalShape

TProfile* L1CaloPprPhos4Shape::m_raw_signalShape
private

Definition at line 192 of file L1CaloPprPhos4Shape.h.

◆ m_rawPedestalMean

float L1CaloPprPhos4Shape::m_rawPedestalMean
private

Definition at line 203 of file L1CaloPprPhos4Shape.h.

◆ m_rawPedestalSigma

float L1CaloPprPhos4Shape::m_rawPedestalSigma
private

Definition at line 204 of file L1CaloPprPhos4Shape.h.

◆ m_risingSlopeMean

float L1CaloPprPhos4Shape::m_risingSlopeMean
private

Definition at line 223 of file L1CaloPprPhos4Shape.h.

◆ m_risingSlopeSigma

float L1CaloPprPhos4Shape::m_risingSlopeSigma
private

Definition at line 224 of file L1CaloPprPhos4Shape.h.

◆ MAX_ADC_TIME_SLICES

const unsigned int L1CaloPprPhos4Shape::MAX_ADC_TIME_SLICES = 15
staticprivate

Definition at line 229 of file L1CaloPprPhos4Shape.h.

◆ MAX_PEDESTAL_SIGMA

const unsigned int L1CaloPprPhos4Shape::MAX_PEDESTAL_SIGMA = 4
staticprivate

Definition at line 233 of file L1CaloPprPhos4Shape.h.

◆ NANOSEC_PER_LHC_CLOCK_TICK

const unsigned int L1CaloPprPhos4Shape::NANOSEC_PER_LHC_CLOCK_TICK = 25
staticprivate

Definition at line 230 of file L1CaloPprPhos4Shape.h.

◆ SATURATED_ADC

const unsigned int L1CaloPprPhos4Shape::SATURATED_ADC = 1000
staticprivate

Definition at line 235 of file L1CaloPprPhos4Shape.h.


The documentation for this class was generated from the following files:
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
L1CaloPprPhos4Shape::m_processed_maxFullDelayData
unsigned int m_processed_maxFullDelayData
Definition: L1CaloPprPhos4Shape.h:215
base
std::string base
Definition: hcg.cxx:78
ChanCalibErrorCode::phos4ScanSignalSaturated
bool phos4ScanSignalSaturated() const
Definition: ChanCalibErrorCode.h:156
L1CaloPprPhos4Shape::m_raw_maxFullDelayData
unsigned int m_raw_maxFullDelayData
Definition: L1CaloPprPhos4Shape.h:195
L1CaloPprPhos4Shape::FillErrorCode
void FillErrorCode(bool signalIsPresent, bool signalIsSaturated)
Definition: L1CaloPprPhos4Shape.cxx:373
L1CaloPprPhos4Shape::m_processSignalShape
bool m_processSignalShape
Definition: L1CaloPprPhos4Shape.h:226
ChanCalibErrorCode::phos4ScanNoSignal
bool phos4ScanNoSignal() const
Definition: ChanCalibErrorCode.h:138
L1CaloPprPhos4Shape::m_processed_maxPeakBin
unsigned int m_processed_maxPeakBin
Definition: L1CaloPprPhos4Shape.h:214
L1CaloPprPhos4Shape::m_minSignalHeight
unsigned int m_minSignalHeight
Definition: L1CaloPprPhos4Shape.h:174
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
L1CaloPprPhos4Shape::m_processed_signalShape
TH1F * m_processed_signalShape
Definition: L1CaloPprPhos4Shape.h:212
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
L1CaloPprPhos4Shape::m_l1aFadcSlice
unsigned int m_l1aFadcSlice
Definition: L1CaloPprPhos4Shape.h:186
L1CaloPprPhos4Shape::m_coolId
L1CaloCoolChannelId m_coolId
Definition: L1CaloPprPhos4Shape.h:176
L1CaloPprPhos4Shape::m_isValid
bool m_isValid
Definition: L1CaloPprPhos4Shape.h:181
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
L1CaloPprPhos4Shape::m_rawPedestalSigma
float m_rawPedestalSigma
Definition: L1CaloPprPhos4Shape.h:204
ChanCalibErrorCode::phos4ScanBadSignal
bool phos4ScanBadSignal() const
Definition: ChanCalibErrorCode.h:141
L1CaloPprPhos4Shape::m_processed_fit
TF1 * m_processed_fit
Definition: L1CaloPprPhos4Shape.h:221
L1CaloPprPhos4Shape::m_pedValue
unsigned int m_pedValue
Definition: L1CaloPprPhos4Shape.h:185
L1CaloPprPhos4Shape::m_risingSlopeMean
float m_risingSlopeMean
Definition: L1CaloPprPhos4Shape.h:223
L1CaloPprPhos4Shape::m_currentFullDelayData
unsigned int m_currentFullDelayData
Definition: L1CaloPprPhos4Shape.h:184
bin
Definition: BinsDiffFromStripMedian.h:43
L1CaloPprPhos4Shape::NANOSEC_PER_LHC_CLOCK_TICK
static const unsigned int NANOSEC_PER_LHC_CLOCK_TICK
Definition: L1CaloPprPhos4Shape.h:230
athena.value
value
Definition: athena.py:122
L1CaloPprPhos4Shape::m_phi
float m_phi
Definition: L1CaloPprPhos4Shape.h:178
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
L1CaloPprPhos4Shape::m_processed_maxPeakValue
float m_processed_maxPeakValue
Definition: L1CaloPprPhos4Shape.h:213
L1CaloPprPhos4Shape::CalculatePedCorrection
void CalculatePedCorrection(void)
Definition: L1CaloPprPhos4Shape.cxx:344
L1CaloPprPhos4Shape::m_risingSlopeSigma
float m_risingSlopeSigma
Definition: L1CaloPprPhos4Shape.h:224
L1CaloPprPhos4Shape::CheckRisingSlope
void CheckRisingSlope(TH1 *histo, unsigned int peakBin, float peakValue)
Definition: L1CaloPprPhos4Shape.cxx:462
L1CaloPprPhos4Shape::LAYER_NOT_SET
@ LAYER_NOT_SET
Definition: L1CaloPprPhos4Shape.h:93
L1CaloPprPhos4Shape::IsSignalPresent
bool IsSignalPresent(TH1 *histo, const unsigned int threshold) const
Definition: L1CaloPprPhos4Shape.cxx:440
L1CaloPprPhos4Shape::IsSignalSaturated
bool IsSignalSaturated(TH1 *histo, const unsigned int saturationPoint) const
Definition: L1CaloPprPhos4Shape.cxx:450
AthMessaging::AthMessaging
AthMessaging()
Default constructor:
L1CaloPprPhos4Shape::m_raw_signalShape
TProfile * m_raw_signalShape
Definition: L1CaloPprPhos4Shape.h:192
L1CaloPprPhos4Shape::HAD
@ HAD
Definition: L1CaloPprPhos4Shape.h:95
L1CaloPprPhos4Shape::m_isEnabled
bool m_isEnabled
Definition: L1CaloPprPhos4Shape.h:182
L1CaloPprPhos4Shape::m_raw_maxPeakValue
float m_raw_maxPeakValue
Definition: L1CaloPprPhos4Shape.h:193
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
perfmonmt-refit.slice
slice
Definition: perfmonmt-refit.py:52
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
beamspotman.n
n
Definition: beamspotman.py:731
L1CaloPprPhos4Shape::m_raw_maxPeakBin
unsigned int m_raw_maxPeakBin
Definition: L1CaloPprPhos4Shape.h:194
CaloNoise_fillDB.dt
dt
Definition: CaloNoise_fillDB.py:58
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
L1CaloPprPhos4Shape::FitSignalPeak
TF1 * FitSignalPeak(TH1 *histo, const float maxPeakValue, const unsigned int maxPeakBin, const unsigned int pedestal, float &fitPeakValue, unsigned int &fitPeakBin)
Given a signal profile, this finds the maximum value and it's corresponding bin.
Definition: L1CaloPprPhos4Shape.cxx:226
L1CaloCoolChannelId::id
unsigned int id() const
Definition: L1CaloCoolChannelId.h:32
L1CaloPprPhos4Shape::MAX_PEDESTAL_SIGMA
static const unsigned int MAX_PEDESTAL_SIGMA
Definition: L1CaloPprPhos4Shape.h:233
delay
double delay(std::size_t d)
Definition: JetTrigTimerTest.cxx:14
L1CaloPprPhos4Shape::m_errorCode
ChanCalibErrorCode m_errorCode
Definition: L1CaloPprPhos4Shape.h:188
L1CaloPprPhos4Shape::m_processed_fitPerformed
bool m_processed_fitPerformed
Definition: L1CaloPprPhos4Shape.h:219
ChanCalibErrorCode::errorCode
unsigned int errorCode(ChanErrorComponent component) const
Definition: ChanCalibErrorCode.cxx:34
TH1F::SetBinContent
void SetBinContent(int, double)
Definition: rootspy.cxx:327
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
MuonValidation_CreateResolutionProfiles.fit
def fit(h, emin, emax)
Definition: MuonValidation_CreateResolutionProfiles.py:69
min
#define min(a, b)
Definition: cfImp.cxx:40
L1CaloPprPhos4Shape::m_layer
CaloLayer m_layer
Definition: L1CaloPprPhos4Shape.h:179
L1CaloPprPhos4Shape::m_raw_fitPerformed
bool m_raw_fitPerformed
Definition: L1CaloPprPhos4Shape.h:199
L1CaloPprPhos4Shape::m_pedCorrectionMean
std::vector< float > m_pedCorrectionMean
Definition: L1CaloPprPhos4Shape.h:209
plotBeamSpotVxVal.bin
int bin
Definition: plotBeamSpotVxVal.py:83
L1CaloPprPhos4Shape::EM
@ EM
Definition: L1CaloPprPhos4Shape.h:94
L1CaloPprPhos4Shape::GetPlotTitle
std::string GetPlotTitle(const std::string &base, const L1CaloCoolChannelId &coolId) const
Definition: L1CaloPprPhos4Shape.cxx:503
L1CaloPprPhos4Shape::m_raw_fit
TF1 * m_raw_fit
Definition: L1CaloPprPhos4Shape.h:201
L1CaloPprPhos4Shape::m_processed_fitPeakValue
float m_processed_fitPeakValue
Definition: L1CaloPprPhos4Shape.h:216
LandGaussFunc
Definition: L1CaloPprPhos4Shape.h:254
TProfile::Fill
int Fill(double, double)
Definition: rootspy.cxx:523
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
L1CaloPprPhos4Shape::FindBinWithMaxValue
void FindBinWithMaxValue(TH1 *histo, float &peakValue, unsigned int &peakBin)
Given a signal profile, this finds the maximum value and it's corresponding bin.
Definition: L1CaloPprPhos4Shape.cxx:214
L1CaloPprPhos4Shape::CoolIdToString
std::string CoolIdToString(const L1CaloCoolChannelId &coolId) const
Definition: L1CaloPprPhos4Shape.cxx:508
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
L1CaloPprPhos4Shape::CalculateFullDelayData
unsigned int CalculateFullDelayData(const int truePeakPosition)
Definition: L1CaloPprPhos4Shape.cxx:352
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
L1CaloPprPhos4Shape::CalculatePedestal
void CalculatePedestal(TH1 *histo, float &pedMean, float &pedSigma)
Definition: L1CaloPprPhos4Shape.cxx:292
L1CaloPprPhos4Shape::CorrectRawPedestal
void CorrectRawPedestal(void)
Definition: L1CaloPprPhos4Shape.cxx:312
L1CaloPprPhos4Shape::m_raw_fitFullDelayData
unsigned int m_raw_fitFullDelayData
Definition: L1CaloPprPhos4Shape.h:198
L1CaloPprPhos4Shape::m_raw_fitPeakBin
unsigned int m_raw_fitPeakBin
Definition: L1CaloPprPhos4Shape.h:197
LArCellBinning.step
step
Definition: LArCellBinning.py:158
L1CaloPprPhos4Shape::m_eta
float m_eta
Definition: L1CaloPprPhos4Shape.h:177
L1CaloPprPhos4Shape::m_raw_fitPeakValue
float m_raw_fitPeakValue
Definition: L1CaloPprPhos4Shape.h:196
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132
plotBeamSpotCompare.histo
histo
Definition: plotBeamSpotCompare.py:415
L1CaloPprPhos4Shape::m_pedCorrectionN
std::vector< unsigned int > m_pedCorrectionN
Definition: L1CaloPprPhos4Shape.h:208
error
Definition: IImpactPoint3dEstimator.h:70
ChanCalibErrorCode::badData
bool badData() const
Definition: ChanCalibErrorCode.h:111
L1CaloPprPhos4Shape::m_processed_fitPeakBin
unsigned int m_processed_fitPeakBin
Definition: L1CaloPprPhos4Shape.h:217
L1CaloPprPhos4Shape::m_pedCorrectionSum2
std::vector< unsigned int > m_pedCorrectionSum2
Definition: L1CaloPprPhos4Shape.h:207
L1CaloPprPhos4Shape::m_rawPedestalMean
float m_rawPedestalMean
Definition: L1CaloPprPhos4Shape.h:203
dumpTgcDigiThreshold.threshold
list threshold
Definition: dumpTgcDigiThreshold.py:34
readCCLHist.float
float
Definition: readCCLHist.py:83
L1CaloPprPhos4Shape::m_pedCorrectionSigma
std::vector< float > m_pedCorrectionSigma
Definition: L1CaloPprPhos4Shape.h:210
L1CaloPprPhos4Shape::MAX_ADC_TIME_SLICES
static const unsigned int MAX_ADC_TIME_SLICES
Definition: L1CaloPprPhos4Shape.h:229
L1CaloPprPhos4Shape::m_processed_fitFullDelayData
unsigned int m_processed_fitFullDelayData
Definition: L1CaloPprPhos4Shape.h:218
L1CaloPprPhos4Shape::GetPlotName
std::string GetPlotName(const std::string &base, const L1CaloCoolChannelId &coolId) const
Definition: L1CaloPprPhos4Shape.cxx:498
L1CaloPprPhos4Shape::m_pedCorrectionSum
std::vector< unsigned int > m_pedCorrectionSum
Definition: L1CaloPprPhos4Shape.h:206
TProfile::GetBinContent
double GetBinContent(int) const
Definition: rootspy.cxx:527