|
ATLAS Offline Software
|
storage of the time histories of all the cells
More...
#include <DigitMonitor.h>
|
| 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 |
|
Residuals * | getResiduals (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 Interface & | interface () const |
|
unsigned int | nChannels () const |
|
const History * | getCellHistory (unsigned int i) const |
|
const CellInfo * | getCellInfo (unsigned int i) const |
|
virtual const History * | newCellHistory (unsigned int i) const |
|
virtual const History * | cellHistory (unsigned int i) const |
|
virtual const CellInfo * | cellInfo (unsigned int i) const |
|
virtual void | resetCache () const |
|
const CellInfo * | cellInfoCache (unsigned int i) const |
|
const History * | pass (unsigned int i, const FilterParams &f) const |
|
const History * | cellCache () const |
|
unsigned int | cachePos () const |
|
void | resetCellInfoCache () |
|
|
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) |
|
storage of the time histories of all the cells
Definition at line 28 of file DigitMonitor.h.
◆ DigitMonitor()
◆ adcMaxDist()
TH1D * DigitMonitor::adcMaxDist |
( |
const TString & |
name, |
|
|
int |
nBins, |
|
|
double |
aMin = 0 , |
|
|
double |
aMax = 4096 |
|
) |
| const |
◆ 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.
130 if (nDof > 0) fChi2->FixParameter(1, nDof);
132 double delta = (refErrMax - refErrMin)/refErrNBins;
133 TH1D* fitResults =
new TH1D(
"fitResults",
"", refErrNBins, refErrMin - delta/2, refErrMax - delta/2);
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);
141 shapeErrorGetter.
add(kFactorGetter);
144 if (!history)
continue;
146 for (
unsigned int j = 0; j < history->
nData(); j++) {
147 h->Fill(history->
chi2(j, lwb, upb, chi2Pars));
151 fitResults->SetBinContent(
k+1, fChi2->GetChisquare());
155 TF1* fPol2 =
new TF1(
"fPol2",
"[0]*(x - [1])*(x - [1]) + [2]", refErrMin, refErrMax);
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());
163 fitResults->Fit(fPol2);
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)));
◆ cachePos()
unsigned int LArSamples::AbsLArCells::cachePos |
( |
| ) |
const |
|
inlineinherited |
◆ cellCache()
◆ cellHistory()
const History * AbsLArCells::cellHistory |
( |
unsigned int |
i | ) |
const |
|
virtualinherited |
◆ cellInfo()
◆ cellInfoCache()
const CellInfo * AbsLArCells::cellInfoCache |
( |
unsigned int |
i | ) |
const |
|
inherited |
◆ 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.
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;
69 kFactorGetter = std::make_unique<UniformShapeErrorGetter>(
kFactor);
70 shapeErrorGetter = std::make_unique<CombinedShapeErrorGetter>();
72 shapeErrorGetter->
add(*kFactorGetter);
75 if ((
i+1) % 10000 == 0) cout <<
"Processing entry # " <<
i+1 << endl;
77 if (!history)
continue;
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;
86 if (nDof > 0 && nDof != nDofEff) cout <<
"WARNING : fixing nDof = " << nDof <<
", but computer nDofEff = " << nDofEff << endl;
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)));
◆ chi2Func()
TF1 * DigitMonitor::chi2Func |
( |
const char * |
name, |
|
|
double |
xMin, |
|
|
double |
xMax |
|
) |
| |
|
static |
Definition at line 99 of file DigitMonitor.cxx.
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);
◆ combine()
Definition at line 522 of file DigitMonitor.cxx.
527 pshape =
pref =
nullptr;
529 std::unique_ptr<SimpleShape> shape;
530 std::unique_ptr<SimpleShape>
ref;
534 if ((
i+1) % 50000 == 0) cout <<
"Cell # " <<
i+1 <<
"/" <<
nChannels() << endl;
536 if (!history)
continue;
537 for (
unsigned int j = 0; j < history->
nData(); j++) {
538 if (!
f.passEvent(*history->
data(j)))
continue;
540 cout <<
"Adding pulse (" <<
n+1 <<
") at hash " <<
i <<
", index " << j <<
", max = " << maxSum/(
n+1) << endl;
542 auto thisData = std::make_unique<SimpleShape>(*history->
data(j));
543 auto thisRef = std::unique_ptr<SimpleShape>(history->
referenceShape(j));
558 pshape = shape.release();
◆ dist() [1/2]
Definition at line 64 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.
69 if (xTitle !=
"")
h->GetXaxis()->SetTitle(xTitle);
70 if (yTitle !=
"")
h->GetYaxis()->SetTitle(yTitle);
74 if (!history)
continue;
75 for (
unsigned int j = 0; j < history->
nData(); j++) {
76 if (!
f.passEvent(*history->
data(j)))
continue;
◆ 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.
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);
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));
◆ dump() [1/2]
Definition at line 312 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.
316 std::vector<DataFuncSet> funcs;
317 std::vector<DataFuncArgs>
args;
318 TString locFormat, locHeader, varHeader;
320 formats, locFormat, locHeader, varHeader))
return false;
323 TObjArray* rangeList =
ranges.Tokenize(
":");
325 TString
range = (
k < (
unsigned int)rangeList->GetEntries() ? ((TObjString*)rangeList->At(
k))->String() :
"");
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());
337 cout <<
"Invalid range specification " <<
range << endl;
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;
349 unsigned int nEntries = 0, nValues = 0;
353 if (!history)
continue;
362 cout <<
line << endl;
365 cout <<
nEntries <<
" entries selected" << endl;
◆ dump() [2/2]
Definition at line 279 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.
282 std::vector<DataFuncSet> funcs;
283 std::vector<DataFuncArgs>
args;
284 TString locFormat, locHeader, varHeader;
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;
296 if (!history)
continue;
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);
303 cout <<
line << endl;
307 cout <<
nEntries <<
" entries selected" << endl;
◆ energyDist()
TH1D * DigitMonitor::energyDist |
( |
const TString & |
name, |
|
|
int |
nBins, |
|
|
double |
eMax = 10000 |
|
) |
| const |
◆ etaPhiMap()
◆ fitChi2()
Definition at line 109 of file DigitMonitor.cxx.
116 fChi2->SetParameter(0, 4*
h.GetMaximum());
117 if (nDof > 0) fChi2->FixParameter(1, nDof);
119 h.Fit(fChi2,
"",
"", fitMin, fitMax);
120 fChi2->SetRange(xMin, xMax);
◆ func()
◆ gainDist()
TH1D * DigitMonitor::gainDist |
( |
const TString & |
name | ) |
const |
Definition at line 176 of file DigitMonitor.cxx.
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");
184 if (!history)
continue;
185 for (
unsigned int j = 0; j < history->
nData(); j++)
h->Fill(history->
data(j)->
gain());
◆ getCellHistory()
const History * MonitorBase::getCellHistory |
( |
unsigned int |
i | ) |
const |
|
virtualinherited |
◆ getCellInfo()
const CellInfo * MonitorBase::getCellInfo |
( |
unsigned int |
i | ) |
const |
|
virtualinherited |
◆ getResiduals()
Residuals * DigitMonitor::getResiduals |
( |
unsigned int |
hash, |
|
|
CaloGain::CaloGain |
gain, |
|
|
double |
absResTrunc = -1 , |
|
|
bool |
adjust = false , |
|
|
bool |
zeroTime = false |
|
) |
| const |
◆ history_value()
Definition at line 399 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.
402 double val = 0, sum1 = 0, sum2 = 0;
406 for (
unsigned int j = 0; j < history.
nData(); j++) {
407 if (!
f.passEvent(*history.
data(j)))
continue;
415 case RMSValue : sum1 += thisVal; sum2 += thisVal*thisVal;
break;
420 val = (nValues > 0 ? TMath::Sqrt((sum2 - sum1*sum1/nValues)/nValues) : -1);
421 if (TMath::Abs(
val) > 0.9*DBL_MAX)
val = 0;
◆ interface()
◆ kMatrix()
CovMatrix LArSamples::DigitMonitor::kMatrix |
( |
int |
lwb, |
|
|
int |
upb |
|
) |
| |
|
inline |
◆ layerDist()
TH1D * DigitMonitor::layerDist |
( |
const TString & |
name | ) |
const |
Definition at line 191 of file DigitMonitor.cxx.
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");
200 if (!history)
continue;
◆ 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.
578 std::vector< std::vector<ResidualCalculator> > ringCalcs;
582 cout <<
"Processing cells" << endl;
585 if ((
i+1) % 10000 == 0) cout <<
"Processing hash = " << (
i+1) << endl;
588 if (residuals && (resTrunc > 0 || timeTrunc > 0)) {
591 residuals = truncated;
594 if (residuals && residuals->
size() < minSize) {
618 cout <<
"Processing phi-symmetric data" << endl;
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;
628 cout <<
"Done!" << endl;
◆ maxValueMap()
TH2D * DigitMonitor::maxValueMap |
( |
TString |
name, |
|
|
PartitionId |
partition |
|
) |
| const |
◆ means()
TVectorD LArSamples::DigitMonitor::means |
( |
int |
lwb, |
|
|
int |
upb |
|
) |
| |
|
inline |
◆ minValueMap()
TH2D * DigitMonitor::minValueMap |
( |
TString |
name, |
|
|
PartitionId |
partition |
|
) |
| const |
◆ nChannels()
unsigned int MonitorBase::nChannels |
( |
| ) |
const |
|
virtualinherited |
◆ newCellHistory()
const History * AbsLArCells::newCellHistory |
( |
unsigned int |
i | ) |
const |
|
virtualinherited |
◆ noiseDist()
TH1D * DigitMonitor::noiseDist |
( |
const TString & |
name, |
|
|
int |
nBins, |
|
|
double |
max |
|
) |
| const |
◆ 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.
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;
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;
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();
169 if (!sampStr.IsDigit()) {
170 cout <<
"Sample argument [sample] should be an integer" << endl;
174 sample1 = sampStr.Atoi();
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();
181 if (!sampStr1.IsDigit() || !sampStr2.IsDigit()) {
182 cout <<
"Sample arguments [sample1, sample2] should be an integer" << endl;
186 sample1 = sampStr1.Atoi();
187 sample2 = sampStr2.Atoi();
190 cout <<
"Invalid specification of sample argument (expected var[sample])" << endl;
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;
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();
207 if (!sampStr.IsFloat()) {
208 cout <<
"floating-point argument expected between ()" << endl;
212 par = sampStr.Atof();
215 cout <<
"Invalid specification of floating-point argument (expected func(arg))" << endl;
221 if (varAndSample(0, 5) ==
"pass_") {
222 str = varAndSample(5, varAndSample.Length() - 5);
227 cout <<
"Unknown variable " <<
var << endl;
230 vars.push_back(varAndSample);
231 funcs.push_back(fcn);
◆ partitionMap()
◆ pass()
◆ 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.
246 cout <<
"Invalid variable specification " << vars << endl;
250 locFormat =
"| %6d | %-";
261 TString locFormatHeader = locFormat; locFormatHeader.ReplaceAll(
"d",
"s");
262 locHeader = Form(locFormatHeader,
"hash",
"location");
265 formats.emplace_back(
" %-9.8g |");
266 TString fH = formats[
i]; fH.ReplaceAll(
"g",
"s");
272 varHeader += Form(fH,
varName.Data());
◆ resetCache()
void AbsLArCells::resetCache |
( |
| ) |
const |
|
virtualinherited |
◆ resetCellInfoCache()
void AbsLArCells::resetCellInfoCache |
( |
| ) |
|
|
inherited |
◆ residualCorr()
double DigitMonitor::residualCorr |
( |
unsigned int |
k1, |
|
|
unsigned int |
k2 |
|
) |
| const |
Definition at line 454 of file DigitMonitor.cxx.
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;
◆ 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.
209 TH1D*
h =
new TH1D(
name,
"Residual distribution",
nBins, rMin, rMax);
210 h->GetXaxis()->SetTitle(
norm ?
"Residual/ADCMax (%)" :
"Residual (ADC counts)");
214 if (!history)
continue;
215 for (
unsigned int j = 0; j < history->
nData(); j++)
◆ residualParams()
bool DigitMonitor::residualParams |
( |
int |
lwb, |
|
|
int |
upb, |
|
|
CovMatrix & |
k, |
|
|
TVectorD & |
means |
|
) |
| const |
Definition at line 474 of file DigitMonitor.cxx.
476 CovMatrix sum2N(lwb, upb), sumCN(lwb, upb);
477 TVectorD
sum(lwb, upb), sumN(lwb, upb);
478 double sumA = 0,
n = 0;
481 if (!history)
continue;
482 for (
unsigned int j = 0; j < history->
nData(); j++) {
485 if (!
ofc ||
ofc->hasSameRange(lwb, upb)) { cout <<
"Invalid index bounds!" << endl;
return false; }
486 for (
int i1 = lwb; i1 <= upb; 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);
494 sumA += 1/TMath::Power(history->
data(j)->
adcMax(), 2);
500 k.ResizeTo(lwb, upb);
501 means.ResizeTo(lwb, upb);
503 for (
int i1 = lwb; i1 <= upb; i1++) {
505 sumN(i1) = sumN(i1)/
n;
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)));
◆ residualPlots()
Definition at line 222 of file DigitMonitor.cxx.
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");
233 hEtaPhi[
k]->SetMinimum(lo);
234 hEtaPhi[
k]->SetMaximum(hi);
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");
243 if ((
i+1) % 10000 == 0) cout <<
"Cell # " <<
i+1 <<
"/" <<
nChannels() << endl;
245 if (!history || history->
nData() == 0)
continue;
246 for (
unsigned short k = 0;
k < 5;
k++) {
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++) {
265 TCanvas*
c1 =
new TCanvas(
"c1",
Id::str(calo) +
" layer " + Form(
"%d",
layer), 1600, 2000);
267 for (
unsigned short k = 0;
k < 5;
k++) {
269 hEtaPhi[
k]->Draw(
"COLZ");
◆ 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.
357 unsigned int nBins = 100;
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);
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");
384 if ((
i+1) % 10000 == 0) cout <<
"Cell # " <<
i+1 <<
"/" <<
nChannels() << endl;
386 if (!history || history->
nData() == 0)
continue;
387 for (
unsigned short k = 0;
k < 5;
k++) {
390 if (!hgSED || !lgSED) {
391 if (hgSED)
delete hgSED;
392 if (lgSED)
delete lgSED;
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));
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);
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++)
420 TCanvas*
c1 =
new TCanvas(
"c1",
Id::str(calo) +
" layer " + Form(
"%d",
layer), 1600, 500);
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");
◆ residualPlotsRingComp()
Definition at line 279 of file DigitMonitor.cxx.
282 unsigned int nBins = 100;
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);
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");
305 if ((
i+1) % 10000 == 0) cout <<
"Cell # " <<
i+1 <<
"/" <<
nChannels() << endl;
307 if (!history || history->
nData() == 0)
continue;
308 for (
unsigned short k = 0;
k < 5;
k++) {
311 if (!cellSED || !ringSED) {
312 if (cellSED)
delete cellSED;
313 if (ringSED)
delete ringSED;
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));
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);
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++)
340 TCanvas*
c1 =
new TCanvas(
"c1",
Id::str(calo) +
" layer " + Form(
"%d",
layer), 1600, 500);
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");
◆ 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.
436 TH1D*
h =
new TH1D(
name,
"Shape error",
nBins, rMin, rMax);
437 h->GetXaxis()->SetTitle(
"#epsilon^{2}");
441 if (!history)
continue;
442 for (
unsigned int j = 0; j < history->
nData(); j++) {
446 h->Fill((delta*delta -
ofc->Gamma()(
k,
k))/(adcMax*adcMax));
449 cout << sqrt(
h->GetMean())*100 <<
" +/- " << sqrt(
h->GetMeanError())*100 << endl;
◆ statParams()
Definition at line 370 of file LArCalorimeter/LArSamplesMon/src/MonitorBase.cxx.
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++)
391 meanErr =
avg.meanErrors();
393 covMatrixErr =
avg.covarianceMatrixErrors();
◆ str()
◆ timeDist()
TH1D * DigitMonitor::timeDist |
( |
const TString & |
name, |
|
|
int |
nBins, |
|
|
double |
tMin = -25 , |
|
|
double |
tMax = 25 |
|
) |
| const |
◆ m_cellCache
◆ m_cellInfoCache
std::vector<CellInfo*> LArSamples::AbsLArCells::m_cellInfoCache |
|
mutableprivateinherited |
◆ m_interface
◆ m_pos
unsigned int LArSamples::AbsLArCells::m_pos |
|
mutableprivateinherited |
◆ printPeriodicity
const int LArSamples::MonitorBase::printPeriodicity = 10000 |
|
staticinherited |
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
int _layer(const DataFuncArgs &args) const
static double phiSize(CaloId calo, short layer, short region, short iPhi=-1)
double _eta(const DataFuncArgs &args) 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
static TH2D * etaPhiHist(CaloId calo, short layer, const TString &name, const TString &title)
double _xip(const DataFuncArgs &args) const
double _chi2_noCorr(const DataFuncArgs &args) const
short globalPhiRing() const
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="")
static DataFuncSet func(const TString &var)
int addCell(const ResidualCalculator &calc, CaloGain::CaloGain gain)
static bool matchCalo(CaloId id, CaloId idSpec)
virtual const History * newCellHistory(unsigned int i) const
double _sample(const DataFuncArgs &args) const
double _adjDeltaT(const DataFuncArgs &args) const
double delta(short sample) const
const CellInfo * cellInfo() const
TMatrixTSym< double > CovMatrix
SimpleShape * referenceShape(unsigned int k, double adcMax=-1, double time=Definitions::none, bool samplesOnly=false) const
virtual const History * cellHistory(unsigned int i) const
int _region(const DataFuncArgs &args) const
double _pedestalRMS(const DataFuncArgs &) const
double _xi(const DataFuncArgs &args) const
std::vector< CellInfo * > m_cellInfoCache
const Interface & interface() const
double _xiNormRing(const DataFuncArgs &) const
int _ring(const DataFuncArgs &args) const
static TString str(CaloId id)
Residuals * residuals(CaloGain::CaloGain gain=CaloGain::LARNGAIN, double absResTrunc=-1, bool correct=true, bool zeroTime=false) const
virtual const CellInfo * cellInfo(unsigned int i) const
int _nData(const DataFuncArgs &args) const
static bool scaleAndShift(std::unique_ptr< SimpleShape > &s1, double scale, double shift=0)
const History * getCellHistory(unsigned int i) const
double _pass(const DataFuncArgs &args) const
bool residualParams(int lwb, int upb, CovMatrix &k, TVectorD &means) const
double _refitDeltaT(const DataFuncArgs &args) const
static double history_value(const History &history, const DataFuncSet &func, const DataFuncArgs &args, CombinationType comb, const FilterParams &f, unsigned int &nValues)
storage of the time histories of all the cells
double _energySignif(const DataFuncArgs &args) const
unsigned int size() const
OFC * ofc(unsigned int i, int lwb=-1, int upb=-1, double time=Definitions::none, bool useCorrs=true) const
int _calo(const DataFuncArgs &args) const
static const int printPeriodicity
int addRing(const ResidualCalculator &calc, CaloGain::CaloGain gain)
double _normResidualOffset(const DataFuncArgs &args) const
double _quality(const DataFuncArgs &) const
void add(const AbsShapeErrorGetter &getter)
Residuals * getResiduals(unsigned int hash, CaloGain::CaloGain gain, double absResTrunc=-1, bool adjust=false, bool zeroTime=false) const
double _upstreamE(const DataFuncArgs &) const
double _delta(const DataFuncArgs &args) const
unsigned int nChannels() const
int _iPhi(const DataFuncArgs &args) const
int _gain(const DataFuncArgs &) const
bool add(unsigned int k, double value, double error)
int _hash(const DataFuncArgs &args) const
const TVectorD & xip() const
double _resCorrN(const DataFuncArgs &) const
const Data * data(unsigned int i) const
double _chi2_ringCorr(const DataFuncArgs &args) const
double _ofcSigma(const DataFuncArgs &args) const
double _phi(const DataFuncArgs &args) const
double _adcMax_new(const DataFuncArgs &) const
double _residualOffset(const DataFuncArgs &args) const
static bool parseVariables(TString varStr, std::vector< TString > &vars, std::vector< DataFuncSet > &funcs, std::vector< DataFuncArgs > &args)
int _iEta(const DataFuncArgs &args) const
int _feedThrough(const DataFuncArgs &args) const
double _chi2_k(const DataFuncArgs &args) const
int _maxPosition(const DataFuncArgs &) const
double _adjScale(const DataFuncArgs &args) const
string varName
end cluster ToT and charge
virtual const CellInfo * getCellInfo(unsigned int i) const
void setShapeErrorGetter(const AbsShapeErrorGetter *err) const
double _pedestalSubstractedSample(const DataFuncArgs &args) const
const CovMatrix & xipErr() const
TString location(int verbose=1) const
double _peakSignif(const DataFuncArgs &args) const
double _normResidualError(const DataFuncArgs &args) const
double _timeECorr(const DataFuncArgs &args) const
double _timeForSplash2(const DataFuncArgs &args) const
const CovMatrix & xiErr() const
virtual const History * getCellHistory(unsigned int i) const =0
const Interface * m_interface
unsigned int nData() const
ResidualCalculator * calculator(bool weigh=false) const
double chi2(int i, int lwb=-1, int upb=-1, int chi2Params=DefaultChi2, ShapeErrorType shapeErrorType=BestShapeError, unsigned int *nDof=0) const
double _xiNormCell(const DataFuncArgs &) const
double _timeForSplash1(const DataFuncArgs &args) const
static TH2D * partitionHist(PartitionId part, const TString &name, const TString &title)
const CellInfo * getCellInfo(unsigned int i) const
double _ofcTime(const DataFuncArgs &) const
const History * pass(unsigned int i, const FilterParams &f) const
double _chi2_cellCorr(const DataFuncArgs &args) const
double _timeNoTOF(const DataFuncArgs &args) const
const std::string selection
const CellInfo * cellInfoCache(unsigned int i) const
double maxValue(bool withErrors=false) const
const History * m_cellCache
double _minValue(const DataFuncArgs &) const
double _upstreamERatio(const DataFuncArgs &args) const
Residuals * truncate(double nWidthsRes, double nWidthsTime=-1, unsigned int nMax=0) const
CaloGain::CaloGain gain() const
double _maxValue(const DataFuncArgs &) const
double _noise(const DataFuncArgs &) const
static TF1 * fitChi2(TH1D &h, const char *name, double xMin, double xMax, double nDof=-1, double fitMin=Definitions::none, double fitMax=Definitions::none)
TH2D * partitionMap(const DataFuncSet &func, const DataFuncArgs &args, TString name, PartitionId partition, const TString &title="", CombinationType comb=AverageValue, const FilterParams &f=FilterParams()) const
int _slot(const DataFuncArgs &args) const
int _run(const DataFuncArgs &) const
TVectorD means(int lwb, int upb)
double _chi2Anomaly(const DataFuncArgs &args) const
double _energy(const DataFuncArgs &) const
int _goodForShapeCorr(const DataFuncArgs &) const
double _count(const DataFuncArgs &) 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
const ShapeErrorData * shapeErrorData(CaloGain::CaloGain gain, ShapeErrorType shapeErrorType=BestShapeError, const Residual *res=0) const
const boost::regex ref(r_ef)
unsigned int size() const
double val(const Data &data, const DataFuncArgs &args) const
int _index(const DataFuncArgs &) const
static bool isNone(double x)
double xi(short sample, ShapeErrorType shapeErrorType=BestShapeError, CaloGain::CaloGain g=CaloGain::UNKNOWNGAIN, bool xip=false) const
virtual void resetCache() const
double _residual(const DataFuncArgs &args) const
static TF1 * chi2Func(const char *name, double xMin, double xMax)
double _x(const DataFuncArgs &args) const
double _ofcGamma(const DataFuncArgs &args) const
double _residualError(const DataFuncArgs &args) const
const TVectorD & xi() const
int _lumiBlock(const DataFuncArgs &) const
double _rt(const DataFuncArgs &args) const
int _channel(const DataFuncArgs &args) const
double _refitScale(const DataFuncArgs &args) const
MonitorBase(const Interface &interface)
Constructor
double _chi2(const DataFuncArgs &) const
double _adcMax(const DataFuncArgs &) const
double _z(const DataFuncArgs &args) const
double _pedestal(const DataFuncArgs &) const
virtual unsigned int nChannels() const
int _event(const DataFuncArgs &) const
double _y(const DataFuncArgs &args) const
int _bunchId(const DataFuncArgs &) const
double _refitChi2(const DataFuncArgs &args) const
double _xiRing(const DataFuncArgs &args) const
double _xiCell(const DataFuncArgs &args) const