Dead material correction coefficients.
More...
#include <CaloHadDMCoeff2.h>
|
| | CaloHadDMCoeff2 () |
| | CaloHadDMCoeff2 (const CaloHadDMCoeff2 &other) |
| CaloHadDMCoeff2 & | operator= (const CaloHadDMCoeff2 &other) |
| int | getSizeDMAreaSet () const |
| void | addHadDMArea (const HadDMArea &theArea) |
| void | setHadDMArea (const int n_area, const HadDMArea &theArea) |
| const HadDMArea * | getHadDMArea (int n_area) const |
| int | getSizeDMCoeffSet () const |
| void | addHadDMCoeff (const HadDMCoeff &theData) |
| void | setHadDMCoeff (const int iBin, const HadDMCoeff &theData) |
| const HadDMCoeff * | getHadDMCoeff (const int &iBin) const |
| const HadDMCoeff * | getHadDMCoeff (const int &n_area, const float &cls_emfrac, const float &cls_ener, const float &cls_lambda, const float &cls_eta) const |
| int | getBinFrac (const int dm_area, const float &cls_frac) const |
| int | getBinEner (const int dm_area, const float &cls_ener) const |
| int | getBinLambda (const int dm_area, const float &cls_lambda) const |
| int | getBinEta (const int dm_area, const float &cls_eta) const |
| int | getBin (const int n_area, const float &cls_em_frac, const float &cls_energy, const float &cls_lambda, const float &cls_eta) const |
| void | PrintData (std::ostream &ff) const |
| int | bin2indexes (const int iBin, std::vector< int > &v_dim_indx) const |
Dead material correction coefficients.
- Author
- Gennady Pospelov guenn.nosp@m.adi..nosp@m.pospe.nosp@m.lov@.nosp@m.cern..nosp@m.ch
- Date
- 21-November-2007
Holds dead material correction coefficients for using in Local Hadronic Correction Procedure (DeadMaterialCorrrection tool)
Definition at line 23 of file CaloHadDMCoeff2.h.
◆ HadDMCoeff
◆ key_area_type
◆ key_dim_type
◆ CaloHadDMCoeff2() [1/2]
| CaloHadDMCoeff2::CaloHadDMCoeff2 |
( |
| ) |
|
|
default |
◆ CaloHadDMCoeff2() [2/2]
◆ addHadDMArea()
| void CaloHadDMCoeff2::addHadDMArea |
( |
const HadDMArea & | theArea | ) |
|
Definition at line 39 of file CaloHadDMCoeff2.cxx.
40{
43}
std::vector< HadDMArea > m_DMAreaSet
std::vector< int > m_area_offsets
◆ addHadDMCoeff()
| void CaloHadDMCoeff2::addHadDMCoeff |
( |
const HadDMCoeff & | theData | ) |
|
◆ bin2indexes()
| int CaloHadDMCoeff2::bin2indexes |
( |
const int | iBin, |
|
|
std::vector< int > & | v_dim_indx ) const |
Definition at line 168 of file CaloHadDMCoeff2.cxx.
169{
170 int i_area = 0;
172 for(i_area=0; i_area<narea; i_area++) {
175 }
177 std::vector<HadDMDimension > v_dims;
178 v_dims.resize(4);
179 v_dims[0] = theArea->m_dimFrac;
180 v_dims[1] = theArea->m_dimEner;
181 v_dims[2] = theArea->m_dimLambda;
182 v_dims[3] = theArea->m_dimEta;
183 int ndim = (
int) v_dims.size();
184 v_dim_indx.resize(ndim,0);
185 for(int i_dim=0; i_dim<ndim; i_dim++){
186 int x0 = 0;
187 for(int j=0; j<i_dim; j++){
188 x0 += v_dim_indx[j]*v_dims[j].xloc;
189 }
190 v_dim_indx[i_dim] = (iBin-theArea->m_offset-x0)/v_dims[i_dim].xloc;
191 }
192 return 0;
193}
◆ getBin()
| int CaloHadDMCoeff2::getBin |
( |
const int | n_area, |
|
|
const float & | cls_em_frac, |
|
|
const float & | cls_energy, |
|
|
const float & | cls_lambda, |
|
|
const float & | cls_eta ) const |
Definition at line 126 of file CaloHadDMCoeff2.cxx.
127{
128 if(n_dm_area < 0 || n_dm_area >= (
int)
m_DMAreaSet.size()) {
129 std::cout << " WARNING CaloHadDMCoeff::getBin -> wrong n_area: " << n_dm_area << std::endl;
130 return (-1);
131 }
132 int iBin = -1;
134 int ifrac = -1, iener = -1, ilambda = -1, ieta = -1;
136 if( ifrac != -1 ) {
138 if( iener != -1 ) {
140 if( ilambda != -1 ) {
142 if ( ieta != -1 ) {
143 iBin = ieta + ilambda*dmArea->m_dimEta.m_nbins
144 + iener*dmArea->m_dimEta.m_nbins*dmArea->m_dimLambda.m_nbins
145 + ifrac*dmArea->m_dimEta.m_nbins*dmArea->m_dimLambda.m_nbins*dmArea->m_dimEner.m_nbins
146 + dmArea->m_offset;
147 }
148 }
149 }
150 }
151 return iBin;
152}
int getBinEner(const int dm_area, const float &cls_ener) const
int getBinLambda(const int dm_area, const float &cls_lambda) const
int getBinEta(const int dm_area, const float &cls_eta) const
int getBinFrac(const int dm_area, const float &cls_frac) const
◆ getBinEner()
| int CaloHadDMCoeff2::getBinEner |
( |
const int | dm_area, |
|
|
const float & | cls_ener ) const |
Definition at line 96 of file CaloHadDMCoeff2.cxx.
97{
99 if( cls_ener < dmArea->m_dimEner.m_vMin || cls_ener >= dmArea->m_dimEner.m_vMax ) return (-1);
100 int iener;
101 for (iener=0; iener<dmArea->m_dimEner.m_nbins; iener++) {
102 if( cls_ener < dmArea->m_dimEner.m_vBins[iener] ) break;
103 if( cls_ener >= dmArea->m_dimEner.m_vBins[iener] && (iener == dmArea->m_dimEner.m_nbins-1 || cls_ener < dmArea->m_dimEner.m_vBins[iener+1]) ) break;
104 }
105 return iener;
106}
◆ getBinEta()
| int CaloHadDMCoeff2::getBinEta |
( |
const int | dm_area, |
|
|
const float & | cls_eta ) const |
Definition at line 117 of file CaloHadDMCoeff2.cxx.
118{
120 float cls_abseta = std::abs(cls_eta);
121 if(cls_abseta < dmArea->m_dimEta.m_vMin || cls_abseta >= dmArea->m_dimEta.m_vMax) return (-1);
122 return (int)((cls_abseta - dmArea->m_dimEta.m_vMin)/dmArea->m_dimEta.m_bin_size);
123}
◆ getBinFrac()
| int CaloHadDMCoeff2::getBinFrac |
( |
const int | dm_area, |
|
|
const float & | cls_frac ) const |
Definition at line 88 of file CaloHadDMCoeff2.cxx.
89{
91 if(cls_emfrac < dmArea->m_dimFrac.m_vMin || cls_emfrac >= dmArea->m_dimFrac.m_vMax) return (-1);
92 return (int)((cls_emfrac - dmArea->m_dimFrac.m_vMin)/dmArea->m_dimFrac.m_bin_size);
93}
◆ getBinLambda()
| int CaloHadDMCoeff2::getBinLambda |
( |
const int | dm_area, |
|
|
const float & | cls_lambda ) const |
Definition at line 109 of file CaloHadDMCoeff2.cxx.
110{
112 if(cls_lambda < dmArea->m_dimLambda.m_vMin || cls_lambda >= dmArea->m_dimLambda.m_vMax) return (-1);
113 return (int)((cls_lambda - dmArea->m_dimLambda.m_vMin)/dmArea->m_dimLambda.m_bin_size);
114}
◆ getHadDMArea()
◆ getHadDMCoeff() [1/2]
◆ getHadDMCoeff() [2/2]
| const CaloHadDMCoeff2::HadDMCoeff * CaloHadDMCoeff2::getHadDMCoeff |
( |
const int & | n_area, |
|
|
const float & | cls_emfrac, |
|
|
const float & | cls_ener, |
|
|
const float & | cls_lambda, |
|
|
const float & | cls_eta ) const |
Definition at line 155 of file CaloHadDMCoeff2.cxx.
156{
157 int iBin =
getBin(n_area, cls_emfrac, cls_ener, cls_lambda, cls_eta);
159}
const HadDMCoeff * getHadDMCoeff(const int &iBin) const
int getBin(const int n_area, const float &cls_em_frac, const float &cls_energy, const float &cls_lambda, const float &cls_eta) const
◆ getSizeDMAreaSet()
| int CaloHadDMCoeff2::getSizeDMAreaSet |
( |
| ) |
const |
|
inline |
◆ getSizeDMCoeffSet()
| int CaloHadDMCoeff2::getSizeDMCoeffSet |
( |
| ) |
const |
|
inline |
◆ operator=()
Definition at line 25 of file CaloHadDMCoeff2.cxx.
26{
27 if (this != &other) {
31 }
32 return *this;
33}
◆ PrintData()
| void CaloHadDMCoeff2::PrintData |
( |
std::ostream & | ff | ) |
const |
Definition at line 199 of file CaloHadDMCoeff2.cxx.
200{
202 {
203 "# Coeffs for Dead Material corrections in DeadMaterialCorrectionTool2 tool.\n\n"
204 };
207
208
211 fout <<
"zone " <<
area->m_indx <<
" " <<
area->m_is_on <<
" " <<
area->m_title << std::endl;
212 std::vector<CaloHadDMCoeff2::HadDMDimension > v_dims;
213 v_dims.resize(4);
214 v_dims[0] =
area->m_dimFrac;
215 v_dims[1] =
area->m_dimEner;
216 v_dims[2] =
area->m_dimLambda;
217 v_dims[3] =
area->m_dimEta;
218 for(unsigned int i_dim=0; i_dim<v_dims.size(); i_dim++){
219 CaloHadDMCoeff2::HadDMDimension
dim = v_dims[i_dim];
220 sprintf(line,
"%-6s %2d %6.3f %12.3f ",
dim.m_title.c_str(),
dim.m_nbins,
dim.m_vMin,
dim.m_vMax);
221 std::string sline(line);
223 sline += "flat";
225 sline += "hand";
226 } else {
227 std::cout << "CaloHadDMCoeff2::PrintData2() -> Error! p1." << std::endl;
228 }
231 for(
unsigned int i=0;
i<
dim.m_vBins.size();
i++){
233 }
234 }
236 }
237 fout <<
"npars " <<
area->m_nPars << std::endl;
238
239 for(
int i_data=0; i_data<
area->m_length; i_data++) {
240 int indx =
area->m_offset + i_data;
242 fout << std::setw(5) << indx <<
" ";
243 std::vector<int > v_dim_indexes;
245 for(unsigned int i_dim=0; i_dim<v_dim_indexes.size(); i_dim++){
246 fout << std::setw(4) << v_dim_indexes[i_dim] <<
" ";
247 }
249 for(
int i_par=0; i_par<
area->m_nPars; i_par++){
250 std::stringstream foutx;
251 foutx << std::fixed << std::setprecision(5) << std::setw(12) << (*pars)[i_par] << " ";
253 }
255 }
256
258 }
259
260}
int bin2indexes(const int iBin, std::vector< int > &v_dim_indx) const
std::vector< float > HadDMCoeff
◆ setHadDMArea()
| void CaloHadDMCoeff2::setHadDMArea |
( |
const int | n_area, |
|
|
const HadDMArea & | theArea ) |
◆ setHadDMCoeff()
| void CaloHadDMCoeff2::setHadDMCoeff |
( |
const int | iBin, |
|
|
const HadDMCoeff & | theData ) |
◆ m_area_offsets
| std::vector<int > CaloHadDMCoeff2::m_area_offsets |
|
private |
◆ m_DMAreaSet
| std::vector<HadDMArea> CaloHadDMCoeff2::m_DMAreaSet |
|
private |
◆ m_DMCoeffSet
| std::vector<HadDMCoeff> CaloHadDMCoeff2::m_DMCoeffSet |
|
private |
The documentation for this class was generated from the following files: