ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Attributes | List of all members
LArSamples::DigitMonitor Class Reference

storage of the time histories of all the cells More...

#include <DigitMonitor.h>

Inheritance diagram for LArSamples::DigitMonitor:
Collaboration diagram for LArSamples::DigitMonitor:

Public Member Functions

 DigitMonitor (const Interface &interface)
 Constructor
More...
 
TH1D * chi2Dist (const TString &name, int nBins, double max, double kFactor=0, double fitMax=-1, int lwb=-1, int upb=-1, unsigned int chi2Pars=DefaultChi2, ShapeErrorType shapeErrorType=BestShapeError, unsigned int nDof=0) const
 
TH1D * bestChi2Dist (const TString &name, int nBins, double max, double refErrMin, double refErrMax, unsigned int refErrNBins, int lwb=-1, int upb=-1, unsigned int chi2Pars=DefaultChi2, unsigned int nDof=0) const
 
TH1D * gainDist (const TString &name) const
 
TH1D * layerDist (const TString &name) const
 
TH1D * energyDist (const TString &name, int nBins, double eMax=10000) const
 
TH1D * timeDist (const TString &name, int nBins, double tMin=-25, double tMax=25) const
 
TH1D * adcMaxDist (const TString &name, int nBins, double aMin=0, double aMax=4096) const
 
TH1D * noiseDist (const TString &name, int nBins, double max) const
 
TH2D * maxValueMap (TString name, PartitionId partition) const
 
TH2D * minValueMap (TString name, PartitionId partition) const
 
TH1D * residualDist (unsigned int k, const TString &name, int nBins, double rMin, double rMax, bool norm=false) const
 
bool residualPlots (CaloId calo, unsigned int layer, CaloGain::CaloGain gain=CaloGain::LARHIGHGAIN, bool xip=false, bool ring=false, double lo=-0.05, double hi=0.05, const TString &fileName="residuals")
 
bool residualPlotsRingComp (CaloId calo, unsigned int layer, CaloGain::CaloGain gain=CaloGain::LARHIGHGAIN, bool xip=false, double lo=-0.05, double hi=0.05, const TString &fileName="residuals")
 
bool residualPlotsGainComp (CaloId calo, unsigned int layer, bool ring=false, bool xip=false, double lo=-0.05, double hi=0.05, const TString &fileName="residuals")
 
TH1D * shapeErrorDist (unsigned int k, const TString &name, int nBins, double rMin, double rMax, double mean=0) const
 
double residualCorr (unsigned int k1, unsigned int k2) const
 
bool makeResidualCorrections (const TString &outputFile, short resTrunc=-1, short timeTrunc=-1, double absResTrunc=-1, unsigned int minSize=0, bool weigh=false, bool adjust=false, bool zeroTime=false) const
 
ResidualsgetResiduals (unsigned int hash, CaloGain::CaloGain gain, double absResTrunc=-1, bool adjust=false, bool zeroTime=false) const
 
bool residualParams (int lwb, int upb, CovMatrix &k, TVectorD &means) const
 
CovMatrix kMatrix (int lwb, int upb)
 
TVectorD means (int lwb, int upb)
 
int combine (SimpleShape *&shape, SimpleShape *&ref, const TString &selection="", bool timeAligned=true) const
 
TH1D * dist (const DataFuncSet &func, const DataFuncArgs &args, const TString &name, int nBins, double xMin, double xMax, const TString &title="", const TString &xTitle="", const TString &yTitle="", const FilterParams &f=FilterParams()) const
 
TH2D * dist (const DataFuncSet &funcX, const DataFuncArgs &argsX, const DataFuncSet &funcY, const DataFuncArgs &argsY, const TString &name, int nBinsX, double xMin, double xMax, int nBinsY, double yMin, double yMax, const TString &title="", const TString &xTitle="", const TString &yTitle="", const FilterParams &f=FilterParams()) const
 
TH2D * partitionMap (const DataFuncSet &func, const DataFuncArgs &args, TString name, PartitionId partition, const TString &title="", CombinationType comb=AverageValue, const FilterParams &f=FilterParams()) const
 
TH2D * etaPhiMap (const DataFuncSet &func, const DataFuncArgs &args, const TString &name, CaloId calo, short layer, TString title="", CombinationType comb=AverageValue, const FilterParams &f=FilterParams()) const
 
bool prepareDumpParams (const TString &vars, int verbosity, std::vector< TString > &variables, std::vector< DataFuncSet > &funcs, std::vector< DataFuncArgs > &args, std::vector< TString > &formats, TString &locFormat, TString &locHeader, TString &varHeader) const
 
bool dump (const TString &vars, const FilterParams &f=FilterParams(), unsigned int verbosity=1) const
 
bool dump (const TString &vars, CombinationType comb=AverageValue, const FilterParams &f=FilterParams(), const TString &ranges="", unsigned int verbosity=1) const
 
bool statParams (const std::vector< DataFuncSet > &funcs, const std::vector< DataFuncArgs > &args, TVectorD &mean, TVectorD &meanErr, TMatrixD &covMatrix, TMatrixD &covMatrixErr, const FilterParams &f=FilterParams()) const
 
const Interfaceinterface () const
 
unsigned int nChannels () const
 
const HistorygetCellHistory (unsigned int i) const
 
const HistorygetSCHistory (unsigned int i) const
 
const CellInfogetCellInfo (unsigned int i) const
 
virtual const HistorynewCellHistory (unsigned int i) const
 
virtual const HistorycellHistory (unsigned int i) const
 
virtual const CellInfocellInfo (unsigned int i) const
 
virtual unsigned int nChannelsSC () const
 
virtual void resetCache () const
 
const CellInfocellInfoCache (unsigned int i) const
 
const Historypass (unsigned int i, const FilterParams &f) const
 
const HistorycellCache () const
 
unsigned int cachePos () const
 
void resetCellInfoCache ()
 

Static Public Member Functions

static TF1 * chi2Func (const char *name, double xMin, double xMax)
 
static TF1 * fitChi2 (TH1D &h, const char *name, double xMin, double xMax, double nDof=-1, double fitMin=Definitions::none, double fitMax=Definitions::none)
 
static double history_value (const History &history, const DataFuncSet &func, const DataFuncArgs &args, CombinationType comb, const FilterParams &f, unsigned int &nValues)
 
static DataFuncSet func (const TString &var)
 
static bool parseVariables (TString varStr, std::vector< TString > &vars, std::vector< DataFuncSet > &funcs, std::vector< DataFuncArgs > &args)
 
static TString str (CombinationType comb)
 

Static Public Attributes

static const int printPeriodicity = 10000
 

Private Attributes

const Interfacem_interface
 
unsigned int m_pos
 
const Historym_cellCache
 
std::vector< CellInfo * > m_cellInfoCache
 

Detailed Description

storage of the time histories of all the cells

Definition at line 28 of file DigitMonitor.h.

Constructor & Destructor Documentation

◆ DigitMonitor()

LArSamples::DigitMonitor::DigitMonitor ( const Interface interface)
inline

Constructor

Definition at line 34 of file DigitMonitor.h.

34 : MonitorBase(interface) { }

Member Function Documentation

◆ adcMaxDist()

TH1D * DigitMonitor::adcMaxDist ( const TString &  name,
int  nBins,
double  aMin = 0,
double  aMax = 4096 
) const

Definition at line 47 of file DigitMonitor.cxx.

48 { return dist(&Data::_adcMax, DataFuncArgs(), name, nBins, aMin, aMax, "ADCMax distribution", "ADCMax (counts)"); }

◆ bestChi2Dist()

TH1D * DigitMonitor::bestChi2Dist ( const TString &  name,
int  nBins,
double  max,
double  refErrMin,
double  refErrMax,
unsigned int  refErrNBins,
int  lwb = -1,
int  upb = -1,
unsigned int  chi2Pars = DefaultChi2,
unsigned int  nDof = 0 
) const

Definition at line 125 of file DigitMonitor.cxx.

128 {
129  TF1* fChi2 = chi2Func("fChi2", 0, max);
130  if (nDof > 0) fChi2->FixParameter(1, nDof);
131 
132  double delta = (refErrMax - refErrMin)/refErrNBins;
133  TH1D* fitResults = new TH1D("fitResults", "", refErrNBins, refErrMin - delta/2, refErrMax - delta/2);
134 
135  for (unsigned int k = 0; k < refErrNBins; k++) {
136  double refErr = refErrMin + delta*k;
137  TH1D* h = new TH1D(name, "#chi^{2} distribution", nBins, 0, max);
138  UniformShapeErrorGetter kFactorGetter(refErr);
139  CombinedShapeErrorGetter shapeErrorGetter;
140  if (interface().shapeErrorGetter()) shapeErrorGetter.add(*interface().shapeErrorGetter());
141  shapeErrorGetter.add(kFactorGetter);
142  for (unsigned int i = 0; i < nChannels(); i++) {
143  const History* history = cellHistory(i);
144  if (!history) continue;
145  history->setShapeErrorGetter(&shapeErrorGetter);
146  for (unsigned int j = 0; j < history->nData(); j++) {
147  h->Fill(history->chi2(j, lwb, upb, chi2Pars));
148  }
149  }
150  h->Fit(fChi2);
151  fitResults->SetBinContent(k+1, fChi2->GetChisquare());
152  delete h;
153  }
154 
155  TF1* fPol2 = new TF1("fPol2", "[0]*(x - [1])*(x - [1]) + [2]", refErrMin, refErrMax);
156 
157  double center = fitResults->GetBinCenter(fitResults->GetMinimumBin());
158  fPol2->SetParameter(0, (fitResults->GetMaximum() - fitResults->GetMinimum())/center/center);
159  fPol2->SetParameter(1, center);
160  fPol2->SetParameter(2, fitResults->GetMinimum());
161 
162  fitResults->Draw();
163  fitResults->Fit(fPol2);
164 
165  TPaveText* p = new TPaveText(0.6, 0.85, 0.85, 0.65, "NDC");
166  p->AddText(Form("Fit k_{best} = %.1f%%", fPol2->GetParameter(1)*100));
167  p->AddText(Form("Fit #delta k_{best} = %.2f%%", 1/TMath::Sqrt(fPol2->GetParameter(0))*100));
168  p->AddText(Form("Fit #chi^{2}_{min} = %.2f", fPol2->GetParameter(2)));
169  p->Draw();
170 
171  return fitResults;
172 }

◆ cachePos()

unsigned int LArSamples::AbsLArCells::cachePos ( ) const
inlineinherited

Definition at line 48 of file AbsLArCells.h.

48 { return m_pos; }

◆ cellCache()

const History* LArSamples::AbsLArCells::cellCache ( ) const
inlineinherited

Definition at line 47 of file AbsLArCells.h.

47 { return m_cellCache; }

◆ cellHistory()

const History * AbsLArCells::cellHistory ( unsigned int  i) const
virtualinherited

Reimplemented in LArSamples::Interface.

Definition at line 59 of file AbsLArCells.cxx.

60 {
61  if (m_pos == i) return m_cellCache;
62  resetCache();
63  const History* history = newCellHistory(i);
64  if (!history) return nullptr;
65  m_cellCache = history;
66  m_pos = i;
67  return m_cellCache;
68 }

◆ cellInfo()

const CellInfo * AbsLArCells::cellInfo ( unsigned int  i) const
virtualinherited

Definition at line 71 of file AbsLArCells.cxx.

72 {
73  const CellInfo* info = cellInfoCache(i);
74  if (info) return (info->isValid() ? new CellInfo(*info) : nullptr);
75  info = getCellInfo(i);
76  if (info) m_cellInfoCache[i] = new CellInfo(*info, false);
77  //m_cellInfoCache[i] = (info ? new CellInfo(*info, false) : new CellInfo());
78  return info;
79 }

◆ cellInfoCache()

const CellInfo * AbsLArCells::cellInfoCache ( unsigned int  i) const
inherited

Definition at line 82 of file AbsLArCells.cxx.

83 {
84  return m_cellInfoCache[i];
85 }

◆ chi2Dist()

TH1D * DigitMonitor::chi2Dist ( const TString &  name,
int  nBins,
double  max,
double  kFactor = 0,
double  fitMax = -1,
int  lwb = -1,
int  upb = -1,
unsigned int  chi2Pars = DefaultChi2,
ShapeErrorType  shapeErrorType = BestShapeError,
unsigned int  nDof = 0 
) const

Definition at line 60 of file DigitMonitor.cxx.

63 {
64  TH1D* h = new TH1D(name, "#chi^{2} distribution", nBins, 0, max);
65  unsigned int nDofEff = 0, nDofLast = 0;
66  std::unique_ptr<UniformShapeErrorGetter> kFactorGetter;
67  std::unique_ptr<CombinedShapeErrorGetter> shapeErrorGetter;
68  if (kFactor > 0) {
69  kFactorGetter = std::make_unique<UniformShapeErrorGetter>(kFactor);
70  shapeErrorGetter = std::make_unique<CombinedShapeErrorGetter>();
71  if (interface().shapeErrorGetter()) shapeErrorGetter->add(*interface().shapeErrorGetter());
72  shapeErrorGetter->add(*kFactorGetter);
73  }
74  for (unsigned int i = 0; i < nChannels(); i++) {
75  if ((i+1) % 10000 == 0) cout << "Processing entry # " << i+1 << endl;
76  const History* history = cellHistory(i);
77  if (!history) continue;
78  if (shapeErrorGetter) history->setShapeErrorGetter(shapeErrorGetter.get()); // Do it at history level so it doesn't "stick" afterwards,,,
79  for (unsigned int j = 0; j < history->nData(); j++) {
80  h->Fill(history->chi2(j, lwb, upb, chi2Pars, shapeErrorType, &nDofEff));
81  if (nDofLast > 0 && nDofLast != nDofEff) cout << "WARNING @ hash = " << i << ", index = " << j << " : nDof varied from " << nDofLast << " to " << nDofEff << endl;
82  nDofLast = nDofEff;
83  }
84  }
85 
86  if (nDof > 0 && nDof != nDofEff) cout << "WARNING : fixing nDof = " << nDof << ", but computer nDofEff = " << nDofEff << endl;
87  h->Draw();
88  if (fitMax < 0) return h;
89  TF1* fChi2 = fitChi2(*h, "chi2", 0, max, nDof, 0, fitMax);
90  TPaveText* p = new TPaveText(0.6, 0.85, 0.85, 0.65, "NDC");
91  p->AddText(Form("k = %.1f%%", kFactor*100));
92  p->AddText(Form("Fit #chi^{2} = %.1f", fChi2->GetChisquare()));
93  p->AddText(Form("Fit nDOF = %.1f", fChi2->GetParameter(1)));
94  p->Draw();
95  return h;
96 }

◆ chi2Func()

TF1 * DigitMonitor::chi2Func ( const char *  name,
double  xMin,
double  xMax 
)
static

Definition at line 99 of file DigitMonitor.cxx.

100 {
101  TF1* fChi2 = new TF1(name, "[0]*TMath::Power(x/2, [1]/2)/x*TMath::Exp(-x/2)/TMath::Gamma([1]/2)", xMin, xMax);
102  fChi2->SetParameter(0, 100);
103  fChi2->SetParameter(1, 3);
104  fChi2->SetParLimits(1, 1, 7);
105  return fChi2;
106 }

◆ combine()

int DigitMonitor::combine ( SimpleShape *&  shape,
SimpleShape *&  ref,
const TString &  selection = "",
bool  timeAligned = true 
) const

Definition at line 522 of file DigitMonitor.cxx.

523 {
524  FilterParams f;
525  if (!f.set(selection)) return 0;
526  int n = 0;
527  pshape = pref = nullptr;
528  //don't change existing interface, use these internally
529  std::unique_ptr<SimpleShape> shape;
530  std::unique_ptr<SimpleShape> ref;
531  double maxSum = 0;
532 
533  for (unsigned int i = 0; i < nChannels(); i++) {
534  if ((i+1) % 50000 == 0) cout << "Cell # " << i+1 << "/" << nChannels() << endl;
535  const History* history = pass(i, f);
536  if (!history) continue;
537  for (unsigned int j = 0; j < history->nData(); j++) {
538  if (!f.passEvent(*history->data(j))) continue;
539  maxSum += history->data(j)->maxValue();
540  cout << "Adding pulse (" << n+1 << ") at hash " << i << ", index " << j << ", max = " << maxSum/(n+1) << endl;
541  //cout << i << " " << j << endl;
542  auto thisData = std::make_unique<SimpleShape>(*history->data(j));
543  auto thisRef = std::unique_ptr<SimpleShape>(history->referenceShape(j));
544  if (timeAligned) {
545  if (!SimpleShape::scaleAndShift(thisData, 1, -history->data(j)->ofcTime())) return -1;
546  if (!SimpleShape::scaleAndShift(thisRef, 1, -history->data(j)->ofcTime())) return -1;
547  }
548  if (!SimpleShape::add(shape, *thisData)) return -1;
549  if (!SimpleShape::add(ref, *thisRef)) return -1;
550  n++;
551  }
552  }
553 
554  if (n==0) return -1;
555  if (!SimpleShape::scaleAndShift(shape, 1.0/n)) return -1;
556  if (!SimpleShape::scaleAndShift(ref, 1.0/n)) return -1;
557  //hand these back in existing interface
558  pshape = shape.release();
559  pref = ref.release();
560  return n;
561 }

◆ dist() [1/2]

TH1D * MonitorBase::dist ( const DataFuncSet func,
const DataFuncArgs args,
const TString &  name,
int  nBins,
double  xMin,
double  xMax,
const TString &  title = "",
const TString &  xTitle = "",
const TString &  yTitle = "",
const FilterParams f = FilterParams() 
) const
inherited

Definition at line 69 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

72 {
73  TH1D* h = new TH1D(name, title, nBins, xMin, xMax);
74  if (xTitle != "") h->GetXaxis()->SetTitle(xTitle);
75  if (yTitle != "") h->GetYaxis()->SetTitle(yTitle);
76  for (unsigned int i = 0; i < m_interface->nChannels(); i++) {
77  if ((i+1) % printPeriodicity == 0) cout << "Cell # " << i+1 << "/" << m_interface->nChannels() << endl;
78  const History* history = pass(i, f);
79  if (!history) continue;
80  for (unsigned int j = 0; j < history->nData(); j++) {
81  if (!f.passEvent(*history->data(j))) continue;
82  h->Fill(func.val(*history->data(j), args));
83  }
84  }
85  return h;
86 }

◆ dist() [2/2]

TH2D * MonitorBase::dist ( const DataFuncSet funcX,
const DataFuncArgs argsX,
const DataFuncSet funcY,
const DataFuncArgs argsY,
const TString &  name,
int  nBinsX,
double  xMin,
double  xMax,
int  nBinsY,
double  yMin,
double  yMax,
const TString &  title = "",
const TString &  xTitle = "",
const TString &  yTitle = "",
const FilterParams f = FilterParams() 
) const
inherited

Definition at line 89 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

96 {
97  TH2D* h = new TH2D(name, title, nBinsX, xMin, xMax, nBinsY, yMin, yMax);
98  if (xTitle != "") h->GetXaxis()->SetTitle(xTitle);
99  if (yTitle != "") h->GetYaxis()->SetTitle(yTitle);
100  for (unsigned int i = 0; i < m_interface->nChannels(); i++) {
101  if ((i+1) % printPeriodicity == 0) cout << "Cell # " << i+1 << "/" << m_interface->nChannels() << endl;
102  const History* history = pass(i, f);
103  if (!history) continue;
104  for (unsigned int j = 0; j < history->nData(); j++) {
105  if (!f.passEvent(*history->data(j))) continue;
106  h->Fill(funcX.val(*history->data(j), argsX),
107  funcY.val(*history->data(j), argsY));
108  }
109  }
110  return h;
111 }

◆ dump() [1/2]

bool MonitorBase::dump ( const TString &  vars,
CombinationType  comb = AverageValue,
const FilterParams f = FilterParams(),
const TString &  ranges = "",
unsigned int  verbosity = 1 
) const
inherited

Definition at line 317 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

319 {
320  std::vector<TString> variables, formats;
321  std::vector<DataFuncSet> funcs;
322  std::vector<DataFuncArgs> args;
323  TString locFormat, locHeader, varHeader;
324  if (!prepareDumpParams(vars, verbosity, variables, funcs, args,
325  formats, locFormat, locHeader, varHeader)) return false;
326 
327  std::vector<double> minVals, maxVals;
328  TObjArray* rangeList = ranges.Tokenize(":");
329  for (unsigned int k = 0; k < variables.size(); k++) {
330  TString range = (k < (unsigned int)rangeList->GetEntries() ? ((TObjString*)rangeList->At(k))->String() : "");
331  if (range == "") {
332  minVals.push_back(-DBL_MAX);
333  maxVals.push_back(+DBL_MAX);
334  continue;
335  }
336  TObjArray* minMaxList = range.Tokenize(",");
337  if (minMaxList->GetEntries() == 2) {
338  minVals.push_back(((TObjString*)minMaxList->At(0))->String().Atof());
339  maxVals.push_back(((TObjString*)minMaxList->At(1))->String().Atof());
340  }
341  else {
342  cout << "Invalid range specification " << range << endl;
343  return false;
344  }
345  delete minMaxList;
346  }
347  delete rangeList;
348 
349  TString header = locHeader + varHeader;
350  TString separator = "";
351  for (int i = 0; i < header.Length(); i++) separator += "-";
352  cout << separator << endl << header << endl << separator << endl;
353 
354  unsigned int nEntries = 0, nValues = 0;
355 
356  for (unsigned int i = 0; i < m_interface->nChannels(); i++) {
357  const History* history = pass(i, f);
358  if (!history) continue;
359  TString line = Form(locFormat, i, history->cellInfo()->location(verbosity).Data());
360  bool ok = true;
361  for (unsigned int k = 0; k < variables.size(); k++) {
362  double val = history_value(*history, funcs[k], args[k], comb, f, nValues);
363  if (nValues == 0 || val < minVals[k] || val >= maxVals[k]) { ok = false; break; }
364  line += Form(formats[k].Data(), val);
365  }
366  if (!ok) continue;
367  cout << line << endl;
368  nEntries++;
369  }
370  cout << nEntries << " entries selected" << endl;
371  return true;
372 }

◆ dump() [2/2]

bool MonitorBase::dump ( const TString &  vars,
const FilterParams f = FilterParams(),
unsigned int  verbosity = 1 
) const
inherited

Definition at line 284 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

285 {
286  std::vector<TString> variables, formats;
287  std::vector<DataFuncSet> funcs;
288  std::vector<DataFuncArgs> args;
289  TString locFormat, locHeader, varHeader;
290  if (!prepareDumpParams(vars, verbosity, variables, funcs, args,
291  formats, locFormat, locHeader, varHeader)) return false;
292  TString header = locHeader + " idx |" + varHeader;
293  TString separator = "";
294  for (int i = 0; i < header.Length(); i++) separator += "-";
295  cout << separator << endl << header << endl << separator << endl;
296 
297  unsigned int nEntries = 0;
298 
299  for (unsigned int i = 0; i < m_interface->nChannels(); i++) {
300  const History* history = pass(i, f);
301  if (!history) continue;
302  TString part1 = Form(locFormat, i, history->cellInfo()->location(verbosity).Data());
303  for (unsigned int j = 0; j < history->nData(); j++) {
304  if (!f.passEvent(*history->data(j))) continue;
305  TString line = part1 + Form(" %3d |", j);
306  for (unsigned int k = 0; k < variables.size(); k++)
307  line += Form(formats[k].Data(), funcs[k].val(*history->data(j), args[k]));
308  cout << line << endl;
309  nEntries++;
310  }
311  }
312  cout << nEntries << " entries selected" << endl;
313  return true;
314 }

◆ energyDist()

TH1D * DigitMonitor::energyDist ( const TString &  name,
int  nBins,
double  eMax = 10000 
) const

Definition at line 41 of file DigitMonitor.cxx.

42 {return dist(&Data::_energy, DataFuncArgs(), name, nBins, 0, eMax, "Energy distribution", "Energy (MeV)"); }

◆ etaPhiMap()

TH2D * MonitorBase::etaPhiMap ( const DataFuncSet func,
const DataFuncArgs args,
const TString &  name,
CaloId  calo,
short  layer,
TString  title = "",
CombinationType  comb = AverageValue,
const FilterParams f = FilterParams() 
) const
inherited

Definition at line 131 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

134 {
135  if (title == "") title = Form("%s %s (%s, layer %d)", name.Data(), str(comb).Data(), Id::str(calo).Data(), layer);
136  TH2D* h = Geo::etaPhiHist(calo, layer, name, title);
137  FilterParams ff(f);
138  ff.addCalo(calo);
139  ff.addLayer(layer);
140  unsigned int nValues = 0;
141  for (unsigned int i = 0; i < m_interface->nChannels(); i++) {
142  if ((i+1) % printPeriodicity == 0) cout << "Cell # " << i+1 << "/" << m_interface->nChannels() << endl;
143  const History* history = pass(i, ff);
144  if (!history) continue;
145  h->Fill(history->cellInfo()->eta(), history->cellInfo()->phi(),
146  history_value(*history, func, args, comb, f, nValues));
147  }
148  return h;
149 }

◆ fitChi2()

TF1 * DigitMonitor::fitChi2 ( TH1D &  h,
const char *  name,
double  xMin,
double  xMax,
double  nDof = -1,
double  fitMin = Definitions::none,
double  fitMax = Definitions::none 
)
static

Definition at line 109 of file DigitMonitor.cxx.

111 {
112  if (fitMin == Definitions::none) fitMin = xMin;
113  if (fitMax == Definitions::none) fitMin = xMax;
114 
115  TF1* fChi2 = chi2Func(name, xMin, xMax);
116  fChi2->SetParameter(0, 4*h.GetMaximum());
117  if (nDof > 0) fChi2->FixParameter(1, nDof);
118 
119  h.Fit(fChi2, "", "", fitMin, fitMax);
120  fChi2->SetRange(xMin, xMax);
121  return fChi2;
122 }

◆ func()

DataFuncSet MonitorBase::func ( const TString &  var)
staticinherited

Definition at line 431 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

432 {
433  if (var == "sample") return DataFuncSet(&Data::_sample);
434  if (var == "pedSubSample") return DataFuncSet(&Data::_pedestalSubstractedSample);
435  if (var == "energy") return DataFuncSet(&Data::_energy);
436  if (var == "adcMax") return DataFuncSet(&Data::_adcMax);
437  if (var == "adcMax_new") return DataFuncSet(&Data::_adcMax_new);
438  if (var == "gain") return DataFuncSet(&Data::_gain);
439  if (var == "peakSignif") return DataFuncSet(&Data::_peakSignif);
440  if (var == "energySignif") return DataFuncSet(&Data::_energySignif);
441  if (var == "ofcTime") return DataFuncSet(&Data::_ofcTime);
442  if (var == "sampleMax") return DataFuncSet(&Data::_maxValue);
443  if (var == "maxPosition") return DataFuncSet(&Data::_maxPosition);
444  if (var == "quality") return DataFuncSet(&Data::_quality);
445  if (var == "noise") return DataFuncSet(&Data::_noise);
446  if (var == "pedestal") return DataFuncSet(&Data::_pedestal);
447  if (var == "pedestalRMS") return DataFuncSet(&Data::_pedestalRMS);
448  if (var == "maxValue") return DataFuncSet(&Data::_maxValue);
449  if (var == "minValue") return DataFuncSet(&Data::_minValue);
450  if (var == "count") return DataFuncSet(&Data::_count);
451  if (var == "chi2") return DataFuncSet(&Data::_chi2);
452  if (var == "chi2_noCorr") return DataFuncSet(&Data::_chi2_noCorr);
453  if (var == "chi2_ringCorr") return DataFuncSet(&Data::_chi2_ringCorr);
454  if (var == "chi2_cellCorr") return DataFuncSet(&Data::_chi2_cellCorr);
455  if (var == "chi2_k") return DataFuncSet(&Data::_chi2_k);
456  if (var == "refitScale") return DataFuncSet(&Data::_refitScale);
457  if (var == "refitDeltaT") return DataFuncSet(&Data::_refitDeltaT);
458  if (var == "refitChi2") return DataFuncSet(&Data::_refitChi2);
459  if (var == "adjScale") return DataFuncSet(&Data::_adjScale);
460  if (var == "adjDeltaT") return DataFuncSet(&Data::_adjDeltaT);
461  if (var == "run") return DataFuncSet(&Data::_run);
462  if (var == "event") return DataFuncSet(&Data::_event);
463  if (var == "lumiBlock") return DataFuncSet(&Data::_lumiBlock);
464  if (var == "bunchId") return DataFuncSet(&Data::_bunchId);
465  if (var == "x") return DataFuncSet(&Data::_x);
466  if (var == "y") return DataFuncSet(&Data::_y);
467  if (var == "z") return DataFuncSet(&Data::_z);
468  if (var == "rt") return DataFuncSet(&Data::_rt);
469  if (var == "eta") return DataFuncSet(&Data::_eta);
470  if (var == "phi") return DataFuncSet(&Data::_phi);
471  if (var == "iEta") return DataFuncSet(&Data::_iEta);
472  if (var == "iPhi") return DataFuncSet(&Data::_iPhi);
473  if (var == "region") return DataFuncSet(&Data::_region);
474  if (var == "calo") return DataFuncSet(&Data::_calo);
475  if (var == "layer") return DataFuncSet(&Data::_layer);
476  if (var == "feedthrough") return DataFuncSet(&Data::_feedThrough);
477  if (var == "FT") return DataFuncSet(&Data::_feedThrough);
478  if (var == "slot") return DataFuncSet(&Data::_slot);
479  if (var == "channel") return DataFuncSet(&Data::_channel);
480  if (var == "ring") return DataFuncSet(&Data::_ring);
481  if (var == "index") return DataFuncSet(&Data::_index);
482  if (var == "hash") return DataFuncSet(&Data::_hash);
483  if (var == "nData") return DataFuncSet(&Data::_nData);
484  if (var == "timeNoTOF") return DataFuncSet(&Data::_timeNoTOF);
485  if (var == "timeForSplash1") return DataFuncSet(&Data::_timeForSplash1);
486  if (var == "timeForSplash2") return DataFuncSet(&Data::_timeForSplash2);
487  if (var == "delta") return DataFuncSet(&Data::_delta);
488  if (var == "residual") return DataFuncSet(&Data::_residual);
489  if (var == "residualOffset") return DataFuncSet(&Data::_residualOffset);
490  if (var == "resCorrN") return DataFuncSet(&Data::_resCorrN);
491  if (var == "xi") return DataFuncSet(&Data::_xi);
492  if (var == "xiCell") return DataFuncSet(&Data::_xiCell);
493  if (var == "xiRing") return DataFuncSet(&Data::_xiRing);
494  if (var == "xiNormCell") return DataFuncSet(&Data::_xiNormCell);
495  if (var == "xiNormRing") return DataFuncSet(&Data::_xiNormRing);
496  if (var == "xip") return DataFuncSet(&Data::_xip);
497  if (var == "residualError") return DataFuncSet(&Data::_residualError);
498  if (var == "ofcSigma") return DataFuncSet(&Data::_ofcSigma);
499  if (var == "ofcGamma") return DataFuncSet(&Data::_ofcGamma);
500  if (var == "normResidualOffset") return DataFuncSet(&Data::_normResidualOffset);
501  if (var == "normResidualError") return DataFuncSet(&Data::_normResidualError);
502  if (var == "pass") return DataFuncSet(&Data::_pass);
503  if (var == "goodForShapeCorr") return DataFuncSet(&Data::_goodForShapeCorr);
504  if (var == "upstreamE") return DataFuncSet(&Data::_upstreamE);
505  if (var == "upstreamERatio") return DataFuncSet(&Data::_upstreamERatio);
506  if (var == "chi2Anomaly") return DataFuncSet(&Data::_chi2Anomaly);
507  if (var == "timeECorr") return DataFuncSet(&Data::_timeECorr);
508 
509  return DataFuncSet();
510 }

◆ gainDist()

TH1D * DigitMonitor::gainDist ( const TString &  name) const

Definition at line 176 of file DigitMonitor.cxx.

177 {
178  TH1D* h = new TH1D(name, "gain distribution", 3, -0.5, 2.5);
179  h->GetXaxis()->SetBinLabel(1, "Low");
180  h->GetXaxis()->SetBinLabel(2, "Medium");
181  h->GetXaxis()->SetBinLabel(3, "High");
182  for (unsigned int i = 0; i < nChannels(); i++) {
183  const History* history = cellHistory(i);
184  if (!history) continue;
185  for (unsigned int j = 0; j < history->nData(); j++) h->Fill(history->data(j)->gain());
186  }
187  return h;
188 }

◆ getCellHistory()

const History * MonitorBase::getCellHistory ( unsigned int  i) const
virtualinherited

Implements LArSamples::AbsLArCells.

Definition at line 34 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

35 {
36  return interface().getCellHistory(i);
37 }

◆ getCellInfo()

const CellInfo * MonitorBase::getCellInfo ( unsigned int  i) const
virtualinherited

Reimplemented from LArSamples::AbsLArCells.

Definition at line 44 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

45 {
46  return interface().getCellInfo(i);
47 }

◆ getResiduals()

Residuals * DigitMonitor::getResiduals ( unsigned int  hash,
CaloGain::CaloGain  gain,
double  absResTrunc = -1,
bool  adjust = false,
bool  zeroTime = false 
) const

Definition at line 563 of file DigitMonitor.cxx.

564 {
565  const History* history = cellHistory(hash);
566  if (!history) return nullptr;
567  if (adjust) history = history->adjust();
568  Residuals* residuals = history->residuals(gain, absResTrunc, false, zeroTime);
569  if (adjust) delete history;
570  return residuals;
571 }

◆ getSCHistory()

const History * MonitorBase::getSCHistory ( unsigned int  i) const
virtualinherited

Implements LArSamples::AbsLArCells.

Definition at line 39 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

40 {
41  return interface().getSCHistory(i);
42 }

◆ history_value()

double MonitorBase::history_value ( const History history,
const DataFuncSet func,
const DataFuncArgs args,
CombinationType  comb,
const FilterParams f,
unsigned int &  nValues 
)
staticinherited

Definition at line 404 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

406 {
407  double val = 0, sum1 = 0, sum2 = 0;
408  nValues = 0;
409  if (comb == MaxValue) val = DBL_MIN;
410  if (comb == MinValue) val = DBL_MAX;
411  for (unsigned int j = 0; j < history.nData(); j++) {
412  if (!f.passEvent(*history.data(j))) continue;
413  double thisVal = func.val(*history.data(j), args);
414  nValues++;
415  switch (comb) {
416  case AverageValue : val += thisVal; break;
417  case MaxValue : if (thisVal > val) val = thisVal; break;
418  case MinValue : if (thisVal < val) val = thisVal; break;
419  case TotalValue : val += thisVal; break;
420  case RMSValue : sum1 += thisVal; sum2 += thisVal*thisVal; break;
421  }
422  }
423  if (comb == AverageValue && nValues > 0) val /= nValues;
424  if (comb == RMSValue)
425  val = (nValues > 0 ? TMath::Sqrt((sum2 - sum1*sum1/nValues)/nValues) : -1);
426  if (TMath::Abs(val) > 0.9*DBL_MAX) val = 0;
427  return val;
428 }

◆ interface()

const Interface& LArSamples::MonitorBase::interface ( ) const
inlineinherited

Definition at line 74 of file LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h.

74 { return *m_interface; }

◆ kMatrix()

CovMatrix LArSamples::DigitMonitor::kMatrix ( int  lwb,
int  upb 
)
inline

Definition at line 78 of file DigitMonitor.h.

78 { CovMatrix k; TVectorD means; residualParams(lwb, upb, k, means); return k; }

◆ layerDist()

TH1D * DigitMonitor::layerDist ( const TString &  name) const

Definition at line 191 of file DigitMonitor.cxx.

