#include <Residual.h>
|
| | Residuals () |
| | Residuals (const std::vector< Residual > &r) |
| virtual | ~Residuals () |
| unsigned int | size () const |
| const Residual * | residual (unsigned int i) const |
| int | lwb () const |
| int | upb () const |
| bool | add (const Residual &residual) |
| bool | medianVars (TVectorD &medians, TVectorD &widths) const |
| Residuals * | truncate (double nWidthsRes, double nWidthsTime=-1, unsigned int nMax=0) const |
| ResidualCalculator * | calculator (bool weigh=false) const |
| TH1D * | histogram (short sample, const TString &name, int nBins, double xMin, double xMax) const |
| bool | isInRange (int i) const |
| bool | hasSameRange (int lw, int up) const |
| bool | hasSameRange (const IndexRange &other) const |
| bool | hasSameRange (const TVectorD &v) const |
| bool | providesRange (int lw, int up) const |
| bool | providesRange (const IndexRange &other) const |
| bool | providesRange (const TVectorD &v) const |
| TString | rangeStr () const |
| int | commonLwb (const IndexRange &other) const |
| int | commonUpb (const IndexRange &other) const |
| bool | checkRange (int &l, int &h) const |
◆ Residuals() [1/2]
| LArSamples::Residuals::Residuals |
( |
| ) |
|
|
inline |
◆ Residuals() [2/2]
| LArSamples::Residuals::Residuals |
( |
const std::vector< Residual > & | r | ) |
|
|
inline |
◆ ~Residuals()
| virtual LArSamples::Residuals::~Residuals |
( |
| ) |
|
|
inlinevirtual |
◆ add()
| bool LArSamples::Residuals::add |
( |
const Residual & | residual | ) |
|
|
inline |
◆ calculator()
◆ checkRange()
| bool IndexRange::checkRange |
( |
int & | l, |
|
|
int & | h ) const |
|
inherited |
Definition at line 14 of file IndexRange.cxx.
15{
16 if (l < 0)
19 cout <<
"IndexRange::checkRange : lower bound " <<
l <<
" is out of bounds" << endl;
20 return false;
21 }
22
23 if (h < 0)
26 cout <<
"IndexRange::checkRange : upper bound " <<
h <<
" is out of bounds" << endl;
27 return false;
28 }
29
30 return true;
31}
virtual int lwb() const =0
bool isInRange(int i) const
virtual int upb() const =0
l
Printing final latex table to .tex output file.
◆ commonLwb()
| int LArSamples::IndexRange::commonLwb |
( |
const IndexRange & | other | ) |
const |
|
inlineinherited |
◆ commonUpb()
| int LArSamples::IndexRange::commonUpb |
( |
const IndexRange & | other | ) |
const |
|
inlineinherited |
◆ hasSameRange() [1/3]
| bool LArSamples::IndexRange::hasSameRange |
( |
const IndexRange & | other | ) |
const |
|
inlineinherited |
Definition at line 30 of file IndexRange.h.
bool hasSameRange(int lw, int up) const
◆ hasSameRange() [2/3]
| bool LArSamples::IndexRange::hasSameRange |
( |
const TVectorD & | v | ) |
const |
|
inlineinherited |
◆ hasSameRange() [3/3]
| bool LArSamples::IndexRange::hasSameRange |
( |
int | lw, |
|
|
int | up ) const |
|
inlineinherited |
◆ histogram()
| TH1D * Residuals::histogram |
( |
short | sample, |
|
|
const TString & | name, |
|
|
int | nBins, |
|
|
double | xMin, |
|
|
double | xMax ) const |
◆ isInRange()
| bool LArSamples::IndexRange::isInRange |
( |
int | i | ) |
const |
|
inlineinherited |
◆ lwb()
| int LArSamples::Residuals::lwb |
( |
| ) |
const |
|
inlinevirtual |
◆ medianVars()
| bool Residuals::medianVars |
( |
TVectorD & | medians, |
|
|
TVectorD & | widths ) const |
Definition at line 87 of file LArCalorimeter/LArSamplesMon/src/Residual.cxx.
88{
89 if (
size() == 0)
return false;
90 medians.ResizeTo(
lwb(),
upb() + 1);
91 widths.ResizeTo (
lwb(),
upb() + 1);
92
93 double halfSigmaQuantile = TMath::Prob(1,1)/2;
94 double medianQuantile = 0.5;
95
96 std::vector<Residual> sortedResiduals =
m_residuals;
97
98 for (
short i =
lwb();
i <=
upb() + 1;
i++) {
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128 std::sort(sortedResiduals.begin(), sortedResiduals.end(), ResidualCompare(i));
129 Residual& medianRes = sortedResiduals[(
unsigned int)(sortedResiduals.size()*medianQuantile)];
130 Residual& loHalfSigmaRes = sortedResiduals[(
unsigned int)(sortedResiduals.size()*halfSigmaQuantile)];
131 Residual& hiHalfSigmaRes = sortedResiduals[(
unsigned int)(sortedResiduals.size()*(1 - halfSigmaQuantile))];
133 double loHalfSigma = (
i <
upb() + 1 ? loHalfSigmaRes.
scaledDelta(i) : loHalfSigmaRes.
time());
134 double hiHalfSigma = (
i <
upb() + 1 ? hiHalfSigmaRes.
scaledDelta(i) : hiHalfSigmaRes.
time());
135
138 }
139 return true;
140}
double scaledDelta(short i) const
float median(std::vector< float > &Vec)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
◆ providesRange() [1/3]
| bool LArSamples::IndexRange::providesRange |
( |
const IndexRange & | other | ) |
const |
|
inlineinherited |
Definition at line 34 of file IndexRange.h.
bool providesRange(int lw, int up) const
◆ providesRange() [2/3]
| bool LArSamples::IndexRange::providesRange |
( |
const TVectorD & | v | ) |
const |
|
inlineinherited |
◆ providesRange() [3/3]
| bool LArSamples::IndexRange::providesRange |
( |
int | lw, |
|
|
int | up ) const |
|
inlineinherited |
◆ rangeStr()
| TString LArSamples::IndexRange::rangeStr |
( |
| ) |
const |
|
inlineinherited |
◆ residual()
| const Residual * LArSamples::Residuals::residual |
( |
unsigned int | i | ) |
const |
|
inline |
◆ size()
| unsigned int LArSamples::Residuals::size |
( |
| ) |
const |
|
inline |
◆ truncate()
| Residuals * Residuals::truncate |
( |
double | nWidthsRes, |
|
|
double | nWidthsTime = -1, |
|
|
unsigned int | nMax = 0 ) const |
Definition at line 143 of file LArCalorimeter/LArSamplesMon/src/Residual.cxx.
144{
146 TVectorD medians, widths;
147
148 if (nMax > 0) {
150 for (
unsigned int i = 0;
i < nMax;
i++) original->
add(*
residual(i));
151 if (!original->
medianVars(medians, widths)) {
delete original;
return nullptr;}
152 delete original;
153 }
154 else {
155 if (!
medianVars(medians, widths))
return nullptr;
156 }
158
160 bool pass = true;
161 if (nMax > 0 && truncated->
size() == nMax)
break;
162 for (
short i =
lwb();
i <=
upb();
i++) {
163 if (nWidthsRes > 0 && TMath::Abs(
residual.scaledDelta(i) - medians[i]) > nWidthsRes*widths[i]) {
164 pass = false;
165 break;
166 }
167 }
168 if (!pass) continue;
169 if (nWidthsTime > 0 && TMath::Abs(
residual.time() - medians[
upb() + 1]) > nWidthsTime*widths[
upb() + 1])
continue;
171 }
172 return truncated;
173}
bool medianVars(TVectorD &medians, TVectorD &widths) const
bool add(const Residual &residual)
◆ upb()
| int LArSamples::Residuals::upb |
( |
| ) |
const |
|
inlinevirtual |
◆ m_residuals
| std::vector<Residual> LArSamples::Residuals::m_residuals |
|
private |
The documentation for this class was generated from the following files: