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 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 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 45 of file AbsLArCells.h.

45 { return m_pos; }

◆ cellCache()

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

Definition at line 44 of file AbsLArCells.h.

44 { 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 64 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ 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 84 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ 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 312 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ dump() [2/2]

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

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

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

◆ 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 126 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ 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 426 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ 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 39 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ 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 }

◆ 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 399 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ 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 45 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

46 {
47  return interface().nChannels();
48 }

◆ 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 147 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ 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 108 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ 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 239 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ 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 370 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.

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

◆ str()

TString MonitorBase::str ( CombinationType  comb)
staticinherited

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

52 {
53  switch (comb) {
54  case AverageValue : return "average";
55  case MaxValue : return "max value";
56  case MinValue : return "min value";
57  case TotalValue : return "total value";
58  case RMSValue : return "RMS";
59  }
60  return "";
61 }

◆ 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 52 of file AbsLArCells.h.

◆ m_cellInfoCache

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

Definition at line 53 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 51 of file AbsLArCells.h.

◆ printPeriodicity

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

The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
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:216
trigbs_pickEvents.ranges
ranges
Definition: trigbs_pickEvents.py:60
beamspotnt.var
var
Definition: bin/beamspotnt.py:1394
LArSamples::CellInfo::feb
short feb() const
Definition: CellInfo.cxx:102
LArSamples::AbsLArCells::m_pos
unsigned int m_pos
Definition: AbsLArCells.h:51
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:64
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
checkFileSG.line
line
Definition: checkFileSG.py:75
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:426
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:13
LArSamples::Data::_sample
double _sample(const DataFuncArgs &args) const
Definition: Data.h:189
LArSamples::FilterParams
Definition: FilterParams.h:50
LArSamples::Data::_adjDeltaT
double _adjDeltaT(const DataFuncArgs &args) const
Definition: Data.cxx:285
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
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
Data
@ Data
Definition: BaseObject.h:11
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:134
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:53
LArSamples::MonitorBase::interface
const Interface & interface() const
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/MonitorBase.h:74
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
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:158
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:399
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
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:45
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:210
LArSamples::Data::_residualOffset
double _residualOffset(const DataFuncArgs &args) const
Definition: Data.h:211
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
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:147
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:731
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:97
LArSamples::Definitions::none
static const double none
Definition: LArCalorimeter/LArCafJobs/LArCafJobs/Definitions.h:17
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:195
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:21
LArSamples::Data::_timeECorr
double _timeECorr(const DataFuncArgs &args) const
Definition: Data.cxx:642
hist_file_dump.f
f
Definition: hist_file_dump.py:135
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:86
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:127
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:74
LArSamples::AbsLArCells::cellInfoCache
const CellInfo * cellInfoCache(unsigned int i) const
Definition: AbsLArCells.cxx:82
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
LArSamples::AbsShape::maxValue
double maxValue(bool withErrors=false) const
Definition: AbsShape.cxx:30
LArSamples::AbsLArCells::m_cellCache
const History * m_cellCache
Definition: AbsLArCells.h:52
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:108
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:239
LArSamples::CellInfo::channel
short channel() const
Definition: CellInfo.h:76
LArSamples::FCAL
@ FCAL
Definition: CaloId.h:26
CaloGain::LARMEDIUMGAIN
@ LARMEDIUMGAIN
Definition: CaloGain.h:18
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:109
ref
const boost::regex ref(r_ef)
LArSamples::Residuals::size
unsigned int size() const
Definition: LArCalorimeter/LArSamplesMon/LArSamplesMon/Residual.h:80
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
LArSamples::DataFuncSet
Definition: Data.h:54
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
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
StateLessPT_NewConfig.partition
partition
Definition: StateLessPT_NewConfig.py:49
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:18
beamspotnt.varList
list varList
Definition: bin/beamspotnt.py:1108
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:21
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
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:73
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
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::Data::_event
int _event(const DataFuncArgs &) const
Definition: Data.h:204
LArSamples::Data::_y
double _y(const DataFuncArgs &args) const
Definition: Data.cxx:498
python.CaloScaleNoiseConfig.args
args
Definition: CaloScaleNoiseConfig.py:80
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:23
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