192 {
193  TH1D* h = new TH1D(name, "layer distribution", 4, -0.5, 3.5);
194  h->GetXaxis()->SetBinLabel(1, "PS");
195  h->GetXaxis()->SetBinLabel(2, "Strips");
196  h->GetXaxis()->SetBinLabel(3, "Middle");
197  h->GetXaxis()->SetBinLabel(4, "Back");
198  for (unsigned int i = 0; i < nChannels(); i++) {
199  const History* history = cellHistory(i);
200  if (!history) continue;
201  for (unsigned int j = 0; j < history->nData(); j++) h->Fill(history->cellInfo()->layer());
202  }
203  return h;
204 }

◆ makeResidualCorrections()

bool DigitMonitor::makeResidualCorrections ( const TString &  outputFile,
short  resTrunc = -1,
short  timeTrunc = -1,
double  absResTrunc = -1,
unsigned int  minSize = 0,
bool  weigh = false,
bool  adjust = false,
bool  zeroTime = false 
) const

Definition at line 574 of file DigitMonitor.cxx.

576 {
577  TreeShapeErrorGetter* shapeError = new TreeShapeErrorGetter(outputFile, true);
578  std::vector< std::vector<ResidualCalculator> > ringCalcs;
579  std::vector<ResidualCalculator> gainRingCalcs(Geo::nPhiRings());
580  for (unsigned int g = 0; g < CaloGain::LARNGAIN; g++) ringCalcs.push_back(gainRingCalcs);
581 
582  cout << "Processing cells" << endl;
583 
584  for (unsigned int i = 0; i < nChannels(); i++) {
585  if ((i+1) % 10000 == 0) cout << "Processing hash = " << (i+1) << endl;
586  for (unsigned int g = 0; g < CaloGain::LARNGAIN; g++) {
587  Residuals* residuals = getResiduals(i, (CaloGain::CaloGain)g, absResTrunc, adjust, zeroTime);
588  if (residuals && (resTrunc > 0 || timeTrunc > 0)) {
589  Residuals* truncated = residuals->truncate(resTrunc, timeTrunc);
590  delete residuals;
591  residuals = truncated;
592  }
593 
594  if (residuals && residuals->size() < minSize) {
595  delete residuals;
596  residuals = nullptr;
597  }
598 
599  ResidualCalculator* resCalc = nullptr;
600  if (residuals) {
601  resCalc = residuals->calculator(weigh);
602  delete residuals;
603  }
604 
605  if (!resCalc) {
607  continue;
608  }
609 
610  cout << i << " : Phi ring " << cellHistory(i)->cellInfo()->globalPhiRing() << " : adding " << resCalc->size() << endl;
611  shapeError->addCell(*resCalc, (CaloGain::CaloGain)g);
612  ringCalcs[g][cellHistory(i)->cellInfo()->globalPhiRing()].append(*resCalc);
613  if (cellHistory(i)->cellInfo()->globalPhiRing() == 1142) cout << ringCalcs[g][cellHistory(i)->cellInfo()->globalPhiRing()].regresser()->mean(0) << endl;
614  delete resCalc;
615  }
616  }
617 
618  cout << "Processing phi-symmetric data" << endl;
619 
620  for (unsigned int g = 0; g < CaloGain::LARNGAIN; g++) {
621  for (short i = 0; i < Geo::nPhiRings(); i++) {
622  if (ringCalcs[g][i].size() > 0)
623  cout << "Saving data for gain " << g << ", phi ring " << i << ", n = " << ringCalcs[g][i].size() << ", range = " << ringCalcs[g][i].rangeStr() << endl;
624  shapeError->addRing(ringCalcs[g][i], (CaloGain::CaloGain)g);
625  }
626  }
627 
628  cout << "Done!" << endl;
629 
630  delete shapeError;
631  return true;
632 }

◆ maxValueMap()

TH2D * DigitMonitor::maxValueMap ( TString  name,
PartitionId  partition 
) const

Definition at line 53 of file DigitMonitor.cxx.

54 { return partitionMap(&Data::_maxValue, DataFuncArgs(), std::move(name), partition, "Max sample value (ADC counts)", MaxValue); }

◆ means()

TVectorD LArSamples::DigitMonitor::means ( int  lwb,
int  upb 
)
inline

Definition at line 79 of file DigitMonitor.h.

79 { CovMatrix k; TVectorD means; residualParams(lwb, upb, k, means); return means; }

◆ minValueMap()

TH2D * DigitMonitor::minValueMap ( TString  name,
PartitionId  partition 
) const

Definition at line 56 of file DigitMonitor.cxx.

57 { return partitionMap(&Data::_minValue, DataFuncArgs(), std::move(name), partition, "Min sample value (ADC counts)", MinValue); }

◆ nChannels()

unsigned int MonitorBase::nChannels ( ) const
virtualinherited

Reimplemented from LArSamples::AbsLArCells.

Definition at line 50 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

51 {
52  return interface().nChannels();
53 }

◆ nChannelsSC()

virtual unsigned int LArSamples::AbsLArCells::nChannelsSC ( ) const
inlinevirtualinherited

Definition at line 35 of file AbsLArCells.h.

35 { return Definitions::nChannelsSC; }

◆ newCellHistory()

const History * AbsLArCells::newCellHistory ( unsigned int  i) const
virtualinherited

Definition at line 44 of file AbsLArCells.cxx.

45 {
46  const History* history = getCellHistory(i);
47  if (!history) return nullptr;
48  if (!m_cellInfoCache[i]) {
49  const CellInfo* ci=history->cellInfo();
50  if (ci) {
51  m_cellInfoCache[i]=new CellInfo(*ci,false);
52  }
53  }
54  // m_cellInfoCache[i] = (history->cellInfo() ? new CellInfo(*history->cellInfo(), false) : new CellInfo());
55  return history;
56 }

◆ noiseDist()

TH1D * DigitMonitor::noiseDist ( const TString &  name,
int  nBins,
double  max 
) const

Definition at line 50 of file DigitMonitor.cxx.

51 { return dist(&Data::_noise, DataFuncArgs(), name, nBins, 0, max, "Noise distribution", "Noise (ADC counts)"); }

◆ parseVariables()

bool MonitorBase::parseVariables ( TString  varStr,
std::vector< TString > &  vars,
std::vector< DataFuncSet > &  funcs,
std::vector< DataFuncArgs > &  args 
)
staticinherited

Definition at line 152 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

154 {
155  varStr.ReplaceAll(" ", "");
156  TObjArray* varList = varStr.Tokenize(":");
157  for (int i = 0; i < varList->GetEntries(); i++) {
158  TString varAndSample = ((TObjString*)varList->At(i))->String();
159  TString var = varAndSample;
160  short sample1 = -1, sample2 = -1;
161  double par = Definitions::none;
162  TString str = "";
163  if (varAndSample.CountChar('[') + varAndSample.CountChar(']') > 0) {
164  if (varAndSample.CountChar('[') != 1 || varAndSample.CountChar(']') != 1 || varAndSample[varAndSample.Length() - 1] != ']') {
165  cout << "Invalid use of [ ] delimiters" << endl;
166  delete varList;
167  return false;
168  }
169  TObjArray* varSampList = varAndSample.Tokenize("[,]");
170  if (varSampList->GetEntries() == 2) {
171  var = ((TObjString*)varSampList->At(0))->String();
172  TString sampStr = ((TObjString*)varSampList->At(1))->String();
173  delete varSampList;
174  if (!sampStr.IsDigit()) {
175  cout << "Sample argument [sample] should be an integer" << endl;
176  delete varList;
177  return false;
178  }
179  sample1 = sampStr.Atoi();
180  }
181  else if (varSampList->GetEntries() == 3) {
182  var = ((TObjString*)varSampList->At(0))->String();
183  TString sampStr1 = ((TObjString*)varSampList->At(1))->String();
184  TString sampStr2 = ((TObjString*)varSampList->At(2))->String();
185  delete varSampList;
186  if (!sampStr1.IsDigit() || !sampStr2.IsDigit()) {
187  cout << "Sample arguments [sample1, sample2] should be an integer" << endl;
188  delete varList;
189  return false;
190  }
191  sample1 = sampStr1.Atoi();
192  sample2 = sampStr2.Atoi();
193  }
194  else {
195  cout << "Invalid specification of sample argument (expected var[sample])" << endl;
196  delete varSampList;
197  delete varList;
198  return false;
199  }
200  }
201  if (varAndSample.CountChar('(') + varAndSample.CountChar(')') > 0) {
202  if (varAndSample.CountChar('(') != 1 || varAndSample.CountChar(')') != 1 || varAndSample[varAndSample.Length() - 1] != ')') {
203  cout << "Invalid use of ( ) delimiters" << endl;
204  delete varList;
205  return false;
206  }
207  TObjArray* varSampList = varAndSample.Tokenize("(,)");
208  if (varSampList->GetEntries() == 2) {
209  var = ((TObjString*)varSampList->At(0))->String();
210  TString sampStr = ((TObjString*)varSampList->At(1))->String();
211  delete varSampList;
212  if (!sampStr.IsFloat()) {
213  cout << "floating-point argument expected between ()" << endl;
214  delete varList;
215  return false;
216  }
217  par = sampStr.Atof();
218  }
219  else {
220  cout << "Invalid specification of floating-point argument (expected func(arg))" << endl;
221  delete varSampList;
222  delete varList;
223  return false;
224  }
225  }
226  if (varAndSample(0, 5) == "pass_") {
227  str = varAndSample(5, varAndSample.Length() - 5);
228  var = "pass";
229  }
230  DataFuncSet fcn = func(var);
231  if (fcn.isNull()) {
232  cout << "Unknown variable " << var << endl;
233  return false;
234  }
235  vars.push_back(varAndSample);
236  funcs.push_back(fcn);
237  args.emplace_back(sample1, sample2, par, Definitions::none, str);
238  }
239  delete varList;
240  return true;
241 }

◆ partitionMap()

TH2D * MonitorBase::partitionMap ( const DataFuncSet func,
const DataFuncArgs args,
TString  name,
PartitionId  partition,
const TString &  title = "",
CombinationType  comb = AverageValue,
const FilterParams f = FilterParams() 
) const
inherited

Definition at line 113 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

115 {
116  TH2D* h = Geo::partitionHist(partition, std::move(name), title + " " + Id::str(partition));
117  unsigned int nValues = 0;
118  FilterParams ff(f);
119  ff.addPartition(partition);
120  for (unsigned int i = 0; i < m_interface->nChannels(); i++) {
121  if ((i+1) % printPeriodicity == 0) cout << "Cell # " << i+1 << "/" << m_interface->nChannels() << endl;
122  const History* history = pass(i, ff);
123  if (!history) continue;
124  h->SetBinContent(history->cellInfo()->feb() + 1, history->cellInfo()->channel() + 1,
125  history_value(*history, func, args, comb, f, nValues));
126  }
127  return h;
128 }

◆ pass()

const History * AbsLArCells::pass ( unsigned int  i,
const FilterParams f 
) const
inherited

Definition at line 99 of file AbsLArCells.cxx.

100 {
101  //std::cout << "Called AbsLArCells with hash " << i << std::endl;
102  if (!f.passHash(i)) return nullptr;
103  const CellInfo* info = cellInfo(i);
104  if (!info) {
105  return nullptr;
106  }
107  //std::cout << "Called AbsLArCells::pass on a cell belonging to " << Id::str(info->calo()) << std::endl;
108  bool result = f.passCell(*info);
109  delete info;
110  return result ? cellHistory(i) : nullptr;
111 }

◆ prepareDumpParams()

bool MonitorBase::prepareDumpParams ( const TString &  vars,
int  verbosity,
std::vector< TString > &  variables,
std::vector< DataFuncSet > &  funcs,
std::vector< DataFuncArgs > &  args,
std::vector< TString > &  formats,
TString &  locFormat,
TString &  locHeader,
TString &  varHeader 
) const
inherited

Definition at line 244 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

249 {
250  if (!parseVariables(vars, variables, funcs, args)) {
251  cout << "Invalid variable specification " << vars << endl;
252  return false;
253  }
254 
255  locFormat = "| %6d | %-";
256  if (verbosity <= 1)
257  locFormat += "26";
258  else if (verbosity == 2)
259  locFormat += "80";
260  else if (verbosity == 3)
261  locFormat += "108";
262  else
263  locFormat += "120";
264  locFormat += "s |";
265 
266  TString locFormatHeader = locFormat; locFormatHeader.ReplaceAll("d", "s");
267  locHeader = Form(locFormatHeader, "hash", "location");
268 
269  for (unsigned int i = 0; i < variables.size(); i++) {
270  formats.emplace_back(" %-9.8g |");
271  TString fH = formats[i]; fH.ReplaceAll("g", "s");
272  TString varName = variables[i];
273  if (args[i].i2 != -1) varName += Form("[%d, %d]", args[i].i1, args[i].i2);
274  else if (args[i].i1 != -1) varName += Form("[%d]", args[i].i1);
275  if (!Definitions::isNone(args[i].x1)) varName += Form("[%.5f]", args[i].x1);
276  if (args[i].str != "") varName += Form("_%s", args[i].str.Data());
277  varHeader += Form(fH, varName.Data());
278  }
279  return true;
280 }

◆ resetCache()

void AbsLArCells::resetCache ( ) const
virtualinherited

Definition at line 34 of file AbsLArCells.cxx.

35 {
36  if (m_cellCache) {
37  delete m_cellCache;
38  m_cellCache = nullptr;
39  }
40  m_pos = nChannels() + 1;
41 }

◆ resetCellInfoCache()

void AbsLArCells::resetCellInfoCache ( )
inherited

Definition at line 114 of file AbsLArCells.cxx.

115 {
116  unsigned int i = 0;
118  cellInfo != m_cellInfoCache.end(); ++cellInfo, i++)
119  if (*cellInfo) {
120  delete *cellInfo;
121  *cellInfo = 0;
122  }
123 }

◆ residualCorr()

double DigitMonitor::residualCorr ( unsigned int  k1,
unsigned int  k2 
) const

Definition at line 454 of file DigitMonitor.cxx.

455 {
456  double sum = 0;
457  int n = 0;
458 
459  for (unsigned int i = 0; i < nChannels(); i++) {
460  const History* history = cellHistory(i);
461  if (!history) continue;
462  for (unsigned int j = 0; j < history->nData(); j++) {
463  double residual1 = history->data(j)->delta(k1);
464  double residual2 = history->data(j)->delta(k2);
465  sum += residual1*residual2;
466  n++;
467  }
468  }
469 
470  return sum/n;
471 }

◆ residualDist()

TH1D * DigitMonitor::residualDist ( unsigned int  k,
const TString &  name,
int  nBins,
double  rMin,
double  rMax,
bool  norm = false 
) const

Definition at line 207 of file DigitMonitor.cxx.

208 {
209  TH1D* h = new TH1D(name, "Residual distribution", nBins, rMin, rMax);
210  h->GetXaxis()->SetTitle(norm ? "Residual/ADCMax (%)" : "Residual (ADC counts)");
211 
212  for (unsigned int i = 0; i < nChannels(); i++) {
213  const History* history = cellHistory(i);
214  if (!history) continue;
215  for (unsigned int j = 0; j < history->nData(); j++)
216  h->Fill(history->data(j)->delta(k)*(norm ? 100/history->data(j)->adcMax() : 1));
217  }
218  return h;
219 }

◆ residualParams()

bool DigitMonitor::residualParams ( int  lwb,
int  upb,
CovMatrix k,
TVectorD &  means 
) const

Definition at line 474 of file DigitMonitor.cxx.

475 {
476  CovMatrix sum2N(lwb, upb), sumCN(lwb, upb);
477  TVectorD sum(lwb, upb), sumN(lwb, upb);
478  double sumA = 0, n = 0;
479  for (unsigned int i = 0; i < nChannels(); i++) {
480  const History* history = cellHistory(i);
481  if (!history) continue;
482  for (unsigned int j = 0; j < history->nData(); j++) {
483  if (history->data(j)->adcMax() < 0) continue;
484  OFC* ofc = history->ofc(j);
485  if (!ofc || ofc->hasSameRange(lwb, upb)) { cout << "Invalid index bounds!" << endl; return false; }
486  for (int i1 = lwb; i1 <= upb; i1++) {
487  sum(i1) = sum(i1) + history->data(j)->delta(i1);
488  sumN(i1) = sumN(i1) + history->data(j)->delta(i1)/TMath::Power(history->data(j)->adcMax(), 2);
489  for (int i2 = lwb; i2 <= upb; i2++) {
490  sumCN(i1, i2) = sumCN(i1, i2) + ofc->Gamma()(i1, i2)/TMath::Power(history->data(j)->adcMax(), 2);
491  sum2N(i1, i2) = sum2N(i1, i2) + history->data(j)->delta(i1)*history->data(j)->delta(i2)/TMath::Power(history->data(j)->adcMax(),2);
492  }
493  }
494  sumA += 1/TMath::Power(history->data(j)->adcMax(), 2);
495  n++;
496  }
497  }
498 
499  sumA /= n;
500  k.ResizeTo(lwb, upb);
501  means.ResizeTo(lwb, upb);
502 
503  for (int i1 = lwb; i1 <= upb; i1++) {
504  sum(i1) = sum(i1)/n;
505  sumN(i1) = sumN(i1)/n;
506  means(i1) = sum(i1);
507  }
508 
509  for (int i1 = lwb; i1 <= upb; i1++) {
510  for (int i2 = lwb; i2 <= upb; i2++) {
511  sumCN(i1, i2) = sumCN(i1, i2)/n;
512  sum2N(i1, i2) = sum2N(i1, i2)/n;
513  k(i1, i2) = sum2N(i1, i2) - sumN(i1)*sum(i2) - sum(i1)*sumN(i2)
514  + sum(i1)*sum(i2)*sumA - sumCN(i1,i2);
515  k(i1, i2) = (k(i1, i2) >= 0 ? sqrt(k(i1, i2)) : -sqrt(-k(i1, i2)));
516  }
517  }
518  return true;
519 }

◆ residualPlots()

bool DigitMonitor::residualPlots ( CaloId  calo,
unsigned int  layer,
CaloGain::CaloGain  gain = CaloGain::LARHIGHGAIN,
bool  xip = false,
bool  ring = false,
double  lo = -0.05,
double  hi = 0.05,
const TString &  fileName = "residuals" 
)

Definition at line 222 of file DigitMonitor.cxx.

224 {
225  TH1D* h1[5];
226  TH2D* hEtaPhi[5];
227  TString globalTitle = TString(xip ? "Derivative" : "Offset") + " correction";
228  for (unsigned short k = 0; k < 5; k++) {
229  TString title = globalTitle + " for sampling " + Form("%d", k);
230  h1[k] = new TH1D(Form("h%d", k), title, 100, lo, hi);
231  h1[k]->GetXaxis()->SetTitle("correction");
232  hEtaPhi[k] = Geo::etaPhiHist(calo, layer, Form("hEtaPhi%d", k), title);
233  hEtaPhi[k]->SetMinimum(lo);
234  hEtaPhi[k]->SetMaximum(hi);
235  }
236  FilterParams f;
237  f.addCalo(calo);
238  f.addLayer(layer);
239  TH2D* hAll = new TH2D("hAll", globalTitle + " vs. sampling", 5, 0, 5, 100, lo, hi);
240  hAll->GetXaxis()->SetTitle("sampling");
241  hAll->GetYaxis()->SetTitle("correction");
242  for (unsigned int i = 0; i < nChannels(); i++) {
243  if ((i+1) % 10000 == 0) cout << "Cell # " << i+1 << "/" << nChannels() << endl;
244  const History* history = pass(i, f);
245  if (!history || history->nData() == 0) continue;
246  for (unsigned short k = 0; k < 5; k++) {
248  double xi = history->data(0)->xi(k, type, gain, xip);
249  h1[k]->Fill(xi);
250  hEtaPhi[k]->Fill(history->cellInfo()->eta(), history->cellInfo()->phi(), xi);
251  if (Id::matchCalo(calo, HEC) && history->cellInfo()->region() == 1) // For HEC, take care of larger phi size in region 1
252  hEtaPhi[k]->Fill(history->cellInfo()->eta(), history->cellInfo()->phi() - Geo::phiSize(HEC_A, 1, 1), xi);
253  }
254  }
255  for (unsigned int i = 1; i <= 100; i++)
256  for (unsigned short k = 0; k < 5; k++)
257  hAll->SetBinContent(k+1, i, h1[k]->GetBinContent(i));
258  TFile* ff = TFile::Open(fileName + ".root", "RECREATE");
259  for (unsigned short k = 0; k < 5; k++) {
260  h1[k]->Write();
261  hEtaPhi[k]->Write();
262  }
263  hAll->Write();
264  ff->Close();
265  TCanvas* c1 = new TCanvas("c1", Id::str(calo) + " layer " + Form("%d", layer), 1600, 2000);
266  c1->Divide(2,3);
267  for (unsigned short k = 0; k < 5; k++) {
268  c1->cd(k+1);
269  hEtaPhi[k]->Draw("COLZ");
270  }
271  c1->cd(6);
272  hAll->Draw();
273  c1->Print(fileName + ".png");
274  c1->Print(fileName + ".eps");
275  return true;
276 }

◆ residualPlotsGainComp()

bool DigitMonitor::residualPlotsGainComp ( CaloId  calo,
unsigned int  layer,
bool  ring = false,
bool  xip = false,
double  lo = -0.05,
double  hi = 0.05,
const TString &  fileName = "residuals" 
)

Definition at line 354 of file DigitMonitor.cxx.

356 {
357  unsigned int nBins = 100;
358  TH1D* h[5][5];
359  TString globalTitle = TString(xip ? "Derivative" : "Offset") + " correction";
360  for (unsigned short l = 0; l < 5; l++)
361  for (unsigned short k = 0; k < 5; k++)
362  h[l][k] = new TH1D(Form("h%d%d", l, k), "", nBins, l < 2 ? -15 : lo, l < 2 ? 15 : hi);
363  FilterParams f;
364  f.addCalo(calo);
365  f.addLayer(layer);
366  TH2D* hAll[5];
367  hAll[0] = new TH2D("h0All", "#xi_{high}/#delta#xi vs. sampling", 5, 0, 5, nBins, -15, 15);
368  hAll[1] = new TH2D("hDAll", "(#xi_{high} - #xi_{low})/#delta#xi vs. sampling", 5, 0, 5, nBins, -15, 15);
369  hAll[2] = new TH2D("hEAll", globalTitle + " higher-gain value vs. sampling", 5, 0, 5, nBins, 0, hi);
370  hAll[3] = new TH2D("hRAll", globalTitle + " lower-gain value vs. sampling", 5, 0, 5, nBins, lo, hi);
371  hAll[4] = new TH2D("hCAll", globalTitle + " higher-gain error vs. sampling", 5, 0, 5, nBins, lo, hi);
372  TH2D* hCor = new TH2D("hCor", globalTitle + " lower-gain vs. higher-gain values", nBins, lo, hi, nBins, lo, hi);
373  hCor->GetXaxis()->SetTitle("#xi_{high}");
374  hCor->GetYaxis()->SetTitle("#xi_{low}");
375  for (unsigned short l = 0; l < 4; l++) {
376  hAll[l]->GetXaxis()->SetTitle("sampling");
377  hAll[l]->GetYaxis()->SetTitle("significance");
378  }
379 
382 
383  for (unsigned int i = 0; i < nChannels(); i++) {
384  if ((i+1) % 10000 == 0) cout << "Cell # " << i+1 << "/" << nChannels() << endl;
385  const History* history = pass(i, f);
386  if (!history || history->nData() == 0) continue;
387  for (unsigned short k = 0; k < 5; k++) {
388  const ShapeErrorData* hgSED = history->shapeErrorData(hiGain, ring ? RingShapeError : CellShapeError);
389  const ShapeErrorData* lgSED = history->shapeErrorData(loGain, ring ? RingShapeError : CellShapeError);
390  if (!hgSED || !lgSED) {
391  if (hgSED) delete hgSED;
392  if (lgSED) delete lgSED;
393  continue;
394  }
395  double hgVal = (xip ? hgSED->xi()(k) : hgSED->xip()(k));
396  double lgVal = (xip ? lgSED->xi()(k) : lgSED->xip()(k));
397  double hgErr = TMath::Sqrt(xip ? hgSED->xiErr()(k,k) : hgSED->xipErr()(k,k));
398  double error = TMath::Sqrt(xip ? hgSED->xiErr()(k,k) + lgSED->xiErr()(k,k) : hgSED->xipErr()(k,k) + lgSED->xipErr()(k,k));
399  delete hgSED;
400  delete lgSED;
401  h[0][k]->Fill(hgVal/hgErr);
402  h[1][k]->Fill((hgVal - lgVal)/error);
403  h[2][k]->Fill(hgVal);
404  h[3][k]->Fill(lgVal);
405  h[4][k]->Fill(hgErr);
406  hCor->Fill(hgVal, lgVal);
407  }
408  }
409  for (unsigned int i = 1; i <= nBins; i++)
410  for (unsigned short l = 0; l < 5; l++)
411  for (unsigned short k = 0; k < 5; k++)
412  hAll[l]->SetBinContent(k+1, i, h[l][k]->GetBinContent(i));
413  TFile* ff = TFile::Open(fileName + ".root", "RECREATE");
414  for (unsigned short l = 0; l < 5; l++) {
415  for (unsigned short k = 0; k < 5; k++)
416  h[l][k]->Write();
417  hAll[l]->Write();
418  }
419  ff->Close();
420  TCanvas* c1 = new TCanvas("c1", Id::str(calo) + " layer " + Form("%d", layer), 1600, 500);
421  c1->Divide(3,1);
422  c1->cd(1); hCor->Draw();
423  TLatex l; l.SetNDC();
424  TString corrStr = Form("Correlation : %.1f%%", 100*hCor->GetCorrelationFactor());
425  l.DrawLatex(0.2, 0.8, corrStr);
426  c1->cd(2); hAll[0]->Draw("COL");
427  c1->cd(3); hAll[1]->Draw("COL");
428  c1->Print(fileName + ".png");
429  c1->Print(fileName + ".eps");
430  return true;
431 }

