ATLAS Offline Software
Loading...
Searching...
No Matches
TileFilterResult Class Reference

Auxiliary class for TileRawChannelMakerManyAmps. More...

#include <TileFilterResult.h>

Collaboration diagram for TileFilterResult:

Public Member Functions

 TileFilterResult (std::vector< float > &dig, double sigma)
 ~TileFilterResult ()
double getSigDig () const
CLHEP::HepVector & getDigRef ()
std::vector< int > & getVcrossRef ()
int & getFitIndexRef ()
int & getNparRef ()
CLHEP::HepVector & getParamRef ()
CLHEP::HepVector & getErrRef ()
CLHEP::HepVector & getResidRef ()
double & getChi2Ref ()
int addCross (int kcrIndex)
int dropCross (int kcrIndex)
void printFitParam ()
double getInTime (double &, double &, double &, double &, double &)
void snapShot (int imode)

Private Attributes

bool m_debug
CLHEP::HepVector m_digits
double m_sigDigit
int m_nParam
int m_nPileup
int m_iFitIndex
std::vector< int > m_vCross
CLHEP::HepVector m_fitParam
CLHEP::HepVector m_fitErr
CLHEP::HepVector m_residuals
double m_chi2

Detailed Description

Auxiliary class for TileRawChannelMakerManyAmps.

Definition at line 21 of file TileFilterResult.h.

Constructor & Destructor Documentation

◆ TileFilterResult()

TileFilterResult::TileFilterResult ( std::vector< float > & dig,
double sigma )

Definition at line 18 of file TileFilterResult.cxx.

18 {
19 m_debug = false;
20 int ND = dig.size();
21 CLHEP::HepVector digtem(ND);
22 m_digits = digtem;
23 for (int id = 0; id < ND; id++) {
24 m_digits[id] = dig[id];
25 }
26 //int nrow = digits.num_row();
27 //int nrowtem = digtem.num_row();
29 // Initialize some of the variables that will be set later.
30 m_nParam = 1;
31 m_nPileup = 0;
32 m_vCross.clear();
33 m_chi2 = 999.;
34 m_iFitIndex = -1;
35}
std::vector< int > m_vCross
CLHEP::HepVector m_digits

◆ ~TileFilterResult()

TileFilterResult::~TileFilterResult ( )

Definition at line 37 of file TileFilterResult.cxx.

37 {
38 return;
39}

Member Function Documentation

◆ addCross()

int TileFilterResult::addCross ( int kcrIndex)

Definition at line 132 of file TileFilterResult.cxx.

132 {
133
134 int iret = -1;
135
136 //Check that kcrIndex is not already in list.
137 bool ldup = false;
138 if (m_nParam > 1) {
139 int Namp = m_nParam - 1;
140 for (int icr = 0; icr < Namp; icr++) {
141 if (kcrIndex == m_vCross[icr]) {
142 ldup = true;
143 if (m_debug) {
144 std::cout << " TileFilterResult.addCross: kcrIndex=" << kcrIndex << " is already in crossing list: Kcross =";
145 for (int j = 0; j < Namp; j++) {
146 std::cout << " " << m_vCross[j];
147 }
148 std::cout << std::endl;
149 }
150 if (ldup) break;
151 }
152 } // end for loop
153 } // end "if(Nparam>1)"
154 if (ldup) {
155 iret = 1;
156 return iret;
157 }
158
159 // Add the new crossing.
160 iret = 0;
161 m_vCross.push_back(kcrIndex);
162 std::sort(m_vCross.begin(), m_vCross.end());
163 m_nParam = m_nParam + 1;
164
165 // Since we have a new Vcross configuration, iFitIndex is not yet defined for it.
166 m_iFitIndex = -1;
167
168 if (m_debug) {
169 int Namp = m_nParam - 1;
170 std::cout << " TileFilterResult.addCross. Exit with Nparam=" << m_nParam << ", Vcross=";
171 for (int icr = 0; icr < Namp; icr++) {
172 std::cout << " " << std::setw(3) << m_vCross[icr];
173 }
174 std::cout << std::endl;
175 }
176
177 return iret;
178}
float j(const xAOD::IParticle &, const xAOD::TrackMeasurementValidation &hit, const Eigen::Matrix3d &jab_inv)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.