◆ residualPlotsRingComp()

bool DigitMonitor::residualPlotsRingComp ( CaloId  calo,
unsigned int  layer,
CaloGain::CaloGain  gain = CaloGain::LARHIGHGAIN,
bool  xip = false,
double  lo = -0.05,
double  hi = 0.05,
const TString &  fileName = "residuals" 
)

Definition at line 279 of file DigitMonitor.cxx.

281 {
282  unsigned int nBins = 100;
283  TH1D* h[5][5];
284  TString globalTitle = TString(xip ? "Derivative" : "Offset") + " correction";
285  for (unsigned short l = 0; l < 5; l++)
286  for (unsigned short k = 0; k < 5; k++)
287  h[l][k] = new TH1D(Form("h%d%d", l, k), "", nBins, l < 2 ? -15 : lo, l < 2 ? 15 : hi);
288  FilterParams f;
289  f.addCalo(calo);
290  f.addLayer(layer);
291  TH2D* hAll[5];
292  hAll[0] = new TH2D("h0All", "#xi_{cell}/#delta#xi vs. sampling", 5, 0, 5, nBins, -15, 15);
293  hAll[1] = new TH2D("hDAll", "(#xi_{cell} - #xi_{ring})/#delta#xi vs. sampling", 5, 0, 5, nBins, -15, 15);
294  hAll[2] = new TH2D("hEAll", globalTitle + " per-cell value vs. sampling", 5, 0, 5, nBins, 0, hi);
295  hAll[3] = new TH2D("hRAll", globalTitle + " per-ring value vs. sampling", 5, 0, 5, nBins, lo, hi);
296  hAll[4] = new TH2D("hCAll", globalTitle + " per-cell error vs. sampling", 5, 0, 5, nBins, lo, hi);
297  TH2D* hCor = new TH2D("hCor", globalTitle + " per-ring vs. per-cell values", nBins, lo, hi, nBins, lo, hi);
298  hCor->GetXaxis()->SetTitle("#xi_{cell}");
299  hCor->GetYaxis()->SetTitle("#xi_{ring}");
300  for (unsigned short l = 0; l < 4; l++) {
301  hAll[l]->GetXaxis()->SetTitle("sampling");
302  hAll[l]->GetYaxis()->SetTitle("significance");
303  }
304  for (unsigned int i = 0; i < nChannels(); i++) {
305  if ((i+1) % 10000 == 0) cout << "Cell # " << i+1 << "/" << nChannels() << endl;
306  const History* history = pass(i, f);
307  if (!history || history->nData() == 0) continue;
308  for (unsigned short k = 0; k < 5; k++) {
309  const ShapeErrorData* cellSED = history->shapeErrorData(gain, CellShapeError);
310  const ShapeErrorData* ringSED = history->shapeErrorData(gain, RingShapeError);
311  if (!cellSED || !ringSED) {
312  if (cellSED) delete cellSED;
313  if (ringSED) delete ringSED;
314  continue;
315  }
316  double cellVal = (xip ? cellSED->xi()(k) : cellSED->xip()(k));
317  double ringVal = (xip ? ringSED->xi()(k) : ringSED->xip()(k));
318  double cellErr = TMath::Sqrt(xip ? cellSED->xiErr()(k,k) : cellSED->xipErr()(k,k));
319  delete cellSED;
320  delete ringSED;
321  h[0][k]->Fill(cellVal/cellErr);
322  h[1][k]->Fill((cellVal - ringVal)/cellErr);
323  h[2][k]->Fill(cellVal);
324  h[3][k]->Fill(ringVal);
325  h[4][k]->Fill(cellErr);
326  hCor->Fill(cellVal, ringVal);
327  }
328  }
329  for (unsigned int i = 1; i <= nBins; i++)
330  for (unsigned short l = 0; l < 5; l++)
331  for (unsigned short k = 0; k < 5; k++)
332  hAll[l]->SetBinContent(k+1, i, h[l][k]->GetBinContent(i));
333  TFile* ff = TFile::Open(fileName + ".root", "RECREATE");
334  for (unsigned short l = 0; l < 5; l++) {
335  for (unsigned short k = 0; k < 5; k++)
336  h[l][k]->Write();
337  hAll[l]->Write();
338  }
339  ff->Close();
340  TCanvas* c1 = new TCanvas("c1", Id::str(calo) + " layer " + Form("%d", layer), 1600, 500);
341  c1->Divide(3,1);
342  c1->cd(1); hCor->Draw();
343  TLatex l; l.SetNDC();
344  TString corrStr = Form("Correlation : %.1f%%", 100*hCor->GetCorrelationFactor());
345  l.DrawLatex(0.2, 0.8, corrStr);
346  c1->cd(2); hAll[0]->Draw("COL");
347  c1->cd(3); hAll[1]->Draw("COL");
348  c1->Print(fileName + ".png");
349  c1->Print(fileName + ".eps");
350  return true;
351 }

◆ shapeErrorDist()

TH1D * DigitMonitor::shapeErrorDist ( unsigned int  k,
const TString &  name,
int  nBins,
double  rMin,
double  rMax,
double  mean = 0 
) const

Definition at line 434 of file DigitMonitor.cxx.

435 {
436  TH1D* h = new TH1D(name, "Shape error", nBins, rMin, rMax);
437  h->GetXaxis()->SetTitle("#epsilon^{2}");
438 
439  for (unsigned int i = 0; i < nChannels(); i++) {
440  const History* history = cellHistory(i);
441  if (!history) continue;
442  for (unsigned int j = 0; j < history->nData(); j++) {
443  OFC* ofc = history->ofc(j);
444  double delta = history->data(j)->delta(k) - mean;
445  double adcMax = history->data(j)->adcMax();
446  h->Fill((delta*delta - ofc->Gamma()(k, k))/(adcMax*adcMax));
447  }
448  }
449  cout << sqrt(h->GetMean())*100 << " +/- " << sqrt(h->GetMeanError())*100 << endl;
450  return h;
451 }

◆ statParams()

bool MonitorBase::statParams ( const std::vector< DataFuncSet > &  funcs,
const std::vector< DataFuncArgs > &  args,
TVectorD &  mean,
TVectorD &  meanErr,
TMatrixD &  covMatrix,
TMatrixD &  covMatrixErr,
const FilterParams f = FilterParams() 
) const
inherited

Definition at line 375 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

379 {
380  Averager avg(funcs.size());
381 
382  for (unsigned int i = 0; i < m_interface->nChannels(); i++) {
383  if ((i+1) % printPeriodicity == 0) cout << "Cell # " << i+1 << "/" << m_interface->nChannels() << endl;
384  const History* history = pass(i, f);
385  if (!history) continue;
386  for (unsigned int j = 0; j < history->nData(); j++) {
387  if (!f.passEvent(*history->data(j))) continue;
388  TVectorD vals(funcs.size());
389  for (unsigned int k = 0; k < funcs.size(); k++)
390  vals(k) = funcs[k].val(*history->data(j), args[k]);
391  avg.fill(vals);
392  }
393  }
394 
395  mean = avg.means();
396  meanErr = avg.meanErrors();
397  covMatrix = avg.covarianceMatrix();
398  covMatrixErr = avg.covarianceMatrixErrors();
399 
400  return true;
401 }

◆ str()

TString MonitorBase::str ( CombinationType  comb)
staticinherited

Definition at line 56 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

57 {
58  switch (comb) {
59  case AverageValue : return "average";
60  case MaxValue : return "max value";
61  case MinValue : return "min value";
62  case TotalValue : return "total value";
63  case RMSValue : return "RMS";
64  }
65  return "";
66 }

◆ timeDist()

TH1D * DigitMonitor::timeDist ( const TString &  name,
int  nBins,
double  tMin = -25,
double  tMax = 25 
) const

Definition at line 44 of file DigitMonitor.cxx.

45 { return dist(&Data::_ofcTime, DataFuncArgs(), name, nBins, tMin, tMax, "Time distribution", "Time (ns)"); }

Member Data Documentation

◆ m_cellCache

const History* LArSamples::AbsLArCells::m_cellCache
mutableprivateinherited

Definition at line 55 of file AbsLArCells.h.

◆ m_cellInfoCache

std::vector<CellInfo*> LArSamples::AbsLArCells::m_cellInfoCache
mutableprivateinherited

Definition at line 56 of file AbsLArCells.h.

◆ m_interface

const Interface* LArSamples::MonitorBase::m_interface
privateinherited

◆ m_pos

unsigned int LArSamples::AbsLArCells::m_pos
mutableprivateinherited

Definition at line 54 of file AbsLArCells.h.

◆ printPeriodicity

const int LArSamples::MonitorBase::printPeriodicity = 10000
staticinherited

The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
LArSamples::Data::_layer
int _layer(const DataFuncArgs &args) const
Definition: Data.cxx:329
LArSamples::Geo::phiSize
static double phiSize(CaloId calo, short layer, short region, short iPhi=-1)
Definition: Geometry.cxx:344
LArSamples::Data::_eta
double _eta(const DataFuncArgs &args) const
Definition: Data.cxx:501
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:215
trigbs_pickEvents.ranges
ranges
Definition: trigbs_pickEvents.py:60
beamspotnt.var
var
Definition: bin/beamspotnt.py:1393
LArSamples::CellInfo::feb
short feb() const
Definition: CellInfo.cxx:102
LArSamples::AbsLArCells::m_pos
unsigned int m_pos
Definition: AbsLArCells.h:54
LArSamples::MonitorBase::dist
TH1D * dist(const DataFuncSet &func, const DataFuncArgs &args, const TString &name, int nBins, double xMin, double xMax, const TString &title="", const TString &xTitle="", const TString &yTitle="", const FilterParams &f=FilterParams()) const
Definition: LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx:69
LArSamples::Geo::etaPhiHist
static TH2D * etaPhiHist(CaloId calo, short layer, const TString &name, const TString &title)
Definition: Geometry.cxx:549
PlotCalibFromCool.norm
norm
Definition: PlotCalibFromCool.py:100
LArSamples::Data::_xip
double _xip(const DataFuncArgs &args) const
Definition: Data.h:218
LArSamples::Data::_chi2_noCorr
double _chi2_noCorr(const DataFuncArgs &args) const
Definition: Data.cxx:204
LArSamples::HEC
@ HEC
Definition: CaloId.h:26
WriteBchToCool.adjust
adjust
Definition: WriteBchToCool.py:73
LArSamples::CellInfo::globalPhiRing
short globalPhiRing() const
Definition: CellInfo.cxx:125
mean
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
Definition: dependence.cxx:254
LArSamples::MonitorBase::func
static DataFuncSet func(const TString &var)
Definition: LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx:431
get_generator_info.result
result
Definition: get_generator_info.py:21
header
Definition: hcg.cxx:526
LArSamples::TreeShapeErrorGetter::addCell
int addCell(const ResidualCalculator &calc, CaloGain::CaloGain gain)
Definition: TreeShapeErrorGetter.cxx:131
LArSamples::Id::matchCalo
static bool matchCalo(CaloId id, CaloId idSpec)
Definition: CaloId.cxx:188
LArSamples::AbsLArCells::newCellHistory
virtual const History * newCellHistory(unsigned int i) const
Definition: AbsLArCells.cxx:44
checkCoolLatestUpdate.variables
variables
Definition: checkCoolLatestUpdate.py:12
LArSamples::Data::_sample
double _sample(const DataFuncArgs &args) const
Definition: Data.h:189
LArSamples::FilterParams
Definition: FilterParams.h:50
python.ZdcOnlineRecMonitorConfig.partition
partition
Definition: ZdcOnlineRecMonitorConfig.py:328
LArSamples::Data::_adjDeltaT
double _adjDeltaT(const DataFuncArgs &args) const
Definition: Data.cxx:285
python.CaloAddPedShiftConfig.args
args
Definition: CaloAddPedShiftConfig.py:47
LArSamples::Data::delta
double delta(short sample) const
Definition: Data.cxx:427
LArSamples::History::cellInfo
const CellInfo * cellInfo() const
Definition: History.h:56
LArSamples::CovMatrix
TMatrixTSym< double > CovMatrix
Definition: LArCalorimeter/LArCafJobs/LArCafJobs/Definitions.h:11
LArSamples::History::referenceShape
SimpleShape * referenceShape(unsigned int k, double adcMax=-1, double time=Definitions::none, bool samplesOnly=false) const
Definition: History.cxx:545
LArSamples::AbsLArCells::cellHistory
virtual const History * cellHistory(unsigned int i) const
Definition: AbsLArCells.cxx:59
LArSamples::Data::_region
int _region(const DataFuncArgs &args) const
Definition: Data.cxx:315
LArSamples::Data::adcMax
double adcMax() const
Definition: Data.h:124
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
LArSamples::Data::_pedestalRMS
double _pedestalRMS(const DataFuncArgs &) const
Definition: Data.h:195
LArSamples::History
Definition: History.h:35
LArSamples::MinValue
@ MinValue
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:27
extractSporadic.c1
c1
Definition: extractSporadic.py:133
LArSamples::Data::_xi
double _xi(const DataFuncArgs &args) const
Definition: Data.h:213
LArSamples::AbsLArCells::m_cellInfoCache
std::vector< CellInfo * > m_cellInfoCache
Definition: AbsLArCells.h:56
LArSamples::MonitorBase::interface
const Interface & interface() const
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:74
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
LArSamples::Data::_xiNormRing
double _xiNormRing(const DataFuncArgs &) const
Definition: Data.h:217
LArSamples::Data::_ring
int _ring(const DataFuncArgs &args) const
Definition: Data.cxx:364
LArSamples::Id::str
static TString str(CaloId id)
Definition: CaloId.cxx:15
LArSamples::History::residuals
Residuals * residuals(CaloGain::CaloGain gain=CaloGain::LARNGAIN, double absResTrunc=-1, bool correct=true, bool zeroTime=false) const
Definition: History.cxx:613
LArSamples::AbsLArCells::cellInfo
virtual const CellInfo * cellInfo(unsigned int i) const
Definition: AbsLArCells.cxx:71
LArSamples::Data::_nData
int _nData(const DataFuncArgs &args) const
Definition: Data.cxx:371
LArSamples::SimpleShape::scaleAndShift
static bool scaleAndShift(std::unique_ptr< SimpleShape > &s1, double scale, double shift=0)
Definition: SimpleShape.cxx:137
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:157
LArSamples::Interface::getCellHistory
const History * getCellHistory(unsigned int i) const
Definition: Interface.cxx:105
LArSamples::Data::_pass
double _pass(const DataFuncArgs &args) const
Definition: Data.h:270
LArSamples::DigitMonitor::residualParams
bool residualParams(int lwb, int upb, CovMatrix &k, TVectorD &means) const
Definition: DigitMonitor.cxx:474
LArSamples::Data::_refitDeltaT
double _refitDeltaT(const DataFuncArgs &args) const
Definition: Data.cxx:248
LArSamples::Data::ofcTime
double ofcTime() const
Definition: Data.h:111
LArSamples::MonitorBase::history_value
static double history_value(const History &history, const DataFuncSet &func, const DataFuncArgs &args, CombinationType comb, const FilterParams &f, unsigned int &nValues)
Definition: LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx:404
LArSamples::CellInfo::phi
double phi() const
Definition: CellInfo.h:94
LArSamples::Averager
storage of the time histories of all the cells
Definition: Averager.h:23
LArSamples::HEC_A
@ HEC_A
Definition: CaloId.h:24
LArSamples::Data::_energySignif
double _energySignif(const DataFuncArgs &args) const
Definition: Data.cxx:405
TestSUSYToolsAlg.pref
pref
Definition: TestSUSYToolsAlg.py:80
LArSamples::ResidualCalculator::size
unsigned int size() const
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/Residual.h:117
LArSamples::ResidualCalculator
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/Residual.h:101
LArSamples::History::ofc
OFC * ofc(unsigned int i, int lwb=-1, int upb=-1, double time=Definitions::none, bool useCorrs=true) const
Definition: History.cxx:207
LArSamples::Data::_calo
int _calo(const DataFuncArgs &args) const
Definition: Data.cxx:322
read_hist_ntuple.h1
h1
Definition: read_hist_ntuple.py:21
CaloGain::LARNGAIN
@ LARNGAIN
Definition: CaloGain.h:19
LArSamples::MonitorBase::printPeriodicity
static const int printPeriodicity
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:79
LArSamples::TreeShapeErrorGetter::addRing
int addRing(const ResidualCalculator &calc, CaloGain::CaloGain gain)
Definition: TreeShapeErrorGetter.cxx:141
LArSamples::Data::_normResidualOffset
double _normResidualOffset(const DataFuncArgs &args) const
Definition: Data.h:220
dq_defect_bulk_create_defects.line
line
Definition: dq_defect_bulk_create_defects.py:27
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LArSamples::Data::_quality
double _quality(const DataFuncArgs &) const
Definition: Data.h:193
LArSamples::CombinedShapeErrorGetter::add
void add(const AbsShapeErrorGetter &getter)
Definition: CombinedShapeErrorGetter.h:25
LArSamples::DigitMonitor::getResiduals
Residuals * getResiduals(unsigned int hash, CaloGain::CaloGain gain, double absResTrunc=-1, bool adjust=false, bool zeroTime=false) const
Definition: DigitMonitor.cxx:563
LArSamples::Data::_upstreamE
double _upstreamE(const DataFuncArgs &) const
Definition: Data.h:261
LArSamples::Data::_delta
double _delta(const DataFuncArgs &args) const
Definition: Data.h:209
LArSamples::MonitorBase::nChannels
unsigned int nChannels() const
Definition: LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx:50
LArSamples::Data::_iPhi
int _iPhi(const DataFuncArgs &args) const
Definition: Data.cxx:308
LArSamples::Data::_gain
int _gain(const DataFuncArgs &) const
Definition: Data.h:208
LArSamples::SimpleShape::add
bool add(unsigned int k, double value, double error)
Definition: SimpleShape.cxx:90
LArSamples::Data::_hash
int _hash(const DataFuncArgs &args) const
Definition: Data.cxx:357
LArSamples::ShapeErrorData::xip
const TVectorD & xip() const
Definition: ShapeErrorData.h:41
compareGeometries.outputFile
string outputFile
Definition: compareGeometries.py:25
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
LArSamples::Data::_resCorrN
double _resCorrN(const DataFuncArgs &) const
Definition: Data.h:212
LArSamples::History::data
const Data * data(unsigned int i) const
Definition: History.cxx:91
part1
Definition: part1.py:1
LArSamples::Data::_chi2_ringCorr
double _chi2_ringCorr(const DataFuncArgs &args) const
Definition: Data.cxx:211
LArSamples::Data::_ofcSigma
double _ofcSigma(const DataFuncArgs &args) const
Definition: Data.cxx:565
LArSamples::Data::_phi
double _phi(const DataFuncArgs &args) const
Definition: Data.cxx:502
LArSamples::Data::_adcMax_new
double _adcMax_new(const DataFuncArgs &) const
Definition: Data.h:197
LArSamples::TotalValue
@ TotalValue
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:27
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
LArSamples::Data::_residualOffset
double _residualOffset(const DataFuncArgs &args) const
Definition: Data.h:211
LArSamples::MonitorBase::parseVariables
static bool parseVariables(TString varStr, std::vector< TString > &vars, std::vector< DataFuncSet > &funcs, std::vector< DataFuncArgs > &args)
Definition: LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx:152
LArSamples::Data::_iEta
int _iEta(const DataFuncArgs &args) const
Definition: Data.cxx:301
LArSamples::MaxValue
@ MaxValue
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:27
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
LArSamples::Data::_feedThrough
int _feedThrough(const DataFuncArgs &args) const
Definition: Data.cxx:336
lumiFormat.i
int i
Definition: lumiFormat.py:85
LArSamples::Data::_chi2_k
double _chi2_k(const DataFuncArgs &args) const
Definition: Data.cxx:225
LArSamples::Data::_maxPosition
int _maxPosition(const DataFuncArgs &) const
Definition: Data.h:235
D3PDSizeSummary.ff
ff
Definition: D3PDSizeSummary.py:305
h
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
beamspotman.n
n
Definition: beamspotman.py:729
LArSamples::Data::_adjScale
double _adjScale(const DataFuncArgs &args) const
Definition: Data.cxx:293
PixelAthClusterMonAlgCfg.varName
string varName
end cluster ToT and charge
Definition: PixelAthClusterMonAlgCfg.py:125
Recovery.avg
def avg(a, b)
Definition: Recovery.py:79
extractSporadic.h
list h
Definition: extractSporadic.py:96
LArSamples::Definitions::none
static const double none
Definition: LArCalorimeter/LArCafJobs/LArCafJobs/Definitions.h:18
LArSamples::AbsLArCells::getCellInfo
virtual const CellInfo * getCellInfo(unsigned int i) const
Definition: AbsLArCells.cxx:88
xAOD::covMatrix
covMatrix
Definition: TrackMeasurement_v1.cxx:19
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
LArSamples::History::setShapeErrorGetter
void setShapeErrorGetter(const AbsShapeErrorGetter *err) const
Definition: History.h:87
LArSamples::Data::_pedestalSubstractedSample
double _pedestalSubstractedSample(const DataFuncArgs &args) const
Definition: Data.h:190
covarianceTool.title
title
Definition: covarianceTool.py:542
LArSamples::ShapeErrorData::xipErr
const CovMatrix & xipErr() const
Definition: ShapeErrorData.h:43
LArSamples::CellInfo::location
TString location(int verbose=1) const
Definition: CellInfo.cxx:139
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
LArSamples::Data::_peakSignif
double _peakSignif(const DataFuncArgs &args) const
Definition: Data.cxx:399
GetAllXsec.kFactor
kFactor
Definition: GetAllXsec.py:95
LArSamples::Data::_normResidualError
double _normResidualError(const DataFuncArgs &args) const
Definition: Data.h:221
LArSamples::ShapeErrorType
ShapeErrorType
Definition: LArCalorimeter/LArCafJobs/LArCafJobs/Definitions.h:22
LArSamples::Data::_timeECorr
double _timeECorr(const DataFuncArgs &args) const
Definition: Data.cxx:642
hist_file_dump.f
f
Definition: hist_file_dump.py:140
LArSamples::Data::_timeForSplash2
double _timeForSplash2(const DataFuncArgs &args) const
Definition: Data.cxx:392
LArSamples::ShapeErrorData::xiErr
const CovMatrix & xiErr() const
Definition: ShapeErrorData.h:42
LArSamples::AbsLArCells::getCellHistory
virtual const History * getCellHistory(unsigned int i) const =0
LArSamples::AverageValue
@ AverageValue
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:27
LArSamples::MonitorBase::m_interface
const Interface * m_interface
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:87
LArSamples::History::nData
unsigned int nData() const
Definition: History.h:51
LArSamples::Residuals::calculator
ResidualCalculator * calculator(bool weigh=false) const
Definition: LArCalorimeter/LArSamplesMon/src/Residual.cxx:185
LArSamples::History::chi2
double chi2(int i, int lwb=-1, int upb=-1, int chi2Params=DefaultChi2, ShapeErrorType shapeErrorType=BestShapeError, unsigned int *nDof=0) const
Definition: History.cxx:164
LArSamples::Data::_xiNormCell
double _xiNormCell(const DataFuncArgs &) const
Definition: Data.h:216
LArSamples::Data::_timeForSplash1
double _timeForSplash1(const DataFuncArgs &args) const
Definition: Data.cxx:385
MakeTH3DFromTH2Ds.maxVals
maxVals
Definition: MakeTH3DFromTH2Ds.py:74
LArSamples::OFC
Definition: OFC.h:27
LArSamples::Geo::partitionHist
static TH2D * partitionHist(PartitionId part, const TString &name, const TString &title)
Definition: Geometry.cxx:18
LArSamples::Residuals
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/Residual.h:72
LArSamples::Interface::getCellInfo
const CellInfo * getCellInfo(unsigned int i) const
Definition: Interface.cxx:136
LArSamples::Data::_ofcTime
double _ofcTime(const DataFuncArgs &) const
Definition: Data.h:192
dumpTgcDigiJitter.nBins
list nBins
Definition: dumpTgcDigiJitter.py:29
LArSamples::AbsLArCells::pass
const History * pass(unsigned int i, const FilterParams &f) const
Definition: AbsLArCells.cxx:99
LArSamples::Data::_chi2_cellCorr
double _chi2_cellCorr(const DataFuncArgs &args) const
Definition: Data.cxx:218
LArSamples::Data::_timeNoTOF
double _timeNoTOF(const DataFuncArgs &args) const
Definition: Data.cxx:378
selection
const std::string selection
Definition: fbtTestBasics.cxx:75
LArSamples::AbsLArCells::cellInfoCache
const CellInfo * cellInfoCache(unsigned int i) const
Definition: AbsLArCells.cxx:82
LArSamples::Data
Definition: Data.h:72
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:28
LArSamples::AbsShape::maxValue
double maxValue(bool withErrors=false) const
Definition: AbsShape.cxx:30
LArSamples::AbsLArCells::m_cellCache
const History * m_cellCache
Definition: AbsLArCells.h:55
LArSamples::Data::_minValue
double _minValue(const DataFuncArgs &) const
Definition: Data.h:200
LArSamples::Data::_upstreamERatio
double _upstreamERatio(const DataFuncArgs &args) const
Definition: Data.cxx:589
LArSamples::Residuals::truncate
Residuals * truncate(double nWidthsRes, double nWidthsTime=-1, unsigned int nMax=0) const
Definition: LArCalorimeter/LArSamplesMon/src/Residual.cxx:143
LArSamples::Data::gain
CaloGain::CaloGain gain() const
Definition: Data.h:85
LArSamples::Data::_maxValue
double _maxValue(const DataFuncArgs &) const
Definition: Data.h:199
LArSamples::Data::_noise
double _noise(const DataFuncArgs &) const
Definition: Data.h:198
covarianceTool.verbosity
verbosity
Definition: covarianceTool.py:513
LArSamples::DigitMonitor::fitChi2
static TF1 * fitChi2(TH1D &h, const char *name, double xMin, double xMax, double nDof=-1, double fitMin=Definitions::none, double fitMax=Definitions::none)
Definition: DigitMonitor.cxx:109
LArSamples::MonitorBase::partitionMap
TH2D * partitionMap(const DataFuncSet &func, const DataFuncArgs &args, TString name, PartitionId partition, const TString &title="", CombinationType comb=AverageValue, const FilterParams &f=FilterParams()) const
Definition: LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx:113
LArSamples::Data::_slot
int _slot(const DataFuncArgs &args) const
Definition: Data.cxx:343
LArSamples::Data::_run
int _run(const DataFuncArgs &) const
Definition: Data.h:203
LArSamples::TreeShapeErrorGetter
Definition: TreeShapeErrorGetter.h:30
CaloGain::LARHIGHGAIN
@ LARHIGHGAIN
Definition: CaloGain.h:18
LArSamples::DigitMonitor::means
TVectorD means(int lwb, int upb)
Definition: DigitMonitor.h:79
LArSamples::CellInfo
Definition: CellInfo.h:31
LArSamples::Data::_chi2Anomaly
double _chi2Anomaly(const DataFuncArgs &args) const
Definition: Data.cxx:597
LArSamples::Data::_energy
double _energy(const DataFuncArgs &) const
Definition: Data.h:191
LArSamples::Data::_goodForShapeCorr
int _goodForShapeCorr(const DataFuncArgs &) const
Definition: Data.h:260
CaloGain::CaloGain
CaloGain
Definition: CaloGain.h:11
LArSamples::Data::_count
double _count(const DataFuncArgs &) const
Definition: Data.h:237
LArSamples::MonitorBase::prepareDumpParams
bool prepareDumpParams(const TString &vars, int verbosity, std::vector< TString > &variables, std::vector< DataFuncSet > &funcs, std::vector< DataFuncArgs > &args, std::vector< TString > &formats, TString &locFormat, TString &locHeader, TString &varHeader) const
Definition: LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx:244
LArSamples::CellInfo::channel
short channel() const
Definition: CellInfo.h:76
LArSamples::FCAL
@ FCAL
Definition: CaloId.h:26
CaloGain::LARMEDIUMGAIN
@ LARMEDIUMGAIN
Definition: CaloGain.h:18
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
LArSamples::History::shapeErrorData
const ShapeErrorData * shapeErrorData(CaloGain::CaloGain gain, ShapeErrorType shapeErrorType=BestShapeError, const Residual *res=0) const
Definition: History.cxx:302
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:108
ref
const boost::regex ref(r_ef)
LArSamples::Residuals::size
unsigned int size() const
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/Residual.h:80
LArSamples::Definitions::nChannelsSC
static const unsigned int nChannelsSC
Definition: LArCalorimeter/LArCafJobs/LArCafJobs/Definitions.h:15
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
LArSamples::DataFuncSet
Definition: Data.h:54
LArSamples::DataFuncSet::val
double val(const Data &data, const DataFuncArgs &args) const
Definition: Data.h:61
LArSamples::Data::_index
int _index(const DataFuncArgs &) const
Definition: Data.h:207
LArSamples::History::adjust
History * adjust() const
Definition: History.cxx:259
LArSamples::DataFuncArgs
Definition: Data.h:34
LArSamples::CombinedShapeErrorGetter
Definition: CombinedShapeErrorGetter.h:18
LArSamples::CellInfo::region
short region() const
Definition: CellInfo.h:59
LArSamples::Definitions::isNone
static bool isNone(double x)
Definition: LArCalorimeter/LArCafJobs/LArCafJobs/Definitions.h:19
beamspotnt.varList
list varList
Definition: bin/beamspotnt.py:1107
LArSamples::Data::xi
double xi(short sample, ShapeErrorType shapeErrorType=BestShapeError, CaloGain::CaloGain g=CaloGain::UNKNOWNGAIN, bool xip=false) const
Definition: Data.cxx:459
LArSamples::CellShapeError
@ CellShapeError
Definition: LArCalorimeter/LArCafJobs/LArCafJobs/Definitions.h:22
LArSamples::AbsLArCells::resetCache
virtual void resetCache() const
Definition: AbsLArCells.cxx:34
LArSamples::Data::_residual
double _residual(const DataFuncArgs &args) const
Definition: Data.h:210
str
Definition: BTagTrackIpAccessor.cxx:11
LArSamples::DigitMonitor::chi2Func
static TF1 * chi2Func(const char *name, double xMin, double xMax)
Definition: DigitMonitor.cxx:99
LArSamples::Data::_x
double _x(const DataFuncArgs &args) const
Definition: Data.cxx:497
LArSamples::CellInfo::eta
double eta() const
Definition: CellInfo.h:93
LArSamples::Data::_ofcGamma
double _ofcGamma(const DataFuncArgs &args) const
Definition: Data.cxx:577
MakeTH3DFromTH2Ds.minVals
minVals
Definition: MakeTH3DFromTH2Ds.py:73
LArSamples::ShapeErrorData
Definition: ShapeErrorData.h:19
jobOptions.fileName
fileName
Definition: jobOptions.SuperChic_ALP2.py:39
LArSamples::Data::_residualError
double _residualError(const DataFuncArgs &args) const
Definition: Data.h:219
CaloGain::LARLOWGAIN
@ LARLOWGAIN
Definition: CaloGain.h:18
LArSamples::ShapeErrorData::xi
const TVectorD & xi() const
Definition: ShapeErrorData.h:40
dqBeamSpot.nEntries
int nEntries
Definition: dqBeamSpot.py:72
LArSamples::Data::_lumiBlock
int _lumiBlock(const DataFuncArgs &) const
Definition: Data.h:205
LArSamples::Data::_rt
double _rt(const DataFuncArgs &args) const
Definition: Data.cxx:500
error
Definition: IImpactPoint3dEstimator.h:70
LArSamples::Geo::nPhiRings
static short nPhiRings()
Definition: Geometry.cxx:84
ReadOfcFromCool.ofc
ofc
Definition: ReadOfcFromCool.py:110
LArSamples::Data::_channel
int _channel(const DataFuncArgs &args) const
Definition: Data.cxx:350
LArSamples::Data::_refitScale
double _refitScale(const DataFuncArgs &args) const
Definition: Data.cxx:256
LArSamples::MonitorBase::MonitorBase
MonitorBase(const Interface &interface)
Constructor
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:35
LArSamples::Data::_chi2
double _chi2(const DataFuncArgs &) const
Definition: Data.h:239
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87
LArSamples::Data::_adcMax
double _adcMax(const DataFuncArgs &) const
Definition: Data.h:196
LArSamples::CellInfo::layer
short layer() const
Definition: CellInfo.h:53
LArSamples::Data::_z
double _z(const DataFuncArgs &args) const
Definition: Data.cxx:499
LArSamples::Data::_pedestal
double _pedestal(const DataFuncArgs &) const
Definition: Data.h:194
LArSamples::AbsLArCells::nChannels
virtual unsigned int nChannels() const
Definition: AbsLArCells.h:34
LArSamples::Interface::getSCHistory
const History * getSCHistory(unsigned int i) const
Definition: Interface.cxx:115
LArSamples::Data::_event
int _event(const DataFuncArgs &) const
Definition: Data.h:204
LArSamples::Data::_y
double _y(const DataFuncArgs &args) const
Definition: Data.cxx:498
LArSamples::Data::_bunchId
int _bunchId(const DataFuncArgs &) const
Definition: Data.h:206
LArSamples::Data::_refitChi2
double _refitChi2(const DataFuncArgs &args) const
Definition: Data.cxx:264
LArSamples::RingShapeError
@ RingShapeError
Definition: LArCalorimeter/LArCafJobs/LArCafJobs/Definitions.h:24
LArSamples::Data::_xiRing
double _xiRing(const DataFuncArgs &args) const
Definition: Data.h:215
fitman.k
k
Definition: fitman.py:528
LArSamples::RMSValue
@ RMSValue
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:27
PlotCalibFromCool.vals
vals
Definition: PlotCalibFromCool.py:474
LArSamples::Data::_xiCell
double _xiCell(const DataFuncArgs &args) const
Definition: Data.h:214
LArSamples::UniformShapeErrorGetter
Definition: UniformShapeErrorGetter.h:17
LArSamples::DataFuncSet::isNull
bool isNull()
Definition: Data.h:63