◆ dropCross()

int TileFilterResult::dropCross ( int kcrIndex)

Definition at line 180 of file TileFilterResult.cxx.

180 {
181 // Drop the crossing stored in amplitude # iamp.
182 int iret = -1;
183 int Namp = m_nParam - 1;
184 for (int iamp = 1; iamp < Namp; iamp++) {
185 if (m_vCross[iamp] == idrop) {
186 // Erase the crossing.
187 iret = 0;
188 m_vCross.erase(m_vCross.begin() + iamp);
189 // std::sort(Vcross.begin(), Vcross.end() );
190 m_nParam = m_nParam - 1;
191 }
192 }
193 if (iret != 0) {
194 std::cout << "error in TileFilterResult.dropCross: idrop=" << idrop << "but vcross =";
195 for (int iamp = 0; iamp < Namp; iamp++) {
196 std::cout << " " << m_vCross[iamp];
197 }
198 std::cout << std::endl;
199 return iret;
200 }
201
202 // Since we have a new Vcross configuration, iFitIndex is not yet defined for it.
203 m_iFitIndex = -1;
204
205 if (m_debug) {
206 int Namp = m_nParam - 1;
207 std::cout << " TileFilterResult.dropCross. Exit with Nparam=" << m_nParam << ", Vcross=";
208 for (int icr = 0; icr < Namp; icr++) {
209 std::cout << " " << std::setw(3) << m_vCross[icr];
210 }
211 std::cout << std::endl;
212 }
213
214 return iret;
215}

◆ getChi2Ref()

double & TileFilterResult::getChi2Ref ( )

Definition at line 74 of file TileFilterResult.cxx.

74 {
75 return m_chi2;
76}

◆ getDigRef()

CLHEP::HepVector & TileFilterResult::getDigRef ( )

Definition at line 46 of file TileFilterResult.cxx.

46 {
47 return m_digits;
48}

◆ getErrRef()

CLHEP::HepVector & TileFilterResult::getErrRef ( )

Definition at line 66 of file TileFilterResult.cxx.

66 {
67 return m_fitErr;
68}
CLHEP::HepVector m_fitErr

◆ getFitIndexRef()

int & TileFilterResult::getFitIndexRef ( )

Definition at line 54 of file TileFilterResult.cxx.

54 {
55 return m_iFitIndex;
56}

◆ getInTime()

double TileFilterResult::getInTime ( double & amp,
double & err,
double & ped,
double & chi2,
double & t )

Definition at line 90 of file TileFilterResult.cxx.

90 {
91 amp = m_fitParam[1];
92 err = m_fitErr[1];
93 ped = m_fitParam[0];
94 chi2 = m_chi2;
95 t = 0.;
96
97 return m_chi2;
98}
CLHEP::HepVector m_fitParam
double chi2(TH1 *h0, TH1 *h1)

◆ getNparRef()

int & TileFilterResult::getNparRef ( )

Definition at line 58 of file TileFilterResult.cxx.

58 {
59 return m_nParam;
60}

◆ getParamRef()

CLHEP::HepVector & TileFilterResult::getParamRef ( )

Definition at line 62 of file TileFilterResult.cxx.

62 {
63 return m_fitParam;
64}

◆ getResidRef()

CLHEP::HepVector & TileFilterResult::getResidRef ( )

Definition at line 70 of file TileFilterResult.cxx.

70 {
71 return m_residuals;
72}
CLHEP::HepVector m_residuals

◆ getSigDig()

double TileFilterResult::getSigDig ( ) const

Definition at line 41 of file TileFilterResult.cxx.

41 {
42 return m_sigDigit;
43}

◆ getVcrossRef()

std::vector< int > & TileFilterResult::getVcrossRef ( )

Definition at line 50 of file TileFilterResult.cxx.

50 {
51 return m_vCross;
52}

◆ printFitParam()

void TileFilterResult::printFitParam ( )

Definition at line 78 of file TileFilterResult.cxx.

78 {
79 std::cout << std::format(" Print fitted param from TileFilterResult: Nparam={}, chisq={}\n", m_nParam, m_chi2);
80 for (int ipar = 0; ipar < m_nParam; ipar++) {
81 if (ipar == 0) {
82 std::cout << std::format(" i={}, kcr=P, A={:>5.2g} +-{}\n", ipar, m_fitParam[ipar], m_fitErr[ipar]);
83 } else {
84 std::cout << std::format(" i={}, kcr={}, A={} +-{}\n", ipar, m_vCross[ipar - 1], m_fitParam[ipar], m_fitErr[ipar]);
85 }
86 }
87 return;
88}

◆ snapShot()

void TileFilterResult::snapShot ( int imode)

Definition at line 100 of file TileFilterResult.cxx.

100 {
101 // This print a short snapshot of the FilterResult state.
102 std::cout << std::format(" SnapShot: imode={}. Nparam={}, chisq={}, iFitIndex{}, Vcross=",
103 imode,
104 m_nParam,
105 m_chi2,
107 int Namp = m_nParam - 1;
108 for (int jamp = 0; jamp < Namp; jamp++) {
109 std::cout << std::format(" {}", m_vCross[jamp]);
110 }
111 std::cout << std::endl;
112 if (m_iFitIndex < 0) return;
113
114 if (imode > 0) {
115 std::cout << " FitParam=";
116 for (int ipar = 0; ipar < m_nParam; ipar++) {
117 std::cout << std::format("{:>5.1g}+-{}", m_fitParam[ipar], m_fitErr[ipar]);
118 if (ipar < m_nParam - 1) std::cout << ", ";
119 }
120 std::cout << std::endl;
121 }
122 if (imode > 1) {
123 int Ndig = m_digits.num_row();
124 std::cout << " Residuals=";
125 for (int idig = 0; idig < Ndig; idig++) {
126 std::cout << std::format(" {:>4.3g}", m_residuals[idig]);
127 }
128 std::cout << std::endl;
129 }
130}

Member Data Documentation

◆ m_chi2

double TileFilterResult::m_chi2
private

Definition at line 62 of file TileFilterResult.h.

◆ m_debug

bool TileFilterResult::m_debug
private

Definition at line 48 of file TileFilterResult.h.

◆ m_digits

CLHEP::HepVector TileFilterResult::m_digits
private

Definition at line 50 of file TileFilterResult.h.

◆ m_fitErr

CLHEP::HepVector TileFilterResult::m_fitErr
private

Definition at line 59 of file TileFilterResult.h.

◆ m_fitParam

CLHEP::HepVector TileFilterResult::m_fitParam
private

Definition at line 58 of file TileFilterResult.h.

◆ m_iFitIndex

int TileFilterResult::m_iFitIndex
private

Definition at line 55 of file TileFilterResult.h.

◆ m_nParam

int TileFilterResult::m_nParam
private

Definition at line 53 of file TileFilterResult.h.

◆ m_nPileup

int TileFilterResult::m_nPileup
private

Definition at line 54 of file TileFilterResult.h.

◆ m_residuals

CLHEP::HepVector TileFilterResult::m_residuals
private

Definition at line 61 of file TileFilterResult.h.

◆ m_sigDigit

double TileFilterResult::m_sigDigit
private

Definition at line 51 of file TileFilterResult.h.

◆ m_vCross

std::vector<int> TileFilterResult::m_vCross
private

Definition at line 56 of file TileFilterResult.h.


The documentation for this class was generated from the following files: