CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
CSCXonStrip_MatchGatti Class Reference

#include <CSCXonStrip_MatchGatti.h>

Public Member Functions

 CSCXonStrip_MatchGatti (const edm::ParameterSet &ps)
 
void findXOnStrip (const CSCDetId &id, const CSCLayer *layer, const CSCStripHit &stripHit, int centralStrip, float &xWithinChamber, float &stripWidth, const float &tpeak, float &xWithinStrip, float &sigma, int &quality_flag)
 Returns fitted local x position and its estimated error. More...
 
void initChamberSpecs ()
 Use specs to setup Gatti parameters. More...
 
void setConditions (const CSCRecoConditions *reco)
 Cache pointer to conditions data. More...
 
void setupMatrix ()
 Set matrix for XT corrections and noise. More...
 
 ~CSCXonStrip_MatchGatti ()
 

Private Member Functions

double calculateXonStripError (float stripWidth, bool ME1_1)
 
double calculateXonStripPosition (float stripWidth, bool ME1_1)
 
 CSCXonStrip_MatchGatti (const CSCXonStrip_MatchGatti &)
 
double estimated2Gatti (double Xestimated, float StripWidth, bool ME1_1)
 
double estimated2GattiCorrection (double Xestimated, float StripWidth, bool ME1_1)
 
void getCorrectionValues (std::string Estimator)
 
void hardcodedCorrectionInitialization ()
 
CSCXonStrip_MatchGattioperator= (const CSCXonStrip_MatchGatti &)
 
double xfError_Noise (double noise)
 
double xfError_XTasym (double XTasym)
 

Private Attributes

float a11 [3]
 Store elements of auto-correlation matrices: 0 = left, 1 = middle, 2 = right. More...
 
float a12 [3]
 
float a13 [3]
 
float a22 [3]
 
float a23 [3]
 
float a33 [3]
 
float chargeSignal [3][3]
 
float const_syst
 
float const_syst_ME12
 
float const_syst_ME13
 
float const_syst_ME1a
 
float const_syst_ME1b
 
float const_syst_ME21
 
float const_syst_ME22
 
float const_syst_ME31
 
float const_syst_ME32
 
float const_syst_ME41
 
double h
 
double k_1
 
double k_2
 
double k_3
 
float noise_level
 
float noise_level_ME12
 
float noise_level_ME13
 
float noise_level_ME1a
 
float noise_level_ME1b
 
float noise_level_ME21
 
float noise_level_ME22
 
float noise_level_ME31
 
float noise_level_ME32
 
float noise_level_ME41
 
double norm
 
double q_sum
 
double q_sumC
 
double q_sumL
 
double q_sumR
 
double r
 
const CSCRecoConditionsrecoConditions_
 
const CSCChamberSpecsspecs_
 
double sqrt_k_3
 
float stripWidth
 
bool use3TimeBins
 
bool useCalib
 
float v11 [3]
 Store elements of matrices for chi^2 computation: 0 = left, 1 = middle, 2 = right. More...
 
float v12 [3]
 
float v13 [3]
 
float v22 [3]
 
float v23 [3]
 
float v33 [3]
 
float x_centralVal [n_val]
 
float x_correction_ME1_1 [n_SW_ME1_1][n_val]
 
float x_correction_noME1_1 [n_SW_noME1_1][n_val]
 
float xt_asymmetry
 
float xt_asymmetry_ME12
 
float xt_asymmetry_ME13
 
float xt_asymmetry_ME1a
 
float xt_asymmetry_ME1b
 
float xt_asymmetry_ME21
 
float xt_asymmetry_ME22
 
float xt_asymmetry_ME31
 
float xt_asymmetry_ME32
 
float xt_asymmetry_ME41
 
float xt_l [3][3]
 x-talks 0 = left, 1 = middle, 2 = right ; and then second [] is for time bin tmax-1, tmax, tmax+1 More...
 
float xt_lr0 [3]
 
float xt_lr1 [3]
 
float xt_lr2 [3]
 
float xt_r [3][3]
 
float xtalksOffset
 

Static Private Attributes

static const int n_SW_ME1_1 = 6
 
static const int n_SW_noME1_1 = 11
 
static const int n_val = 501
 

Detailed Description

When having both strip and wire hit in a layer, use Gatti "matching" to calculate position ond error of strip hit.

Author
Stoyan Stoynev - NU

Definition at line 24 of file CSCXonStrip_MatchGatti.h.

Constructor & Destructor Documentation

CSCXonStrip_MatchGatti::CSCXonStrip_MatchGatti ( const edm::ParameterSet ps)
explicit

Definition at line 38 of file CSCXonStrip_MatchGatti.cc.

References const_syst_ME12, const_syst_ME13, const_syst_ME1a, const_syst_ME1b, const_syst_ME21, const_syst_ME22, const_syst_ME31, const_syst_ME32, const_syst_ME41, getCorrectionValues(), edm::ParameterSet::getParameter(), noise_level_ME12, noise_level_ME13, noise_level_ME1a, noise_level_ME1b, noise_level_ME21, noise_level_ME22, noise_level_ME31, noise_level_ME32, noise_level_ME41, useCalib, xt_asymmetry_ME12, xt_asymmetry_ME13, xt_asymmetry_ME1a, xt_asymmetry_ME1b, xt_asymmetry_ME21, xt_asymmetry_ME22, xt_asymmetry_ME31, xt_asymmetry_ME32, xt_asymmetry_ME41, and xtalksOffset.

Referenced by setConditions().

38  :
39  recoConditions_( nullptr ) {
40 
41  useCalib = ps.getParameter<bool>("CSCUseCalibrations");
42  xtalksOffset = ps.getParameter<double>("CSCStripxtalksOffset");
43  noise_level_ME1a = ps.getParameter<double>("NoiseLevel_ME1a");
44  xt_asymmetry_ME1a = ps.getParameter<double>("XTasymmetry_ME1a");
45  const_syst_ME1a = ps.getParameter<double>("ConstSyst_ME1a");
46  noise_level_ME1b = ps.getParameter<double>("NoiseLevel_ME1b");
47  xt_asymmetry_ME1b = ps.getParameter<double>("XTasymmetry_ME1b");
48  const_syst_ME1b = ps.getParameter<double>("ConstSyst_ME1b");
49  noise_level_ME12 = ps.getParameter<double>("NoiseLevel_ME12");
50  xt_asymmetry_ME12 = ps.getParameter<double>("XTasymmetry_ME12");
51  const_syst_ME12 = ps.getParameter<double>("ConstSyst_ME12");
52  noise_level_ME13 = ps.getParameter<double>("NoiseLevel_ME13");
53  xt_asymmetry_ME13 = ps.getParameter<double>("XTasymmetry_ME13");
54  const_syst_ME13 = ps.getParameter<double>("ConstSyst_ME13");
55  noise_level_ME21 = ps.getParameter<double>("NoiseLevel_ME21");
56  xt_asymmetry_ME21 = ps.getParameter<double>("XTasymmetry_ME21");
57  const_syst_ME21 = ps.getParameter<double>("ConstSyst_ME21");
58  noise_level_ME22 = ps.getParameter<double>("NoiseLevel_ME22");
59  xt_asymmetry_ME22 = ps.getParameter<double>("XTasymmetry_ME22");
60  const_syst_ME22 = ps.getParameter<double>("ConstSyst_ME22");
61  noise_level_ME31 = ps.getParameter<double>("NoiseLevel_ME31");
62  xt_asymmetry_ME31 = ps.getParameter<double>("XTasymmetry_ME31");
63  const_syst_ME31 = ps.getParameter<double>("ConstSyst_ME31");
64  noise_level_ME32 = ps.getParameter<double>("NoiseLevel_ME32");
65  xt_asymmetry_ME32 = ps.getParameter<double>("XTasymmetry_ME32");
66  const_syst_ME32 = ps.getParameter<double>("ConstSyst_ME32");
67  noise_level_ME41 = ps.getParameter<double>("NoiseLevel_ME41");
68  xt_asymmetry_ME41 = ps.getParameter<double>("XTasymmetry_ME41");
69  const_syst_ME41 = ps.getParameter<double>("ConstSyst_ME41");
70 
71  getCorrectionValues("StringCurrentlyNotUsed");
72 }
T getParameter(std::string const &) const
void getCorrectionValues(std::string Estimator)
const CSCRecoConditions * recoConditions_
CSCXonStrip_MatchGatti::~CSCXonStrip_MatchGatti ( )

Definition at line 75 of file CSCXonStrip_MatchGatti.cc.

75  {
76 }
CSCXonStrip_MatchGatti::CSCXonStrip_MatchGatti ( const CSCXonStrip_MatchGatti )
private

Member Function Documentation

double CSCXonStrip_MatchGatti::calculateXonStripError ( float  stripWidth,
bool  ME1_1 
)
private

Definition at line 642 of file CSCXonStrip_MatchGatti.cc.

References funct::abs(), const_syst, estimated2GattiCorrection(), min(), noise_level, funct::pow(), q_sumC, q_sumL, q_sumR, mathSSE::sqrt(), xfError_Noise(), xfError_XTasym(), and xt_asymmetry.

Referenced by findXOnStrip().

642  {
643  double min;
644  if(q_sumR>q_sumL){
645  min = q_sumL;
646  }
647  else{
648  min = q_sumR;
649  }
650 
651  double xf = (q_sumR - q_sumL)/(q_sumC - min)/2;
652  double xf_ErrorNoise = xfError_Noise(noise_level);
653  double xf_ErrorXTasym = xfError_XTasym(xt_asymmetry);
654  // x_G = x_F + correction_functon(x_F)
655  // as these are correlated the error should be simply d(x_G) = |d(x_F)| + [correction_functon(x_F+|d(x_F)|) - correction_functon(x_F)]
656  double d_xf = std::sqrt( std::pow( xf_ErrorNoise, 2) + std::pow( xf_ErrorXTasym, 2));
657  double d_corr = estimated2GattiCorrection(xf+d_xf, stripWidth, ME1_1) - estimated2GattiCorrection(xf, stripWidth, ME1_1);
658  double x_shift = d_xf + d_corr;
659  // double x_shift = sqrt( pow( xf_ErrorNoise, 2) + pow( xf_ErrorXTasym, 2)) *
660  //(1 + (estimated2GattiCorrection(xf+0.001, stripWidth, ME1_1) -
661  // estimated2GattiCorrection(xf, stripWidth, ME1_1))*1000.);
662  double x_error = std::sqrt( std::pow( std::abs(x_shift)*stripWidth, 2) + std::pow(const_syst, 2) );
663  return x_error;
664 }
double xfError_XTasym(double XTasym)
T sqrt(T t)
Definition: SSEVec.h:18
double xfError_Noise(double noise)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double estimated2GattiCorrection(double Xestimated, float StripWidth, bool ME1_1)
T min(T a, T b)
Definition: MathUtil.h:58
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
double CSCXonStrip_MatchGatti::calculateXonStripPosition ( float  stripWidth,
bool  ME1_1 
)
private

Definition at line 666 of file CSCXonStrip_MatchGatti.cc.

References estimated2Gatti(), min(), n_SW_ME1_1, n_SW_noME1_1, n_val, q_sumC, q_sumL, and q_sumR.

Referenced by findXOnStrip().

666  {
667 
668  double x_estimated = -99.;
669  double min;
670  if(q_sumR>q_sumL){
671  min = q_sumL;
672  }
673  else{
674  min = q_sumR;
675  }
676  //---- This is XF ( X Florida - after the first group that used it)
677  x_estimated = (q_sumR - q_sumL)/(q_sumC - min)/2;
678  double x_gatti = estimated2Gatti(x_estimated, stripWidth, ME1_1);
679  return x_gatti;
680 }
double estimated2Gatti(double Xestimated, float StripWidth, bool ME1_1)
T min(T a, T b)
Definition: MathUtil.h:58
double CSCXonStrip_MatchGatti::estimated2Gatti ( double  Xestimated,
float  StripWidth,
bool  ME1_1 
)
private

Definition at line 594 of file CSCXonStrip_MatchGatti.cc.

References estimated2GattiCorrection().

Referenced by calculateXonStripPosition().

594  {
595 
596  double x_corr = estimated2GattiCorrection(x_estimated, stripWidth, ME1_1);
597  double x_gatti = x_estimated + x_corr;
598 
599  return x_gatti;
600 }
double estimated2GattiCorrection(double Xestimated, float StripWidth, bool ME1_1)
double CSCXonStrip_MatchGatti::estimated2GattiCorrection ( double  Xestimated,
float  StripWidth,
bool  ME1_1 
)
private

Definition at line 509 of file CSCXonStrip_MatchGatti.cc.

References funct::abs(), createfilelist::int, n_SW_ME1_1, n_SW_noME1_1, n_val, x_correction_ME1_1, and x_correction_noME1_1.

Referenced by calculateXonStripError(), and estimated2Gatti().

509  {
510  //---- 11 "nominal" strip widths : 0.6 - 1.6 cm; for ME1_1 just 6 "nominal" strip widths : 0.3 - 0.8 cm; see HardCodedCorrectionInitialization()
511  //---- Calculate corrections at specific Xestimated (linear interpolation between points)
512  int n_SW;
513  int min_SW;
514  if(ME1_1){
515  n_SW = n_SW_ME1_1;
516  min_SW = 3; // min SW calculated is 0.3 cm
517  }
518  else{
519  n_SW = n_SW_noME1_1;
520  min_SW = 6;// min SW calculated is 0.6 cm
521  }
522  int stripDown = int(10.*stripWidth) - min_SW; // 0 is at min strip width calculated
523  int stripUp = stripDown + 1;
524  if(stripUp>n_SW-1){
525  //---- to be checked...
526  //if(stripUp>n_SW){
527  //std::cout<<" Is strip width = "<<stripWidth<<" OK?" <<std::endl;
528  //}
529  stripUp = n_SW-1;
530  }
531 
532  double half_strip_width = 0.5;
533  //const int Nbins = 501;
534  const int n_bins = n_val;
535  double corr_2_xestim = 999.;
536  if(stripDown<0){
537  corr_2_xestim = 1;
538  }
539  else{
540  //---- Parametrized x_gatti minus x_estimated differences
541 
542  int xestim_bin = -999;
543  double delta_strip_width = 999.;
544  double delta_strip_widthUpDown = 999.;
545  double diff_2_strip_width = 999.;
546  delta_strip_width = stripWidth - int(stripWidth*10)/10.;
547  delta_strip_widthUpDown = 0.1;
548 
549  if(std::abs(x_estimated)>0.5){
550  if(std::abs(x_estimated)>1.){
551  corr_2_xestim = 1.;// for now; to be investigated
552  }
553  else{
554  //if(std::abs(Xestimated)>0.55){
555  //std::cout<<"X position from the estimated position above 0.55 (safty margin)?! "<<std::endl;
556  //CorrToXc = 999.;
557  //}
558  xestim_bin = int((1.- std::abs(x_estimated))/half_strip_width * n_bins);
559  if(ME1_1){
560  diff_2_strip_width = x_correction_ME1_1[stripUp][xestim_bin]-x_correction_ME1_1[stripDown][xestim_bin];
561  corr_2_xestim = x_correction_ME1_1[stripDown][xestim_bin] +
562  (delta_strip_width/delta_strip_widthUpDown)*diff_2_strip_width ;
563  }
564  else{
565  diff_2_strip_width = x_correction_noME1_1[stripUp][xestim_bin]-x_correction_noME1_1[stripDown][xestim_bin];
566  corr_2_xestim = x_correction_noME1_1[stripDown][xestim_bin] +
567  (delta_strip_width/delta_strip_widthUpDown)*diff_2_strip_width ;
568  }
569  corr_2_xestim = -corr_2_xestim;
570  }
571  }
572  else{
573  xestim_bin = int((std::abs(x_estimated)/half_strip_width) * n_bins);
574  if(ME1_1){
575  diff_2_strip_width = x_correction_ME1_1[stripUp][xestim_bin] - x_correction_ME1_1[stripDown][xestim_bin];
576  corr_2_xestim = x_correction_ME1_1[stripDown][xestim_bin] +
577  (delta_strip_width/delta_strip_widthUpDown)*diff_2_strip_width ;
578  }
579  else{
580  diff_2_strip_width = x_correction_noME1_1[stripUp][xestim_bin] - x_correction_noME1_1[stripDown][xestim_bin];
581  corr_2_xestim = x_correction_noME1_1[stripDown][xestim_bin] +
582  (delta_strip_width/delta_strip_widthUpDown)*diff_2_strip_width ;
583  }
584  }
585  if(x_estimated<0.){
586  corr_2_xestim = -corr_2_xestim;
587  }
588  }
589 
590  return corr_2_xestim;
591 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float x_correction_noME1_1[n_SW_noME1_1][n_val]
float x_correction_ME1_1[n_SW_ME1_1][n_val]
void CSCXonStrip_MatchGatti::findXOnStrip ( const CSCDetId id,
const CSCLayer layer,
const CSCStripHit stripHit,
int  centralStrip,
float &  xWithinChamber,
float &  stripWidth,
const float &  tpeak,
float &  xWithinStrip,
float &  sigma,
int &  quality_flag 
)

Returns fitted local x position and its estimated error.

Definition at line 82 of file CSCXonStrip_MatchGatti.cc.

References a11, a12, a13, a22, a23, a33, funct::abs(), ecalMGPA::adc(), calculateXonStripError(), calculateXonStripPosition(), CSCLayer::chamber(), CSCChamberSpecs::chamberTypeName(), chargeSignal, CSCStripHit::closestMaximum(), const_syst, const_syst_ME12, const_syst_ME13, const_syst_ME1a, const_syst_ME1b, const_syst_ME21, const_syst_ME22, const_syst_ME31, const_syst_ME32, const_syst_ME41, CSCRecoConditions::crossTalk(), CSCStripHit::deadStrip(), dt, f, objects.autophobj::float, mps_fire::i, createfilelist::int, gen::k, hgcal_clustering::max_index(), muons1stStep_cfi::ME1a, noise_level, noise_level_ME12, noise_level_ME13, noise_level_ME1a, noise_level_ME1b, noise_level_ME21, noise_level_ME22, noise_level_ME31, noise_level_ME32, noise_level_ME41, CSCRecoConditions::noiseMatrix(), CSCStripHit::numberOfConsecutiveStrips(), AlCaHLTBitMon_ParallelJobs::p, q_sumC, q_sumL, q_sumR, recoConditions_, alignCSCRings::s, CSCStripHit::s_adc(), setupMatrix(), CSCChamber::specs(), specs_, mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, RecoTauPiZeroBuilderPlugins_cfi::strips, CSCStripHit::strips(), stripWidth, protons_cff::t, tmax, CSCStripHit::tmax(), useCalib, xt_asymmetry, xt_asymmetry_ME12, xt_asymmetry_ME13, xt_asymmetry_ME1a, xt_asymmetry_ME1b, xt_asymmetry_ME21, xt_asymmetry_ME22, xt_asymmetry_ME31, xt_asymmetry_ME32, xt_asymmetry_ME41, xt_l, xt_lr0, xt_lr1, xt_lr2, xt_r, and xtalksOffset.

Referenced by CSCMake2DRecHit::hitFromStripAndWire().

84  {
85  quality_flag = 0;
86  // Initialize Gatti parameters using chamberSpecs
87  // Cache specs_ info for ease of access
88  specs_ = layer->chamber()->specs();
89  stripWidth = sWidth;
90  //initChamberSpecs();
91  // Initialize output parameters
92  xWithinStrip = xWithinChamber;
93 
94  CSCStripHit::ChannelContainer const & strips = stripHit.strips();
95  int nStrips = strips.size();
96  int centStrip = nStrips/2 + 1;
97  std::vector<float> const & adcs = stripHit.s_adc();
98  int tmax = stripHit.tmax();
99 
101  //float t_peak = tpeak;
102  //float t_zero = 0.;
103  //float adc[4];
104  //
105  //if ( useCalib ) {
106  //
107  // for ( int t = 0; t < 4; ++t ) {
108  // int k = t + 4 * (centStrip-1);
109  // adc[t] = adcs[k];
110  // }
111  //
112  // // t_peak from peak finder is now 'absolute' i.e. in ns from start of sca time bin 0
113  // t_peak = peakTimeFinder_->peakTime( tmax, adc, t_peak );
114  // // Just for completeness, the start time of the pulse is 133 ns earlier, according to Stan :)
115  // t_zero = t_peak - 133.;
116  // // and reset tpeak since that's the way it gets passed out of this function (Argh!)
117  // tpeak = t_peak;
118  // LogTrace("CSCRecHit|CSCXonStrip_MatchGatti") << "CSCXonStrip_MatchGatti: " <<
119  // id << " strip=" << centralStrip << ", t_zero=" << t_zero << ", t_peak=" << t_peak;
120  //}
121 
122  //---- fill the charge matrix (3x3)
123  float adc[4];
124  int j = 0;
125  for ( int i = 1; i <= nStrips; ++i ) {
126  if ( i > (centStrip-2) && i < (centStrip+2) ) {
127  std::vector<float> adcsFit;
128  for ( int t = 0; t < 4; ++t ) {
129  int k = t + 4*(i-1);
130  adc[t] = adcs[k];
131  if ( t < 3) chargeSignal[j][t] = adc[t];
132  }
133  j++;
134  }
135  }
136 
137 
138  // Load in x-talks:
139 
140  if ( useCalib ) {
141  std::vector<float> xtalks;
142  recoConditions_->crossTalk( id, centralStrip, xtalks );
143  float dt = 50.f * tmax - tpeak;
144  // XTalks; l,r are for left, right XTalk; lr0,1,2 are for what charge "remains" in the strip
145  for ( int t = 0; t < 3; ++t ) {
146  xt_l[0][t] = xtalks[0] * (50.f* (t-1) + dt) + xtalks[1] + xtalksOffset;
147  xt_r[0][t] = xtalks[2] * (50.f* (t-1) + dt) + xtalks[3] + xtalksOffset;
148  xt_l[1][t] = xtalks[4] * (50.f* (t-1) + dt) + xtalks[5] + xtalksOffset;
149  xt_r[1][t] = xtalks[6] * (50.f* (t-1) + dt) + xtalks[7] + xtalksOffset;
150  xt_l[2][t] = xtalks[8] * (50.f* (t-1) + dt) + xtalks[9] + xtalksOffset;
151  xt_r[2][t] = xtalks[10]* (50.f* (t-1) + dt) + xtalks[11]+ xtalksOffset;
152 
153  xt_lr0[t] = (1. - xt_l[0][t] - xt_r[0][t]);
154  xt_lr1[t] = (1. - xt_l[1][t] - xt_r[1][t]);
155  xt_lr2[t] = (1. - xt_l[2][t] - xt_r[2][t]);
156  }
157  } else {
158  for ( int t = 0; t < 3; ++t ) {
159  xt_l[0][t] = xtalksOffset;
160  xt_r[0][t] = xtalksOffset;
161  xt_l[1][t] = xtalksOffset;
162  xt_r[1][t] = xtalksOffset;
163  xt_l[2][t] = xtalksOffset;
164  xt_r[2][t] = xtalksOffset;
165 
166  xt_lr0[t] = (1. - xt_l[0][t] - xt_r[0][t]);
167  xt_lr1[t] = (1. - xt_l[1][t] - xt_r[1][t]);
168  xt_lr2[t] = (1. - xt_l[2][t] - xt_r[2][t]);
169  }
170  }
171 
172 
173  // vector containing noise starts at tmax - 1, and tmax > 3, but....
174  int tbin = tmax - 4;
175 
176  // .... originally, suppose to have tmax in tbin 4 or 5, but noticed in MTCC lots of
177  // hits with tmax == 3, so let's allow these, and shift down noise matrix by one element...
178  // This is a patch because the calibration database doesn't have elements for tbin = 2,
179  // e.g. there is no element e[tmax-1,tmax+1] = e[2,4].
180 
181  if (tmax < 4) tbin = 0; // patch
182 
183  // Load in auto-correlation noise matrices
184  if ( useCalib ) {
185  std::vector<float> nmatrix;
186  recoConditions_->noiseMatrix( id, centralStrip, nmatrix );
187  for ( int istrip =0; istrip < 3; ++istrip ) {
188  a11[istrip] = nmatrix[0+tbin*3+istrip*15];
189  a12[istrip] = nmatrix[1+tbin*3+istrip*15];
190  a13[istrip] = nmatrix[2+tbin*3+istrip*15];
191  a22[istrip] = nmatrix[3+tbin*3+istrip*15];
192  a23[istrip] = nmatrix[4+tbin*3+istrip*15];
193  a33[istrip] = nmatrix[6+tbin*3+istrip*15];
194  }
195  } else {
196  // FIXME: NO HARD WIRED VALUES !!!
197  for ( int istrip =0; istrip < 3; ++istrip ) {
198  a11[istrip] = 10.0;
199  a12[istrip] = 0.0;
200  a13[istrip] = 0.0;
201  a22[istrip] = 10.0;
202  a23[istrip] = 0.0;
203  a33[istrip] = 10.0;
204  }
205  }
206 
207  //---- Set up noise, XTalk matrices
208  setupMatrix();
209  //---- Calculate the coordinate within the strip and associate uncertainty
210 
211  static const std::string ME1a("ME1/a");
212  static const std::string ME1b("ME1/b");
213 
214  bool ME1_1 = (ME1a == specs_->chamberTypeName() || ME1b == specs_->chamberTypeName());
215 
216 
217  // due to cross talks and 3 time bin sum it is in principe possible that the center strip is not the maximum strip
218  // in some cases the consequences could be quite extreme
219  // take some measures against the extreme cases
220  bool peakMismatch = false;
221  std::vector <float> charges(3);
222  charges[0] = q_sumL;
223  charges[1] = q_sumC;
224  charges[2] = q_sumR;
225  int min_index = min_element(charges.begin(),charges.end()) - charges.begin();
226  int max_index = max_element(charges.begin(),charges.end()) - charges.begin();
227  if(1!=max_index && (1==min_index ||
228  // the condition below means that if the initial position estimate within strip (|xF|)
229  // is above 1.1/2 = 0.55 "strip widths" peakMismatch is set to true (so special case);
230  // in normal cases |xF|<=0.5 (0.5 is at the edge of the "central" strip)
231  (charges[max_index] - charges[min_index]) > 1.1*(q_sumC - charges[min_index]) )){
232  peakMismatch = true;
233  switch (max_index){
234  case 0:
235  xWithinStrip = -1;
236  break;
237  case 2:
238  xWithinStrip = 1;
239  break;
240  default:
241  // should be an error message here
242  xWithinStrip = 0;// in case?
243  break;
244  }
245  }
246  // we don't have the needed information (it's similar to the "edge" strip case)
247  //else if(stripHit.isNearDeadStrip()){
248  else if(stripHit.deadStrip()>0){
249  xWithinStrip = 0;
250  }
251  else{
252  //
253  xWithinStrip = float(calculateXonStripPosition(stripWidth, ME1_1));
254  }
255  xWithinChamber = xWithinChamber + (xWithinStrip * stripWidth);
256  if(peakMismatch){
257  sigma = stripWidth/std::sqrt(12.f);
258  }
259  else{
260 
261  //---- error estimation
262  int factorStripWidth = int( std::sqrt(stripWidth/0.38f) );
263  int maxConsecutiveStrips = 8;
264  if(factorStripWidth){
265  maxConsecutiveStrips /= factorStripWidth ;
266  }
267  maxConsecutiveStrips++;
268 
269  struct ChamberTypes {
270  std::map <std::string, int> chamberTypes;
271  int operator()(std::string const & s) const { auto p = chamberTypes.find(s); return p!=chamberTypes.end() ? (*p).second : 0; }
272  ChamberTypes() {
273  chamberTypes["ME1/a"] = 1;
274  chamberTypes["ME1/b"] = 2;
275  chamberTypes["ME1/2"] = 3;
276  chamberTypes["ME1/3"] = 4;
277  chamberTypes["ME2/1"] = 5;
278  chamberTypes["ME2/2"] = 6;
279  chamberTypes["ME3/1"] = 7;
280  chamberTypes["ME3/2"] = 8;
281  chamberTypes["ME4/1"] = 9;
282  chamberTypes["ME4/2"] = 8;
283  }
284  };
285  static const ChamberTypes chamberTypes;
286 
287  switch(chamberTypes(specs_->chamberTypeName())){
288  case 1:
292  break;
293 
294  case 2:
298 
299  case 3:
303  break;
304 
305  case 4:
309  break;
310 
311  case 5:
315  break;
316 
317  case 6:
321  break;
322 
323  case 7:
327  break;
328 
329  case 8:
333  break;
334 
335  case 9:
339  break;
340 
341  default:
345 
346  }
347  if(0==stripHit.deadStrip() &&
348  stripHit.numberOfConsecutiveStrips()<maxConsecutiveStrips &&
349  std::abs(stripHit.closestMaximum())>maxConsecutiveStrips/2 ){
350  sigma = float(calculateXonStripError(stripWidth, ME1_1));
351  }
352  else{ //---- near dead strip or too close maxima or too wide strip cluster
353  sigma = stripWidth/std::sqrt(12.f);
354  }
355  }
356  quality_flag = 1;
357 }
float dt
Definition: AMPTWrapper.h:126
float a11[3]
Store elements of auto-correlation matrices: 0 = left, 1 = middle, 2 = right.
float xt_l[3][3]
x-talks 0 = left, 1 = middle, 2 = right ; and then second [] is for time bin tmax-1, tmax, tmax+1
int numberOfConsecutiveStrips() const
Number of consecutive strips with charge.
Definition: CSCStripHit.h:65
const StripHitADCContainer & s_adc() const
L1A.
Definition: CSCStripHit.h:59
void noiseMatrix(const CSCDetId &id, int centralStrip, std::vector< float > &nme) const
const CSCRecoConditions * recoConditions_
short int deadStrip() const
is a neighbouring string a dead strip?
Definition: CSCStripHit.h:71
std::string chamberTypeName() const
const CSCChamberSpecs * specs() const
Definition: CSCChamber.h:42
T sqrt(T t)
Definition: SSEVec.h:18
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double f[11][100]
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
double calculateXonStripError(float stripWidth, bool ME1_1)
const CSCChamberSpecs * specs_
int k[5][pyjets_maxn]
double calculateXonStripPosition(float stripWidth, bool ME1_1)
static const double tmax[3]
void setupMatrix()
Set matrix for XT corrections and noise.
int tmax() const
Strip hit maximum time bin.
Definition: CSCStripHit.h:47
std::vector< int > ChannelContainer
Definition: CSCStripHit.h:22
void crossTalk(const CSCDetId &id, int centralStrip, std::vector< float > &xtalks) const
int closestMaximum() const
Number of strips to the closest other maximum.
Definition: CSCStripHit.h:68
const ChannelContainer & strips() const
L1A.
Definition: CSCStripHit.h:53
size_t max_index(const std::vector< T > &v)
const CSCChamber * chamber() const
Definition: CSCLayer.h:52
void CSCXonStrip_MatchGatti::getCorrectionValues ( std::string  Estimator)
private
void CSCXonStrip_MatchGatti::hardcodedCorrectionInitialization ( )
private

Definition at line 11 of file HardCodedCorrectionInitialization.cc.

References mps_fire::i, n_SW_ME1_1, n_SW_noME1_1, n_val, x_correction_ME1_1, and x_correction_noME1_1.

Referenced by getCorrectionValues().

11  {
12  //---- Corrections depend on strip width (SW), position within the strip (XFlorida is used) and type of chamber
13 
14  //---- Corrections for non-ME1_1 chambers (all have practically equal Gatti parameters):
15 
16  //---- min SW ~ 6.6 cm (ME1/2), max SW ~ 1.6 cm (ME234/2)
17  //---- Corrections are calculated for N_SW_noME1_1 strip widths (0.6 - 1.6 cm)
18  //---- and for 501 values in
19  float corrections_noME1_1[n_SW_noME1_1][n_val] = {
20  {0, 0.00019078, 0.000383855, 0.000579201, 0.000776796, 0.000976616, 0.00117891, 0.00138342, 0.00159008, 0.00179887, 0.00200977, 0.00222304, 0.00243835, 0.00265569, 0.00287502, 0.00309646, 0.00332001, 0.00354547, 0.00377282, 0.00400203,
21  0.00423336, 0.0044665, 0.00470141, 0.00493807, 0.00517666, 0.005417, 0.00565901, 0.00590266, 0.00614806, 0.00639514, 0.00664377, 0.00689391, 0.00714568, 0.00739901, 0.00765376, 0.0079099, 0.00816756, 0.00842663, 0.00868701, 0.00894865,
22  0.00921171, 0.00947602, 0.0097415, 0.0100081, 0.0102761, 0.0105451, 0.0108152, 0.0110863, 0.0113586, 0.0116318, 0.011906, 0.0121811, 0.0124572, 0.0127341, 0.0130118, 0.0132904, 0.0135697, 0.0138497, 0.0141305, 0.014412,
23  0.014694, 0.0149767, 0.01526, 0.0155438, 0.015828, 0.0161128, 0.016398, 0.0166836, 0.0169696, 0.0172559, 0.0175426, 0.0178295, 0.0181166, 0.018404, 0.0186915, 0.0189791, 0.0192669, 0.0195548, 0.0198427, 0.0201306,
24  0.0204185, 0.0207063, 0.0209941, 0.0212817, 0.0215692, 0.0218565, 0.0221436, 0.0224305, 0.0227171, 0.0230034, 0.0232894, 0.023575, 0.0238602, 0.024145, 0.0244293, 0.0247132, 0.0249966, 0.0252793, 0.0255616, 0.0258432,
25  0.0261243, 0.0264046, 0.0266843, 0.0269633, 0.0272415, 0.027519, 0.0277957, 0.0280716, 0.0283466, 0.0286207, 0.028894, 0.0291663, 0.0294377, 0.0297081, 0.0299776, 0.030246, 0.0305133, 0.0307796, 0.0310449, 0.0313089,
26  0.0315718, 0.0318336, 0.0320942, 0.0323536, 0.0326117, 0.0328687, 0.0331243, 0.0333786, 0.0336316, 0.0338833, 0.0341336, 0.0343825, 0.0346301, 0.0348763, 0.035121, 0.0353642, 0.035606, 0.0358463, 0.0360851, 0.0363223,
27  0.036558, 0.0367921, 0.0370248, 0.0372557, 0.037485, 0.0377128, 0.0379389, 0.0381633, 0.038386, 0.0386071, 0.0388265, 0.0390442, 0.0392601, 0.0394742, 0.0396866, 0.0398974, 0.0401062, 0.0403132, 0.0405184, 0.0407219,
28  0.0409236, 0.0411233, 0.0413211, 0.0415171, 0.0417113, 0.0419036, 0.042094, 0.0422824, 0.0424689, 0.0426535, 0.0428362, 0.043017, 0.0431956, 0.0433724, 0.0435472, 0.04372, 0.043891, 0.0440598, 0.0442266, 0.0443913,
29  0.0445541, 0.0447149, 0.0448738, 0.0450305, 0.0451851, 0.0453376, 0.0454882, 0.0456367, 0.0457831, 0.0459275, 0.0460698, 0.0462099, 0.0463479, 0.0464839, 0.0466178, 0.0467496, 0.0468794, 0.0470071, 0.0471324, 0.0472557,
30  0.0473769, 0.047496, 0.047613, 0.0477279, 0.0478407, 0.0479514, 0.0480598, 0.0481661, 0.0482702, 0.0483723, 0.0484722, 0.0485699, 0.0486656, 0.0487591, 0.0488505, 0.0489397, 0.0490268, 0.0491116, 0.0491943, 0.0492749,
31  0.0493533, 0.0494296, 0.0495037, 0.0495757, 0.0496456, 0.0497133, 0.0497789, 0.0498423, 0.0499037, 0.0499628, 0.0500198, 0.0500746, 0.0501273, 0.0501778, 0.0502262, 0.0502724, 0.0503165, 0.0503585, 0.0503984, 0.0504361,
32  0.0504717, 0.0505052, 0.0505366, 0.0505658, 0.050593, 0.050618, 0.0506409, 0.0506617, 0.0506803, 0.0506969, 0.0507114, 0.0507237, 0.050734, 0.0507422, 0.0507482, 0.0507522, 0.0507541, 0.0507539, 0.0507517, 0.0507473,
33  0.0507409, 0.0507324, 0.0507219, 0.0507093, 0.0506946, 0.0506779, 0.0506591, 0.0506382, 0.0506154, 0.0505905, 0.0505635, 0.0505345, 0.0505035, 0.0504705, 0.0504355, 0.0503984, 0.0503594, 0.0503183, 0.0502753, 0.0502302,
34  0.0501832, 0.0501342, 0.0500832, 0.0500302, 0.0499752, 0.0499182, 0.0498592, 0.0497983, 0.0497354, 0.0496705, 0.0496037, 0.049535, 0.0494644, 0.0493918, 0.0493173, 0.0492409, 0.0491626, 0.0490824, 0.0490003, 0.0489162,
35  0.0488301, 0.0487422, 0.0486524, 0.0485607, 0.0484671, 0.0483717, 0.0482745, 0.0481754, 0.0480744, 0.0479716, 0.0478668, 0.0477601, 0.0476517, 0.0475414, 0.0474293, 0.0473154, 0.0471997, 0.0470823, 0.046963, 0.0468417,
36  0.0467186, 0.0465938, 0.0464672, 0.0463389, 0.0462088, 0.046077, 0.0459434, 0.0458078, 0.0456705, 0.0455315, 0.0453908, 0.0452484, 0.0451043, 0.0449585, 0.0448107, 0.0446612, 0.04451, 0.0443572, 0.0442028, 0.0440467,
37  0.0438887, 0.0437289, 0.0435675, 0.0434045, 0.0432399, 0.0430737, 0.0429056, 0.0427358, 0.0425643, 0.0423913, 0.0422167, 0.0420406, 0.0418625, 0.0416828, 0.0415016, 0.0413188, 0.0411344, 0.0409484, 0.0407606, 0.0405712,
38  0.0403803, 0.040188, 0.0399941, 0.0397982, 0.0396009, 0.0394021, 0.0392018, 0.039, 0.0387963, 0.0385912, 0.0383846, 0.0381765, 0.037967, 0.0377555, 0.0375427, 0.0373284, 0.0371128, 0.0368954, 0.0366764, 0.0364561,
39  0.0362343, 0.0360112, 0.0357861, 0.0355597, 0.0353319, 0.0351028, 0.034872, 0.0346396, 0.0344059, 0.0341709, 0.0339343, 0.0336961, 0.0334565, 0.0332157, 0.0329735, 0.0327294, 0.0324841, 0.0322375, 0.0319897, 0.0317399,
40  0.031489, 0.0312367, 0.0309832, 0.0307279, 0.0304713, 0.0302135, 0.0299544, 0.0296935, 0.0294315, 0.0291682, 0.0289035, 0.0286372, 0.0283698, 0.0281011, 0.0278309, 0.0275592, 0.0272864, 0.0270125, 0.0267367, 0.0264598,
41  0.0261818, 0.0259024, 0.0256214, 0.0253393, 0.0250561, 0.0247713, 0.0244852, 0.024198, 0.0239095, 0.0236194, 0.0233283, 0.0230361, 0.0227422, 0.0224472, 0.0221511, 0.0218536, 0.0215547, 0.0212548, 0.0209538, 0.0206511,
42  0.0203474, 0.0200426, 0.0197363, 0.0194288, 0.0191203, 0.0188104, 0.0184992, 0.0181871, 0.0178736, 0.0175588, 0.017243, 0.016926, 0.0166075, 0.0162881, 0.0159677, 0.0156456, 0.0153226, 0.0149987, 0.014673, 0.0143465,
43  0.0140191, 0.01369, 0.01336, 0.0130291, 0.0126966, 0.0123631, 0.0120288, 0.0116929, 0.011356, 0.0110183, 0.0106789, 0.0103387, 0.00999765, 0.00965491, 0.00931136, 0.00896692, 0.00862087, 0.00827404, 0.00792623, 0.00757693,
44  0.00722686, 0.00687569, 0.00652318, 0.0061699, 0.0058154, 0.00545971, 0.00510328, 0.00474545, 0.00438662, 0.00402707, 0.00366593, 0.00330401, 0.00294123, 0.00257695, 0.00221198, 0.00184591, 0.0014786, 0.00111061, 0.000741268, 0.000370968,
45  0},
46 
47  {0, 0.00041187, 0.000826272, 0.00124349, 0.00166337, 0.00208575, 0.00251089, 0.00293832, 0.00336842, 0.00380078, 0.00423553, 0.00467258, 0.00511179, 0.0055533, 0.00599674, 0.00644249, 0.00689004, 0.00733967, 0.0077911, 0.00824439,
48  0.00869946, 0.00915618, 0.00961462, 0.0100746, 0.0105361, 0.010999, 0.0114635, 0.0119291, 0.0123962, 0.0128644, 0.0133338, 0.0138042, 0.0142757, 0.0147481, 0.0152215, 0.0156957, 0.0161706, 0.0166463, 0.0171227, 0.0175996,
49  0.018077, 0.018555, 0.0190333, 0.019512, 0.0199909, 0.02047, 0.0209493, 0.0214287, 0.0219081, 0.0223875, 0.0228668, 0.023346, 0.0238249, 0.0243035, 0.0247819, 0.0252598, 0.0257373, 0.0262142, 0.0266906, 0.0271664,
50  0.0276415, 0.0281158, 0.0285894, 0.0290621, 0.0295338, 0.0300047, 0.0304745, 0.0309433, 0.0314108, 0.0318773, 0.0323424, 0.0328064, 0.033269, 0.0337302, 0.03419, 0.0346482, 0.035105, 0.0355602, 0.0360138, 0.0364656,
51  0.0369159, 0.0373642, 0.0378108, 0.0382556, 0.0386984, 0.0391394, 0.0395783, 0.0400153, 0.0404501, 0.0408829, 0.0413135, 0.041742, 0.0421683, 0.0425922, 0.043014, 0.0434333, 0.0438504, 0.044265, 0.0446772, 0.0450871,
52  0.0454943, 0.0458991, 0.0463013, 0.0467009, 0.047098, 0.0474923, 0.0478841, 0.0482731, 0.0486594, 0.0490431, 0.0494237, 0.0498018, 0.050177, 0.0505493, 0.050919, 0.0512855, 0.0516492, 0.0520102, 0.0523678, 0.0527228,
53  0.0530748, 0.0534235, 0.0537695, 0.0541124, 0.0544521, 0.0547889, 0.0551226, 0.0554531, 0.0557806, 0.056105, 0.0564261, 0.0567442, 0.0570593, 0.0573708, 0.0576794, 0.057985, 0.058287, 0.0585859, 0.0588818, 0.0591743,
54  0.0594634, 0.0597496, 0.0600325, 0.0603119, 0.0605881, 0.0608613, 0.0611311, 0.0613974, 0.0616606, 0.0619207, 0.0621773, 0.0624305, 0.0626806, 0.0629275, 0.0631709, 0.063411, 0.0636478, 0.0638816, 0.0641118, 0.0643387,
55  0.0645623, 0.0647828, 0.065, 0.0652136, 0.065424, 0.0656312, 0.0658352, 0.0660359, 0.0662331, 0.066427, 0.0666178, 0.0668053, 0.0669897, 0.0671705, 0.067348, 0.0675224, 0.0676935, 0.0678615, 0.0680262, 0.0681875,
56  0.0683455, 0.0685004, 0.0686521, 0.0688006, 0.068946, 0.0690879, 0.0692266, 0.0693622, 0.0694946, 0.0696238, 0.06975, 0.0698729, 0.0699928, 0.0701093, 0.0702226, 0.0703328, 0.0704399, 0.0705439, 0.0706449, 0.0707427,
57  0.0708375, 0.0709291, 0.0710177, 0.0711031, 0.0711853, 0.0712646, 0.0713408, 0.071414, 0.0714842, 0.0715514, 0.0716155, 0.0716767, 0.0717349, 0.0717901, 0.0718423, 0.0718916, 0.0719379, 0.0719812, 0.0720216, 0.072059,
58  0.0720935, 0.0721251, 0.0721537, 0.0721795, 0.0722025, 0.0722225, 0.0722397, 0.0722541, 0.0722656, 0.0722743, 0.0722801, 0.0722832, 0.0722835, 0.0722809, 0.0722756, 0.0722675, 0.0722567, 0.0722431, 0.0722268, 0.0722078,
59  0.072186, 0.0721615, 0.0721344, 0.0721045, 0.072072, 0.0720369, 0.071999, 0.0719584, 0.0719152, 0.0718694, 0.0718209, 0.0717699, 0.0717162, 0.07166, 0.0716012, 0.0715399, 0.071476, 0.0714096, 0.0713406, 0.0712692,
60  0.0711952, 0.0711188, 0.0710399, 0.0709584, 0.0708743, 0.0707878, 0.0706988, 0.0706074, 0.0705137, 0.0704175, 0.0703189, 0.070218, 0.0701147, 0.070009, 0.0699007, 0.0697901, 0.0696771, 0.0695618, 0.0694443, 0.0693244,
61  0.0692023, 0.0690779, 0.0689511, 0.0688218, 0.0686903, 0.0685566, 0.0684207, 0.0682826, 0.0681423, 0.0679999, 0.0678548, 0.0677076, 0.0675583, 0.0674068, 0.0672532, 0.0670976, 0.0669396, 0.0667793, 0.0666169, 0.0664524,
62  0.0662859, 0.0661173, 0.0659466, 0.0657735, 0.0655984, 0.0654213, 0.0652422, 0.0650612, 0.0648778, 0.0646923, 0.0645048, 0.0643155, 0.0641242, 0.0639308, 0.0637351, 0.0635376, 0.0633381, 0.0631368, 0.0629335, 0.0627279,
63  0.0625205, 0.0623112, 0.0621002, 0.061887, 0.0616717, 0.0614547, 0.0612359, 0.0610153, 0.0607924, 0.0605677, 0.0603412, 0.0601131, 0.0598829, 0.0596506, 0.0594167, 0.0591811, 0.0589437, 0.0587041, 0.0584628, 0.0582199,
64  0.0579754, 0.0577285, 0.05748, 0.05723, 0.0569783, 0.0567244, 0.0564688, 0.0562118, 0.0559531, 0.0556921, 0.0554297, 0.0551658, 0.0549, 0.0546323, 0.0543631, 0.0540924, 0.0538197, 0.0535453, 0.0532695, 0.0529922,
65  0.0527126, 0.0524317, 0.0521493, 0.0518652, 0.0515792, 0.0512918, 0.0510031, 0.0507122, 0.0504199, 0.0501263, 0.0498308, 0.0495336, 0.0492352, 0.0489352, 0.0486333, 0.04833, 0.0480255, 0.0477189, 0.047411, 0.0471018,
66  0.0467907, 0.0464781, 0.0461643, 0.0458489, 0.0455317, 0.0452134, 0.0448936, 0.0445719, 0.0442491, 0.0439249, 0.0435988, 0.0432715, 0.042943, 0.0426125, 0.042281, 0.0419481, 0.0416133, 0.0412775, 0.0409404, 0.0406013,
67  0.0402613, 0.0399199, 0.0395767, 0.0392324, 0.0388869, 0.0385395, 0.0381912, 0.0378414, 0.03749, 0.0371377, 0.0367837, 0.0364283, 0.036072, 0.0357139, 0.0353546, 0.0349943, 0.0346321, 0.0342689, 0.0339046, 0.0335385,
68  0.0331715, 0.0328031, 0.0324332, 0.0320626, 0.03169, 0.0313165, 0.0309419, 0.0305656, 0.0301884, 0.0298098, 0.0294298, 0.029049, 0.0286664, 0.0282829, 0.0278983, 0.027512, 0.027125, 0.0267364, 0.0263467, 0.0259561,
69  0.0255637, 0.0251706, 0.0247761, 0.0243804, 0.0239839, 0.0235855, 0.0231864, 0.0227861, 0.0223844, 0.0219821, 0.0215779, 0.021173, 0.0207668, 0.0203594, 0.0199513, 0.0195414, 0.0191309, 0.0187189, 0.018306, 0.0178921,
70  0.0174766, 0.0170606, 0.0166429, 0.0162245, 0.0158049, 0.0153841, 0.0149626, 0.0145394, 0.0141157, 0.0136904, 0.0132644, 0.0128373, 0.0124088, 0.0119799, 0.0115491, 0.0111179, 0.0106852, 0.0102517, 0.00981723, 0.00938147,
71  0.00894511, 0.0085071, 0.00806868, 0.00762866, 0.00718802, 0.00674618, 0.00630334, 0.00585968, 0.00541467, 0.00496919, 0.00452202, 0.00407449, 0.00362542, 0.00317576, 0.00272489, 0.00227312, 0.00182046, 0.0013666, 0.000912158, 0.000456222,
72  0},
73 
74  {0, 0.000672915, 0.00134894, 0.00202799, 0.00271026, 0.00339538, 0.00408321, 0.00477386, 0.00546709, 0.00616272, 0.00686075, 0.00756109, 0.00826349, 0.00896789, 0.0096743, 0.0103824, 0.0110922, 0.0118036, 0.0125164, 0.0132306,
75  0.0139459, 0.0146623, 0.0153797, 0.0160979, 0.0168169, 0.0175365, 0.0182565, 0.0189769, 0.0196976, 0.0204185, 0.0211393, 0.0218601, 0.0225807, 0.0233009, 0.0240207, 0.0247399, 0.0254585, 0.0261763, 0.0268933, 0.0276092,
76  0.028324, 0.0290376, 0.0297499, 0.0304607, 0.03117, 0.0318777, 0.0325836, 0.0332877, 0.03399, 0.03469, 0.035388, 0.0360838, 0.0367772, 0.0374682, 0.0381568, 0.0388427, 0.0395259, 0.0402065, 0.0408841, 0.0415587,
77  0.0422304, 0.0428991, 0.0435644, 0.0442266, 0.0448855, 0.0455409, 0.0461929, 0.0468414, 0.0474861, 0.0481274, 0.0487648, 0.0493984, 0.0500284, 0.0506541, 0.0512761, 0.0518941, 0.0525078, 0.0531176, 0.053723, 0.0543243,
78  0.0549214, 0.055514, 0.0561024, 0.0566863, 0.0572658, 0.0578408, 0.0584112, 0.0589773, 0.0595384, 0.0600953, 0.0606472, 0.0611946, 0.0617372, 0.0622751, 0.0628083, 0.0633366, 0.0638602, 0.0643788, 0.0648927, 0.0654015,
79  0.0659058, 0.0664047, 0.0668991, 0.0673882, 0.0678727, 0.0683519, 0.0688264, 0.0692957, 0.0697602, 0.0702196, 0.0706739, 0.0711234, 0.0715676, 0.0720072, 0.0724412, 0.0728706, 0.0732947, 0.0737139, 0.0741282, 0.0745371,
80  0.0749414, 0.0753403, 0.0757344, 0.0761235, 0.0765073, 0.0768865, 0.0772604, 0.0776293, 0.0779936, 0.0783523, 0.0787064, 0.0790556, 0.0793995, 0.0797387, 0.0800731, 0.0804022, 0.0807267, 0.0810464, 0.0813607, 0.0816704,
81  0.0819756, 0.0822754, 0.0825705, 0.082861, 0.0831465, 0.0834271, 0.0837032, 0.0839746, 0.0842409, 0.0845025, 0.0847597, 0.0850123, 0.0852596, 0.0855026, 0.085741, 0.085975, 0.0862039, 0.0864283, 0.0866483, 0.0868638,
82  0.0870748, 0.0872809, 0.0874827, 0.0876801, 0.0878732, 0.0880617, 0.0882456, 0.0884251, 0.0886004, 0.0887714, 0.0889381, 0.0891003, 0.089258, 0.0894116, 0.089561, 0.0897062, 0.0898472, 0.0899841, 0.0901165, 0.0902447,
83  0.0903688, 0.0904889, 0.0906049, 0.0907168, 0.0908248, 0.0909287, 0.0910286, 0.0911242, 0.0912159, 0.0913036, 0.0913875, 0.0914674, 0.0915435, 0.0916157, 0.0916841, 0.0917486, 0.0918093, 0.0918662, 0.0919194, 0.0919688,
84  0.0920144, 0.0920562, 0.0920943, 0.0921287, 0.0921595, 0.0921866, 0.0922101, 0.09223, 0.0922464, 0.0922592, 0.0922684, 0.0922741, 0.0922763, 0.092275, 0.0922703, 0.092262, 0.0922504, 0.0922354, 0.0922169, 0.0921951,
85  0.09217, 0.0921415, 0.0921096, 0.0920745, 0.0920361, 0.0919945, 0.0919494, 0.0919012, 0.0918497, 0.091795, 0.0917372, 0.0916762, 0.091612, 0.0915448, 0.0914745, 0.091401, 0.0913246, 0.0912451, 0.0911625, 0.091077,
86  0.0909885, 0.0908967, 0.090802, 0.0907043, 0.0906037, 0.0905003, 0.0903939, 0.0902848, 0.0901727, 0.0900579, 0.0899401, 0.0898192, 0.0896956, 0.0895692, 0.0894402, 0.0893084, 0.0891739, 0.0890367, 0.0888966, 0.0887536,
87  0.088608, 0.0884598, 0.0883091, 0.0881558, 0.0879999, 0.0878409, 0.0876794, 0.0875154, 0.0873489, 0.0871799, 0.0870085, 0.0868341, 0.0866572, 0.086478, 0.0862963, 0.0861123, 0.0859257, 0.0857363, 0.0855446, 0.0853506,
88  0.0851544, 0.0849557, 0.0847542, 0.0845504, 0.0843445, 0.0841363, 0.0839258, 0.0837125, 0.0834971, 0.0832795, 0.0830598, 0.0828375, 0.0826128, 0.0823861, 0.0821573, 0.0819262, 0.0816925, 0.0814567, 0.081219, 0.0809793,
89  0.0807367, 0.0804922, 0.0802458, 0.0799975, 0.0797463, 0.0794933, 0.0792384, 0.0789816, 0.078722, 0.0784606, 0.0781974, 0.0779322, 0.0776644, 0.0773949, 0.0771236, 0.0768501, 0.0765743, 0.0762968, 0.0760177, 0.0757359,
90  0.0754523, 0.0751671, 0.0748799, 0.0745903, 0.0742992, 0.0740065, 0.0737111, 0.0734141, 0.0731156, 0.0728148, 0.0725121, 0.0722079, 0.0719018, 0.0715934, 0.0712836, 0.0709722, 0.0706583, 0.0703429, 0.0700262, 0.0697069,
91  0.0693862, 0.069064, 0.0687396, 0.0684135, 0.0680861, 0.0677565, 0.0674252, 0.0670926, 0.0667578, 0.0664214, 0.0660838, 0.0657439, 0.0654025, 0.0650598, 0.0647149, 0.0643685, 0.064021, 0.063671, 0.0633198, 0.0629673,
92  0.0626125, 0.0622565, 0.0618991, 0.0615395, 0.0611789, 0.0608165, 0.0604524, 0.0600872, 0.0597199, 0.0593512, 0.0589815, 0.0586094, 0.0582363, 0.0578617, 0.0574852, 0.0571078, 0.0567284, 0.0563476, 0.0559658, 0.0555817,
93  0.0551968, 0.0548102, 0.054422, 0.0540329, 0.0536416, 0.0532493, 0.0528556, 0.0524601, 0.0520639, 0.0516655, 0.0512661, 0.0508654, 0.050463, 0.0500597, 0.0496544, 0.0492481, 0.0488405, 0.0484312, 0.0480212, 0.047609,
94  0.047196, 0.0467816, 0.0463657, 0.0459489, 0.0455301, 0.0451107, 0.0446894, 0.0442671, 0.0438436, 0.0434185, 0.0429927, 0.0425648, 0.0421363, 0.0417061, 0.0412748, 0.0408424, 0.0404084, 0.0399738, 0.0395371, 0.0390999,
95  0.0386609, 0.0382211, 0.0377799, 0.0373374, 0.0368941, 0.036449, 0.0360035, 0.0355558, 0.0351078, 0.034658, 0.0342073, 0.0337554, 0.0333023, 0.0328482, 0.0323926, 0.0319364, 0.0314784, 0.03102, 0.0305596, 0.0300988,
96  0.0296363, 0.0291731, 0.0287085, 0.028243, 0.0277763, 0.0273084, 0.0268397, 0.0263695, 0.0258987, 0.0254262, 0.0249533, 0.0244786, 0.0240036, 0.0235267, 0.0230495, 0.0225705, 0.0220912, 0.0216101, 0.0211286, 0.0206456,
97  0.0201619, 0.0196768, 0.019191, 0.018704, 0.0182161, 0.017727, 0.017237, 0.016746, 0.016254, 0.0157609, 0.0152669, 0.0147719, 0.0142758, 0.0137788, 0.0132808, 0.0127819, 0.0122819, 0.011781, 0.011279, 0.0107762,
98  0.0102724, 0.00976763, 0.00926186, 0.0087552, 0.00824756, 0.00773898, 0.0072295, 0.006719, 0.00620769, 0.00569529, 0.00518218, 0.00466788, 0.00415298, 0.0036368, 0.00312014, 0.00260207, 0.00208368, 0.00156373, 0.00104362, 0.00052181,
99  0},
100 
101  {0, 0.000982554, 0.00196886, 0.00295871, 0.00395189, 0.00494819, 0.00594739, 0.00694928, 0.00795364, 0.00896026, 0.0099689, 0.0109794, 0.0119914, 0.0130048, 0.0140193, 0.0150348, 0.016051, 0.0170676, 0.0180845, 0.0191014,
102  0.0201181, 0.0211344, 0.0221501, 0.023165, 0.0241788, 0.0251913, 0.0262023, 0.0272117, 0.0282192, 0.0292245, 0.0302276, 0.0312282, 0.0322261, 0.0332211, 0.034213, 0.0352017, 0.036187, 0.0371686, 0.0381465, 0.0391204,
103  0.0400901, 0.0410556, 0.0420167, 0.0429731, 0.0439248, 0.0448715, 0.0458132, 0.0467497, 0.0476809, 0.0486067, 0.0495269, 0.0504414, 0.0513501, 0.0522529, 0.0531496, 0.0540403, 0.0549246, 0.0558025, 0.056674, 0.057539,
104  0.0583974, 0.0592492, 0.0600943, 0.0609324, 0.0617635, 0.0625877, 0.0634048, 0.064215, 0.0650181, 0.0658137, 0.066602, 0.0673832, 0.0681571, 0.0689236, 0.0696824, 0.0704339, 0.0711781, 0.0719148, 0.0726436, 0.0733651,
105  0.0740791, 0.0747853, 0.0754839, 0.0761751, 0.0768586, 0.0775342, 0.0782025, 0.0788631, 0.0795158, 0.0801612, 0.0807988, 0.0814287, 0.0820513, 0.0826658, 0.0832729, 0.0838726, 0.0844644, 0.0850491, 0.0856256, 0.0861951,
106  0.0867569, 0.0873111, 0.0878581, 0.0883973, 0.0889296, 0.0894539, 0.0899715, 0.090481, 0.0909839, 0.0914788, 0.0919672, 0.0924476, 0.0929215, 0.0933876, 0.0938471, 0.0942991, 0.0947443, 0.0951824, 0.0956134, 0.0960378,
107  0.0964547, 0.0968652, 0.0972685, 0.0976651, 0.0980553, 0.0984381, 0.0988146, 0.0991844, 0.0995473, 0.0999041, 0.100254, 0.100597, 0.100935, 0.101265, 0.101589, 0.101907, 0.102218, 0.102523, 0.102823, 0.103115,
108  0.103402, 0.103682, 0.103957, 0.104225, 0.104487, 0.104744, 0.104995, 0.105239, 0.105477, 0.10571, 0.105938, 0.106159, 0.106375, 0.106585, 0.106789, 0.106988, 0.107182, 0.107369, 0.107552, 0.107729,
109  0.1079, 0.108067, 0.108227, 0.108383, 0.108533, 0.108679, 0.108819, 0.108954, 0.109084, 0.109208, 0.109328, 0.109443, 0.109552, 0.109657, 0.109758, 0.109853, 0.109943, 0.110029, 0.11011, 0.110186,
110  0.110257, 0.110324, 0.110386, 0.110443, 0.110497, 0.110545, 0.110589, 0.110629, 0.110664, 0.110695, 0.110721, 0.110743, 0.110761, 0.110775, 0.110784, 0.110789, 0.11079, 0.110787, 0.11078, 0.110768,
111  0.110753, 0.110733, 0.11071, 0.110682, 0.110651, 0.110615, 0.110576, 0.110533, 0.110486, 0.110435, 0.110381, 0.110322, 0.11026, 0.110195, 0.110125, 0.110052, 0.109976, 0.109895, 0.109811, 0.109724,
112  0.109633, 0.109538, 0.10944, 0.109339, 0.109234, 0.109126, 0.109014, 0.108899, 0.10878, 0.108659, 0.108533, 0.108405, 0.108274, 0.108139, 0.108001, 0.10786, 0.107715, 0.107568, 0.107417, 0.107263,
113  0.107107, 0.106947, 0.106784, 0.106618, 0.106449, 0.106277, 0.106102, 0.105924, 0.105743, 0.105559, 0.105373, 0.105184, 0.104992, 0.104796, 0.104598, 0.104397, 0.104194, 0.103988, 0.103778, 0.103566,
114  0.103352, 0.103135, 0.102915, 0.102692, 0.102467, 0.10224, 0.10201, 0.101776, 0.10154, 0.101302, 0.101062, 0.100819, 0.100573, 0.100325, 0.100074, 0.099821, 0.0995652, 0.0993072, 0.0990471, 0.098784,
115  0.0985186, 0.0982511, 0.0979815, 0.0977087, 0.097434, 0.0971573, 0.096878, 0.0965961, 0.0963123, 0.0960266, 0.0957379, 0.0954472, 0.0951546, 0.0948595, 0.094562, 0.0942627, 0.0939615, 0.0936573, 0.0933514, 0.0930437,
116  0.0927332, 0.0924209, 0.0921068, 0.0917902, 0.0914715, 0.0911512, 0.0908285, 0.0905036, 0.0901772, 0.0898485, 0.0895175, 0.089185, 0.0888504, 0.0885135, 0.0881751, 0.0878346, 0.0874919, 0.0871477, 0.0868013, 0.0864529,
117  0.0861032, 0.0857509, 0.085397, 0.0850417, 0.0846837, 0.0843243, 0.0839635, 0.0835999, 0.0832352, 0.0828687, 0.0824999, 0.08213, 0.0817578, 0.0813839, 0.0810089, 0.0806311, 0.0802522, 0.0798717, 0.079489, 0.0791052,
118  0.0787191, 0.0783315, 0.0779427, 0.0775514, 0.0771591, 0.0767649, 0.0763689, 0.0759719, 0.0755724, 0.0751719, 0.0747696, 0.0743655, 0.0739605, 0.0735529, 0.0731446, 0.0727342, 0.0723224, 0.0719094, 0.0714941, 0.0710781,
119  0.0706599, 0.0702405, 0.0698197, 0.069397, 0.0689735, 0.0685476, 0.068121, 0.0676924, 0.0672626, 0.0668314, 0.0663984, 0.0659646, 0.0655285, 0.0650918, 0.064653, 0.0642132, 0.0637719, 0.0633291, 0.0628852, 0.0624394,
120  0.0619931, 0.0615443, 0.061095, 0.0606437, 0.0601915, 0.0597378, 0.0592827, 0.0588265, 0.0583686, 0.05791, 0.0574493, 0.0569882, 0.0565247, 0.0560609, 0.055595, 0.0551285, 0.0546601, 0.054191, 0.0537202, 0.0532484,
121  0.0527753, 0.0523008, 0.0518254, 0.0513483, 0.0508705, 0.0503909, 0.0499108, 0.0494287, 0.0489461, 0.0484616, 0.0479767, 0.0474897, 0.0470025, 0.0465131, 0.0460235, 0.0455317, 0.0450398, 0.0445458, 0.0440515, 0.0435552,
122  0.0430586, 0.04256, 0.0420612, 0.0415603, 0.0410592, 0.0405562, 0.0400528, 0.0395475, 0.039042, 0.0385345, 0.0380268, 0.0375171, 0.0370073, 0.0364953, 0.0359834, 0.0354693, 0.0349552, 0.034439, 0.0339227, 0.0334045,
123  0.032886, 0.0323659, 0.0318452, 0.031323, 0.0308002, 0.0302761, 0.0297512, 0.0292252, 0.028698, 0.0281702, 0.0276409, 0.0271112, 0.0265798, 0.0260483, 0.0255148, 0.0249813, 0.0244459, 0.0239103, 0.0233731, 0.0228354,
124  0.0222964, 0.0217567, 0.021216, 0.0206742, 0.0201318, 0.019588, 0.0190439, 0.018498, 0.0179521, 0.0174044, 0.0168564, 0.0163071, 0.0157571, 0.0152062, 0.0146542, 0.0141018, 0.0135478, 0.0129937, 0.0124378, 0.0118817,
125  0.0113243, 0.0107663, 0.0102073, 0.00964732, 0.00908693, 0.00852496, 0.007963, 0.00739923, 0.00683529, 0.00627013, 0.00570424, 0.00513772, 0.00456988, 0.00400203, 0.00343225, 0.00286246, 0.00229137, 0.00171965, 0.00114727, 0.000573636,
126  0},
127 
128  {0, 0.00135166, 0.00270752, 0.00406723, 0.00543052, 0.0067968, 0.00816576, 0.00953697, 0.01091, 0.0122844, 0.0136597, 0.0150357, 0.0164118, 0.0177876, 0.0191627, 0.0205367, 0.0219092, 0.0232797, 0.024648, 0.0260136,
129  0.027376, 0.028735, 0.0300902, 0.0314411, 0.0327875, 0.0341289, 0.0354649, 0.0367955, 0.0381201, 0.0394383, 0.04075, 0.042055, 0.0433525, 0.0446427, 0.0459254, 0.0471998, 0.048466, 0.0497239, 0.0509732, 0.0522132,
130  0.0534442, 0.0546659, 0.0558782, 0.0570807, 0.0582731, 0.0594556, 0.0606279, 0.06179, 0.0629416, 0.0640825, 0.0652126, 0.0663318, 0.0674402, 0.0685376, 0.0696239, 0.0706991, 0.071763, 0.0728156, 0.0738568, 0.0748866,
131  0.075905, 0.0769119, 0.0779072, 0.078891, 0.0798632, 0.0808239, 0.081773, 0.0827105, 0.0836365, 0.0845509, 0.0854539, 0.0863453, 0.0872253, 0.0880939, 0.0889509, 0.0897963, 0.0906304, 0.0914533, 0.092265, 0.0930655,
132  0.0938546, 0.0946324, 0.0953993, 0.0961553, 0.0969003, 0.097634, 0.0983571, 0.0990697, 0.099771, 0.100462, 0.101142, 0.101812, 0.102471, 0.10312, 0.103759, 0.104387, 0.105005, 0.105613, 0.106211, 0.106799,
133  0.107377, 0.107945, 0.108504, 0.109053, 0.109592, 0.110122, 0.110642, 0.111153, 0.111654, 0.112147, 0.11263, 0.113105, 0.11357, 0.114027, 0.114474, 0.114913, 0.115343, 0.115765, 0.116178, 0.116582,
134  0.116979, 0.117366, 0.117746, 0.118118, 0.118481, 0.118836, 0.119184, 0.119523, 0.119855, 0.120179, 0.120495, 0.120804, 0.121106, 0.121399, 0.121686, 0.121965, 0.122237, 0.122501, 0.122759, 0.12301,
135  0.123253, 0.123489, 0.123719, 0.123942, 0.124158, 0.124367, 0.12457, 0.124766, 0.124956, 0.125139, 0.125316, 0.125486, 0.125651, 0.125809, 0.125961, 0.126107, 0.126246, 0.12638, 0.126507, 0.126629,
136  0.126745, 0.126856, 0.126961, 0.127059, 0.127152, 0.12724, 0.127322, 0.127398, 0.127469, 0.127535, 0.127595, 0.12765, 0.1277, 0.127745, 0.127784, 0.127819, 0.127848, 0.127872, 0.127892, 0.127906,
137  0.127915, 0.12792, 0.12792, 0.127915, 0.127905, 0.12789, 0.127871, 0.127847, 0.127819, 0.127786, 0.127749, 0.127707, 0.127661, 0.12761, 0.127555, 0.127496, 0.127432, 0.127364, 0.127292, 0.127216,
138  0.127136, 0.127052, 0.126963, 0.12687, 0.126774, 0.126673, 0.126569, 0.12646, 0.126348, 0.126232, 0.126112, 0.125989, 0.125861, 0.12573, 0.125594, 0.125456, 0.125314, 0.125168, 0.125019, 0.124866,
139  0.124709, 0.124549, 0.124385, 0.124219, 0.124049, 0.123875, 0.123697, 0.123517, 0.123333, 0.123146, 0.122956, 0.122762, 0.122565, 0.122365, 0.122162, 0.121956, 0.121746, 0.121534, 0.121318, 0.1211,
140  0.120878, 0.120653, 0.120425, 0.120195, 0.119962, 0.119725, 0.119485, 0.119243, 0.118998, 0.11875, 0.118499, 0.118245, 0.117989, 0.11773, 0.117468, 0.117203, 0.116936, 0.116666, 0.116393, 0.116118,
141  0.11584, 0.115559, 0.115276, 0.114991, 0.114702, 0.114411, 0.114118, 0.113822, 0.113523, 0.113222, 0.112919, 0.112613, 0.112305, 0.111995, 0.111682, 0.111366, 0.111049, 0.110729, 0.110406, 0.110082,
142  0.109755, 0.109425, 0.109094, 0.10876, 0.108424, 0.108086, 0.107746, 0.107403, 0.107059, 0.106711, 0.106362, 0.106012, 0.105658, 0.105302, 0.104945, 0.104585, 0.104223, 0.10386, 0.103494, 0.103126,
143  0.102756, 0.102384, 0.102011, 0.101634, 0.101257, 0.100877, 0.100495, 0.100112, 0.0997257, 0.0993382, 0.0989492, 0.0985574, 0.0981646, 0.0977694, 0.0973724, 0.0969742, 0.0965731, 0.096171, 0.0957667, 0.0953606,
144  0.0949533, 0.0945433, 0.0941323, 0.093719, 0.0933042, 0.0928879, 0.0924693, 0.0920498, 0.0916276, 0.0912044, 0.0907793, 0.0903524, 0.0899244, 0.0894938, 0.0890626, 0.0886288, 0.088194, 0.0877573, 0.087319, 0.0868794,
145  0.0864376, 0.0859952, 0.08555, 0.0851043, 0.0846562, 0.0842071, 0.0837563, 0.0833039, 0.0828502, 0.0823946, 0.0819382, 0.0814793, 0.08102, 0.0805581, 0.0800957, 0.079631, 0.0791655, 0.0786981, 0.0782296, 0.0777595,
146  0.0772879, 0.0768152, 0.0763406, 0.0758652, 0.0753877, 0.0749096, 0.0744293, 0.0739485, 0.0734653, 0.0729819, 0.0724959, 0.0720098, 0.0715212, 0.0710323, 0.0705411, 0.0700496, 0.0695557, 0.0690615, 0.0685651, 0.0680684,
147  0.0675694, 0.06707, 0.0665685, 0.0660666, 0.0655625, 0.0650582, 0.0645516, 0.0640448, 0.0635357, 0.0630264, 0.0625148, 0.0620032, 0.0614891, 0.0609751, 0.0604586, 0.0599421, 0.0594234, 0.0589044, 0.0583834, 0.0578619,
148  0.0573387, 0.0568148, 0.0562895, 0.0557632, 0.0552357, 0.0547069, 0.0541773, 0.0536462, 0.0531145, 0.052581, 0.0520472, 0.0515114, 0.0509755, 0.0504374, 0.0498992, 0.0493591, 0.0488185, 0.0482765, 0.0477336, 0.0471897,
149  0.0466445, 0.0460987, 0.0455512, 0.0450036, 0.0444538, 0.0439039, 0.0433523, 0.0428001, 0.0422467, 0.0416923, 0.0411372, 0.0405805, 0.0400237, 0.0394648, 0.0389059, 0.0383452, 0.037784, 0.0372217, 0.0366583, 0.0360944,
150  0.0355288, 0.0349632, 0.0343955, 0.0338277, 0.0332586, 0.0326885, 0.0321179, 0.0315457, 0.0309735, 0.0303993, 0.0298249, 0.0292493, 0.0286727, 0.0280957, 0.027517, 0.0269383, 0.0263578, 0.025777, 0.0251952, 0.0246122,
151  0.0240291, 0.023444, 0.022859, 0.0222725, 0.0216853, 0.0210977, 0.0205084, 0.0199191, 0.0193282, 0.0187368, 0.0181447, 0.0175513, 0.0169579, 0.0163626, 0.0157671, 0.0151708, 0.0145732, 0.0139757, 0.0133763, 0.0127767,
152  0.0121762, 0.0115746, 0.010973, 0.0103695, 0.00976587, 0.00916142, 0.00855578, 0.00795015, 0.00734277, 0.00673513, 0.00612685, 0.00551723, 0.00490761, 0.00429648, 0.00368488, 0.00307291, 0.00245935, 0.00184578, 0.00123104, 0.000615521,
153  0},
154 
155  {0, 0.00179287, 0.00359052, 0.00539216, 0.00719704, 0.00900437, 0.0108134, 0.0126233, 0.0144332, 0.0162425, 0.0180503, 0.0198558, 0.0216583, 0.023457, 0.0252512, 0.0270402, 0.0288232, 0.0305995, 0.0323685, 0.0341296,
156  0.035882, 0.037625, 0.0393583, 0.0410813, 0.0427931, 0.0444934, 0.0461819, 0.0478578, 0.0495207, 0.0511703, 0.0528061, 0.0544276, 0.0560349, 0.0576269, 0.059204, 0.0607656, 0.0623113, 0.0638413, 0.0653548, 0.0668521,
157  0.0683326, 0.0697965, 0.0712434, 0.0726733, 0.0740862, 0.0754815, 0.0768599, 0.0782206, 0.0795639, 0.0808901, 0.0821985, 0.0834894, 0.084763, 0.0860194, 0.0872577, 0.0884789, 0.0896829, 0.0908698, 0.0920394, 0.0931915,
158  0.0943266, 0.0954448, 0.0965462, 0.0976309, 0.0986989, 0.0997503, 0.100785, 0.101804, 0.102806, 0.103793, 0.104763, 0.105717, 0.106656, 0.10758, 0.108488, 0.10938, 0.110258, 0.111121, 0.111968, 0.112801,
159  0.113619, 0.114424, 0.115214, 0.11599, 0.116751, 0.117499, 0.118233, 0.118954, 0.119661, 0.120355, 0.121037, 0.121705, 0.12236, 0.123003, 0.123633, 0.124251, 0.124856, 0.12545, 0.126032, 0.126601,
160  0.127159, 0.127705, 0.12824, 0.128764, 0.129277, 0.129778, 0.130269, 0.130749, 0.131218, 0.131677, 0.132125, 0.132563, 0.132991, 0.133408, 0.133816, 0.134214, 0.134602, 0.134982, 0.13535, 0.13571,
161  0.136061, 0.136402, 0.136734, 0.137058, 0.137372, 0.137678, 0.137975, 0.138263, 0.138543, 0.138815, 0.139078, 0.139333, 0.13958, 0.139819, 0.140051, 0.140274, 0.140489, 0.140697, 0.140898, 0.141091,
162  0.141276, 0.141454, 0.141625, 0.141789, 0.141946, 0.142095, 0.142238, 0.142373, 0.142502, 0.142625, 0.14274, 0.14285, 0.142952, 0.143049, 0.143138, 0.143222, 0.143299, 0.14337, 0.143435, 0.143493,
163  0.143546, 0.143593, 0.143635, 0.14367, 0.1437, 0.143723, 0.143742, 0.143754, 0.143762, 0.143763, 0.14376, 0.143751, 0.143736, 0.143717, 0.143692, 0.143662, 0.143627, 0.143587, 0.143542, 0.143492,
164  0.143437, 0.143377, 0.143313, 0.143243, 0.143169, 0.143091, 0.143008, 0.142919, 0.142827, 0.14273, 0.142628, 0.142522, 0.142412, 0.142297, 0.142179, 0.142056, 0.141928, 0.141797, 0.141661, 0.141521,
165  0.141377, 0.141229, 0.141078, 0.140922, 0.140762, 0.140598, 0.14043, 0.140259, 0.140084, 0.139905, 0.139722, 0.139536, 0.139346, 0.139153, 0.138956, 0.138754, 0.13855, 0.138342, 0.138131, 0.137916,
166  0.137698, 0.137476, 0.137251, 0.137023, 0.136791, 0.136556, 0.136318, 0.136077, 0.135832, 0.135584, 0.135333, 0.13508, 0.134822, 0.134562, 0.134299, 0.134033, 0.133763, 0.133491, 0.133216, 0.132938,
167  0.132656, 0.132372, 0.132086, 0.131796, 0.131503, 0.131208, 0.13091, 0.130609, 0.130305, 0.129999, 0.12969, 0.129378, 0.129064, 0.128747, 0.128427, 0.128105, 0.12778, 0.127453, 0.127123, 0.126791,
168  0.126456, 0.126119, 0.125779, 0.125436, 0.125092, 0.124744, 0.124395, 0.124043, 0.123689, 0.123332, 0.122974, 0.122612, 0.122248, 0.121883, 0.121514, 0.121144, 0.120771, 0.120396, 0.12002, 0.11964,
169  0.119259, 0.118876, 0.11849, 0.118102, 0.117712, 0.11732, 0.116926, 0.11653, 0.116132, 0.115731, 0.115329, 0.114925, 0.114518, 0.114111, 0.1137, 0.113288, 0.112874, 0.112457, 0.11204, 0.111619,
170  0.111198, 0.110774, 0.110348, 0.109921, 0.109491, 0.109061, 0.108627, 0.108193, 0.107756, 0.107317, 0.106877, 0.106435, 0.105992, 0.105546, 0.105099, 0.10465, 0.104199, 0.103747, 0.103293, 0.102837,
171  0.102379, 0.101921, 0.10146, 0.100998, 0.100533, 0.100068, 0.0996003, 0.0991318, 0.098661, 0.0981892, 0.0977154, 0.0972402, 0.0967635, 0.0962851, 0.0958054, 0.0953239, 0.0948412, 0.0943565, 0.0938709, 0.0933832,
172  0.0928947, 0.0924039, 0.0919125, 0.0914187, 0.0909245, 0.0904278, 0.0899306, 0.089431, 0.0889311, 0.0884286, 0.0879258, 0.0874206, 0.086915, 0.0864071, 0.0858986, 0.085388, 0.0848768, 0.0843635, 0.0838496, 0.0833337,
173  0.082817, 0.0822986, 0.0817791, 0.0812582, 0.080736, 0.0802126, 0.0796877, 0.0791619, 0.0786344, 0.0781062, 0.0775759, 0.0770454, 0.0765125, 0.0759796, 0.0754442, 0.0749087, 0.074371, 0.0738328, 0.073293, 0.0727522,
174  0.0722102, 0.0716668, 0.0711227, 0.0705768, 0.0700306, 0.0694821, 0.0689335, 0.0683828, 0.0678317, 0.067279, 0.0667254, 0.0661708, 0.0656147, 0.0650582, 0.0644995, 0.0639408, 0.06338, 0.0628188, 0.0622562, 0.0616926,
175  0.0611282, 0.0605621, 0.059996, 0.0594274, 0.0588589, 0.0582886, 0.0577176, 0.0571458, 0.0565724, 0.0559989, 0.0554231, 0.0548473, 0.0542699, 0.0536916, 0.0531128, 0.0525321, 0.0519515, 0.0513688, 0.0507858, 0.0502017,
176  0.0496163, 0.0490308, 0.0484431, 0.0478554, 0.0472662, 0.0466762, 0.0460857, 0.0454933, 0.044901, 0.0443069, 0.0437123, 0.043117, 0.0425201, 0.0419231, 0.0413244, 0.0407252, 0.0401253, 0.0395238, 0.0389223, 0.0383191,
177  0.0377153, 0.037111, 0.036505, 0.0358991, 0.0352915, 0.0346833, 0.0340747, 0.0334643, 0.032854, 0.0322422, 0.0316296, 0.0310169, 0.0304022, 0.0297874, 0.0291717, 0.0285547, 0.0279378, 0.0273191, 0.0267, 0.0260804,
178  0.0254592, 0.0248379, 0.0242154, 0.0235921, 0.0229687, 0.0223434, 0.0217179, 0.0210918, 0.0204642, 0.0198366, 0.0192078, 0.0185781, 0.0179484, 0.0173169, 0.0166851, 0.016053, 0.0154192, 0.0147853, 0.0141506, 0.0135147,
179  0.0128787, 0.0122414, 0.0116035, 0.0109655, 0.0103257, 0.00968566, 0.00904539, 0.00840336, 0.00776132, 0.00711861, 0.00647456, 0.00583051, 0.00518541, 0.00453936, 0.00389331, 0.00324586, 0.00259782, 0.00194978, 0.00130004, 0.00065002,
180  0},
181 
182  {0, 0.00232214, 0.00464938, 0.00698026, 0.00931337, 0.0116471, 0.0139801, 0.0163108, 0.0186377, 0.0209595, 0.0232746, 0.0255817, 0.0278796, 0.0301668, 0.0324419, 0.034704, 0.036952, 0.0391842, 0.0414, 0.0435984,
183  0.0457784, 0.0479391, 0.0500795, 0.0521989, 0.0542966, 0.056372, 0.0584245, 0.0604535, 0.0624585, 0.0644391, 0.0663949, 0.0683255, 0.0702308, 0.0721103, 0.0739639, 0.0757912, 0.0775922, 0.0793672, 0.0811159, 0.082838,
184  0.0845335, 0.0862031, 0.0878462, 0.0894628, 0.091054, 0.0926184, 0.0941575, 0.0956705, 0.0971585, 0.0986207, 0.100058, 0.10147, 0.102858, 0.104222, 0.105561, 0.106876, 0.108168, 0.109436, 0.110681, 0.111903,
185  0.113103, 0.11428, 0.115435, 0.116568, 0.11768, 0.118771, 0.119841, 0.120891, 0.12192, 0.122929, 0.123918, 0.124887, 0.125838, 0.126769, 0.127682, 0.128576, 0.129452, 0.13031, 0.131151, 0.131975,
186  0.13278, 0.133569, 0.134342, 0.135099, 0.135839, 0.136562, 0.137271, 0.137964, 0.138642, 0.139304, 0.139953, 0.140586, 0.141205, 0.14181, 0.142401, 0.142978, 0.143541, 0.144092, 0.144629, 0.145153,
187  0.145665, 0.146164, 0.14665, 0.147124, 0.147586, 0.148037, 0.148474, 0.148902, 0.149317, 0.149721, 0.150114, 0.150496, 0.150868, 0.151228, 0.151578, 0.151919, 0.152248, 0.152568, 0.152878, 0.153177,
188  0.153467, 0.153748, 0.15402, 0.154281, 0.154534, 0.154777, 0.155013, 0.155238, 0.155455, 0.155664, 0.155864, 0.156056, 0.156239, 0.156414, 0.156581, 0.156741, 0.156893, 0.157036, 0.157172, 0.1573,
189  0.157421, 0.157534, 0.157641, 0.15774, 0.157832, 0.157917, 0.157995, 0.158066, 0.15813, 0.158187, 0.158238, 0.158282, 0.15832, 0.158351, 0.158376, 0.158395, 0.158407, 0.158414, 0.158414, 0.158409,
190  0.158397, 0.15838, 0.158357, 0.158328, 0.158293, 0.158253, 0.158208, 0.158157, 0.1581, 0.158038, 0.157971, 0.157899, 0.157821, 0.157738, 0.15765, 0.157557, 0.157459, 0.157356, 0.157249, 0.157136,
191  0.15702, 0.156897, 0.15677, 0.156639, 0.156503, 0.156363, 0.156218, 0.156069, 0.155915, 0.155757, 0.155594, 0.155427, 0.155257, 0.155082, 0.154903, 0.154719, 0.154531, 0.15434, 0.154145, 0.153945,
192  0.153742, 0.153534, 0.153323, 0.153109, 0.15289, 0.152667, 0.152441, 0.152212, 0.151979, 0.151741, 0.1515, 0.151256, 0.151009, 0.150758, 0.150503, 0.150245, 0.149984, 0.149719, 0.149451, 0.14918,
193  0.148906, 0.148627, 0.148346, 0.148063, 0.147775, 0.147484, 0.147191, 0.146894, 0.146594, 0.146291, 0.145986, 0.145677, 0.145365, 0.145051, 0.144733, 0.144413, 0.14409, 0.143764, 0.143434, 0.143103,
194  0.142769, 0.142431, 0.142092, 0.141749, 0.141404, 0.141056, 0.140705, 0.140352, 0.139997, 0.139638, 0.139277, 0.138914, 0.138548, 0.13818, 0.137809, 0.137435, 0.13706, 0.136682, 0.136301, 0.135919,
195  0.135533, 0.135146, 0.134756, 0.134363, 0.133969, 0.133572, 0.133173, 0.132772, 0.132368, 0.131963, 0.131554, 0.131144, 0.130732, 0.130317, 0.129901, 0.129482, 0.129062, 0.128638, 0.128214, 0.127787,
196  0.127358, 0.126927, 0.126493, 0.126059, 0.125621, 0.125183, 0.124742, 0.124299, 0.123854, 0.123407, 0.122959, 0.122508, 0.122056, 0.121601, 0.121145, 0.120687, 0.120227, 0.119766, 0.119302, 0.118837,
197  0.11837, 0.117902, 0.117431, 0.116959, 0.116484, 0.116009, 0.115531, 0.115053, 0.114571, 0.114089, 0.113605, 0.113119, 0.112632, 0.112143, 0.111652, 0.11116, 0.110666, 0.11017, 0.109673, 0.109174,
198  0.108674, 0.108172, 0.107669, 0.107164, 0.106658, 0.10615, 0.10564, 0.10513, 0.104617, 0.104103, 0.103588, 0.103071, 0.102552, 0.102033, 0.101512, 0.10099, 0.100465, 0.0999401, 0.0994127, 0.098885,
199  0.098355, 0.0978242, 0.0972917, 0.0967581, 0.096223, 0.0956865, 0.095149, 0.0946096, 0.0940698, 0.0935275, 0.0929852, 0.0924401, 0.091895, 0.0913477, 0.0907997, 0.0902502, 0.0896994, 0.0891477, 0.0885942, 0.0880403,
200  0.087484, 0.0869276, 0.086369, 0.0858099, 0.0852492, 0.0846874, 0.0841247, 0.0835601, 0.0829956, 0.0824283, 0.081861, 0.0812919, 0.0807219, 0.080151, 0.0795784, 0.0790057, 0.0784304, 0.0778551, 0.077278, 0.0767001,
201  0.0761214, 0.0755408, 0.0749603, 0.0743773, 0.0737942, 0.0732097, 0.0726239, 0.0720379, 0.0714496, 0.0708612, 0.0702712, 0.0696803, 0.0690889, 0.0684954, 0.067902, 0.0673066, 0.0667107, 0.066114, 0.0655155, 0.064917,
202  0.0643166, 0.0637156, 0.063114, 0.0625105, 0.0619071, 0.0613017, 0.0606958, 0.0600894, 0.059481, 0.0588727, 0.0582627, 0.0576519, 0.0570409, 0.0564277, 0.0558145, 0.0552, 0.0545844, 0.0539688, 0.0533511, 0.0527331,
203  0.0521144, 0.051494, 0.0508737, 0.0502518, 0.0496291, 0.0490063, 0.0483813, 0.0477562, 0.0471304, 0.046503, 0.0458757, 0.0452468, 0.0446171, 0.0439874, 0.0433555, 0.0427235, 0.042091, 0.0414568, 0.0408225, 0.0401871,
204  0.0395506, 0.0389141, 0.0382758, 0.0376371, 0.0369983, 0.0363573, 0.0357163, 0.0350748, 0.0344316, 0.0337884, 0.0331443, 0.0324988, 0.0318534, 0.0312067, 0.0305591, 0.0299114, 0.0292622, 0.0286124, 0.0279626, 0.0273108,
205  0.0266588, 0.0260068, 0.0253527, 0.0246986, 0.0240442, 0.0233879, 0.0227317, 0.0220749, 0.0214165, 0.0207582, 0.0200992, 0.0194387, 0.0187782, 0.0181169, 0.0174543, 0.0167917, 0.0161284, 0.0154637, 0.014799, 0.0141335,
206  0.0134667, 0.0128, 0.0121324, 0.0114636, 0.0107948, 0.0101252, 0.00945437, 0.00878352, 0.00811197, 0.00743909, 0.00676621, 0.00609275, 0.00541785, 0.00474295, 0.00406763, 0.00339073, 0.00271382, 0.00203669, 0.00135779, 0.000678897,
207  0},
208 
209  {0, 0.00295868, 0.00592246, 0.00888848, 0.0118539, 0.014816, 0.0177719, 0.020719, 0.0236545, 0.0265758, 0.0294806, 0.0323664, 0.035231, 0.0380722, 0.0408879, 0.0436763, 0.0464357, 0.0491646, 0.0518614, 0.0545245,
210  0.0571534, 0.0597465, 0.062303, 0.0648223, 0.0673034, 0.069746, 0.0721497, 0.0745137, 0.0768385, 0.0791233, 0.081368, 0.083573, 0.0857383, 0.0878639, 0.08995, 0.0919967, 0.0940044, 0.0959733, 0.0979038, 0.0997963,
211  0.101651, 0.103469, 0.105251, 0.106997, 0.108706, 0.11038, 0.112021, 0.113626, 0.115199, 0.116738, 0.118245, 0.11972, 0.121164, 0.122576, 0.12396, 0.125312, 0.126635, 0.127931, 0.129197, 0.130436,
212  0.131647, 0.132833, 0.133992, 0.135125, 0.136233, 0.137316, 0.138375, 0.13941, 0.140421, 0.14141, 0.142376, 0.14332, 0.144242, 0.145143, 0.146023, 0.146883, 0.147721, 0.148541, 0.149341, 0.150122,
213  0.150884, 0.151627, 0.152353, 0.153061, 0.153751, 0.154424, 0.155081, 0.155721, 0.156344, 0.156952, 0.157543, 0.15812, 0.158681, 0.159228, 0.159759, 0.160277, 0.16078, 0.161269, 0.161745, 0.162207,
214  0.162655, 0.163091, 0.163514, 0.163925, 0.164322, 0.164708, 0.165082, 0.165443, 0.165793, 0.166132, 0.166459, 0.166775, 0.167081, 0.167375, 0.167659, 0.167933, 0.168195, 0.168448, 0.168691, 0.168925,
215  0.169148, 0.169361, 0.169566, 0.169761, 0.169947, 0.170124, 0.170292, 0.170451, 0.170601, 0.170744, 0.170877, 0.171003, 0.17112, 0.171229, 0.17133, 0.171423, 0.171508, 0.171586, 0.171656, 0.171719,
216  0.171775, 0.171823, 0.171864, 0.171898, 0.171926, 0.171946, 0.171959, 0.171966, 0.171966, 0.171959, 0.171946, 0.171926, 0.171901, 0.171868, 0.17183, 0.171786, 0.171736, 0.171679, 0.171617, 0.171549,
217  0.171476, 0.171396, 0.171312, 0.171221, 0.171126, 0.171025, 0.170918, 0.170806, 0.170689, 0.170566, 0.170439, 0.170307, 0.170169, 0.170027, 0.16988, 0.169728, 0.169571, 0.169409, 0.169243, 0.169073,
218  0.168897, 0.168717, 0.168532, 0.168343, 0.16815, 0.167953, 0.167751, 0.167544, 0.167334, 0.16712, 0.166901, 0.166678, 0.166451, 0.166221, 0.165986, 0.165747, 0.165505, 0.165258, 0.165009, 0.164754,
219  0.164496, 0.164235, 0.163971, 0.163702, 0.163429, 0.163154, 0.162875, 0.162591, 0.162305, 0.162016, 0.161723, 0.161426, 0.161127, 0.160824, 0.160517, 0.160208, 0.159895, 0.159579, 0.15926, 0.158938,
220  0.158612, 0.158284, 0.157953, 0.157618, 0.157281, 0.156941, 0.156597, 0.156251, 0.155903, 0.15555, 0.155196, 0.154838, 0.154478, 0.154115, 0.153749, 0.15338, 0.15301, 0.152635, 0.152259, 0.15188,
221  0.151498, 0.151114, 0.150727, 0.150337, 0.149946, 0.149551, 0.149154, 0.148754, 0.148352, 0.147949, 0.147541, 0.147133, 0.146721, 0.146307, 0.145892, 0.145473, 0.145053, 0.144629, 0.144204, 0.143777,
222  0.143347, 0.142916, 0.142481, 0.142046, 0.141607, 0.141166, 0.140724, 0.140279, 0.139832, 0.139383, 0.138933, 0.138479, 0.138025, 0.137567, 0.137109, 0.136647, 0.136185, 0.13572, 0.135253, 0.134784,
223  0.134313, 0.133841, 0.133366, 0.13289, 0.132412, 0.131932, 0.13145, 0.130967, 0.130481, 0.129994, 0.129504, 0.129014, 0.128521, 0.128027, 0.12753, 0.127033, 0.126533, 0.126033, 0.125529, 0.125025,
224  0.124518, 0.124011, 0.123501, 0.12299, 0.122477, 0.121963, 0.121447, 0.12093, 0.12041, 0.11989, 0.119367, 0.118843, 0.118318, 0.117791, 0.117263, 0.116733, 0.116201, 0.115668, 0.115134, 0.114598,
225  0.114061, 0.113522, 0.112982, 0.11244, 0.111898, 0.111353, 0.110807, 0.11026, 0.109711, 0.109161, 0.108609, 0.108057, 0.107502, 0.106947, 0.10639, 0.105832, 0.105272, 0.104712, 0.10415, 0.103586,
226  0.103022, 0.102455, 0.101889, 0.10132, 0.10075, 0.100179, 0.0996065, 0.0990336, 0.0984582, 0.0978827, 0.0973051, 0.0967267, 0.0961473, 0.0955661, 0.0949849, 0.0944009, 0.0938169, 0.0932312, 0.0926444, 0.0920571,
227  0.0914674, 0.0908778, 0.0902861, 0.0896937, 0.0891006, 0.0885054, 0.0879102, 0.0873128, 0.0867149, 0.0861161, 0.0855155, 0.0849148, 0.084312, 0.0837086, 0.0831046, 0.0824985, 0.0818925, 0.0812845, 0.0806758, 0.0800666,
228  0.0794552, 0.0788439, 0.0782309, 0.077617, 0.077003, 0.0763864, 0.0757698, 0.0751521, 0.0745329, 0.0739137, 0.0732926, 0.0726708, 0.0720487, 0.0714244, 0.0708001, 0.0701746, 0.0695477, 0.0689209, 0.068292, 0.0676627,
229  0.0670331, 0.0664012, 0.0657693, 0.0651365, 0.0645021, 0.0638678, 0.0632318, 0.062595, 0.0619582, 0.0613192, 0.0606799, 0.0600403, 0.0593986, 0.0587569, 0.0581144, 0.0574703, 0.0568261, 0.0561808, 0.0555342, 0.0548877,
230  0.0542395, 0.0535906, 0.0529417, 0.0522908, 0.0516395, 0.0509882, 0.0503347, 0.049681, 0.0490272, 0.0483713, 0.0477153, 0.0470589, 0.0464006, 0.0457423, 0.0450835, 0.0444229, 0.0437623, 0.043101, 0.0424382, 0.0417753,
231  0.0411116, 0.0404465, 0.0397813, 0.0391154, 0.038448, 0.0377806, 0.0371125, 0.0364428, 0.0357732, 0.0351028, 0.034431, 0.0337591, 0.0330867, 0.0324126, 0.0317385, 0.031064, 0.0303878, 0.0297115, 0.029035, 0.0283566,
232  0.0276781, 0.0269997, 0.0263191, 0.0256385, 0.0249579, 0.0242754, 0.0235927, 0.0229099, 0.0222257, 0.0215408, 0.0208559, 0.0201699, 0.0194829, 0.0187959, 0.0181082, 0.0174191, 0.01673, 0.0160406, 0.0153494, 0.0146583,
233  0.0139671, 0.013274, 0.0125808, 0.0118875, 0.011193, 0.0104977, 0.00980235, 0.00910632, 0.00840896, 0.0077116, 0.00701415, 0.00631477, 0.00561538, 0.00491599, 0.00421515, 0.00351375, 0.00281235, 0.00211021, 0.0014068, 0.000703402,
234  0},
235 
236  {0, 0.00372622, 0.00745647, 0.0111854, 0.0149078, 0.0186181, 0.0223116, 0.0259832, 0.029628, 0.0332419, 0.0368207, 0.0403603, 0.0438576, 0.0473091, 0.0507121, 0.0540643, 0.0573628, 0.0606066, 0.0637939, 0.0669235,
237  0.0699942, 0.0730053, 0.0759564, 0.078847, 0.0816773, 0.0844474, 0.0871578, 0.0898082, 0.0923994, 0.0949326, 0.0974072, 0.0998253, 0.102187, 0.104493, 0.106745, 0.108944, 0.11109, 0.113184, 0.115229, 0.117224,
238  0.11917, 0.12107, 0.122923, 0.12473, 0.126494, 0.128214, 0.129893, 0.131529, 0.133126, 0.134684, 0.136203, 0.137684, 0.139129, 0.140538, 0.141912, 0.143252, 0.144558, 0.145833, 0.147075, 0.148286,
239  0.149467, 0.150618, 0.15174, 0.152834, 0.153901, 0.15494, 0.155953, 0.15694, 0.157902, 0.158839, 0.159751, 0.16064, 0.161506, 0.16235, 0.163172, 0.163972, 0.16475, 0.165507, 0.166245, 0.166963,
240  0.16766, 0.168339, 0.169, 0.169641, 0.170265, 0.170871, 0.171459, 0.172032, 0.172587, 0.173126, 0.173649, 0.174157, 0.174648, 0.175126, 0.175587, 0.176035, 0.176468, 0.176888, 0.177293, 0.177685,
241  0.178064, 0.178429, 0.178782, 0.179123, 0.17945, 0.179766, 0.18007, 0.180362, 0.180643, 0.180912, 0.18117, 0.181417, 0.181653, 0.181879, 0.182094, 0.182298, 0.182493, 0.182678, 0.182853, 0.183019,
242  0.183174, 0.18332, 0.183457, 0.183585, 0.183705, 0.183815, 0.183917, 0.18401, 0.184095, 0.184171, 0.184239, 0.184299, 0.184351, 0.184396, 0.184432, 0.184461, 0.184483, 0.184497, 0.184504, 0.184504,
243  0.184496, 0.184482, 0.18446, 0.184432, 0.184397, 0.184356, 0.184308, 0.184253, 0.184192, 0.184125, 0.184052, 0.183973, 0.183887, 0.183795, 0.183697, 0.183594, 0.183484, 0.18337, 0.183249, 0.183124,
244  0.182993, 0.182855, 0.182713, 0.182565, 0.182412, 0.182255, 0.182092, 0.181924, 0.18175, 0.181572, 0.181389, 0.181202, 0.18101, 0.180813, 0.18061, 0.180404, 0.180193, 0.179979, 0.179758, 0.179534,
245  0.179305, 0.179073, 0.178835, 0.178594, 0.178348, 0.178099, 0.177845, 0.177587, 0.177325, 0.17706, 0.17679, 0.176516, 0.176239, 0.175958, 0.175673, 0.175384, 0.175092, 0.174796, 0.174496, 0.174194,
246  0.173887, 0.173577, 0.173263, 0.172947, 0.172626, 0.172302, 0.171976, 0.171645, 0.171311, 0.170975, 0.170634, 0.170291, 0.169945, 0.169595, 0.169243, 0.168888, 0.168528, 0.168167, 0.167802, 0.167435,
247  0.167065, 0.166691, 0.166315, 0.165936, 0.165554, 0.165169, 0.164782, 0.164391, 0.163999, 0.163603, 0.163205, 0.162804, 0.1624, 0.161995, 0.161585, 0.161175, 0.160761, 0.160344, 0.159926, 0.159504,
248  0.159081, 0.158654, 0.158226, 0.157795, 0.157362, 0.156927, 0.156488, 0.156048, 0.155605, 0.155161, 0.154713, 0.154264, 0.153813, 0.153359, 0.152903, 0.152445, 0.151985, 0.151522, 0.151058, 0.150591,
249  0.150123, 0.149652, 0.149179, 0.148704, 0.148227, 0.147748, 0.147268, 0.146785, 0.1463, 0.145813, 0.145324, 0.144834, 0.144341, 0.143847, 0.143351, 0.142853, 0.142353, 0.141851, 0.141348, 0.140843,
250  0.140335, 0.139826, 0.139315, 0.138803, 0.138289, 0.137773, 0.137255, 0.136736, 0.136215, 0.135692, 0.135168, 0.134641, 0.134114, 0.133584, 0.133054, 0.132521, 0.131987, 0.131451, 0.130914, 0.130375,
251  0.129834, 0.129292, 0.128749, 0.128204, 0.127657, 0.127109, 0.126559, 0.126009, 0.125455, 0.124902, 0.124346, 0.123789, 0.123231, 0.122671, 0.12211, 0.121547, 0.120984, 0.120417, 0.119851, 0.119283,
252  0.118713, 0.118142, 0.11757, 0.116997, 0.116421, 0.115845, 0.115267, 0.114688, 0.114109, 0.113527, 0.112945, 0.11236, 0.111775, 0.111188, 0.1106, 0.110012, 0.109421, 0.10883, 0.108237, 0.107643,
253  0.107048, 0.106451, 0.105854, 0.105255, 0.104655, 0.104055, 0.103452, 0.102849, 0.102244, 0.101638, 0.101032, 0.100423, 0.0998144, 0.0992041, 0.0985925, 0.0979809, 0.0973666, 0.0967521, 0.0961367, 0.0955194,
254  0.0949021, 0.0942828, 0.0936627, 0.0930423, 0.0924194, 0.0917966, 0.0911725, 0.0905469, 0.0899213, 0.0892935, 0.0886652, 0.0880366, 0.0874055, 0.0867744, 0.0861423, 0.0855086, 0.0848748, 0.0842393, 0.0836029, 0.0829665,
255  0.0823277, 0.0816886, 0.0810491, 0.0804074, 0.0797657, 0.0791231, 0.0784788, 0.0778345, 0.0771887, 0.0765418, 0.0758949, 0.0752462, 0.0745967, 0.0739472, 0.0732955, 0.0726435, 0.0719914, 0.0713369, 0.0706823, 0.0700275,
256  0.0693704, 0.0687133, 0.0680558, 0.0673962, 0.0667366, 0.0660764, 0.0654143, 0.0647522, 0.0640895, 0.0634249, 0.0627604, 0.0620951, 0.0614281, 0.0607611, 0.0600935, 0.059424, 0.0587546, 0.0580846, 0.0574128, 0.0567409,
257  0.0560686, 0.0553944, 0.0547202, 0.0540456, 0.0533691, 0.0526925, 0.0520158, 0.0513369, 0.0506579, 0.049979, 0.0492979, 0.0486166, 0.0479353, 0.0472522, 0.0465686, 0.045885, 0.0452, 0.0445141, 0.0438282, 0.0431413,
258  0.0424531, 0.0417649, 0.0410762, 0.0403858, 0.0396953, 0.0390049, 0.0383122, 0.0376195, 0.0369268, 0.0362324, 0.0355375, 0.0348426, 0.0341466, 0.0334495, 0.0327523, 0.0320548, 0.0313555, 0.0306561, 0.0299568, 0.0292556,
259  0.0285541, 0.0278526, 0.02715, 0.0264463, 0.0257426, 0.0250387, 0.0243328, 0.023627, 0.0229212, 0.0222138, 0.0215059, 0.0207979, 0.0200893, 0.0193792, 0.0186691, 0.0179591, 0.0172472, 0.016535, 0.0158228, 0.0151099,
260  0.0143956, 0.0136813, 0.0129671, 0.012251, 0.0115347, 0.0108183, 0.0101013, 0.00938289, 0.00866451, 0.00794613, 0.0072261, 0.00650568, 0.00578526, 0.00506437, 0.00434193, 0.00361949, 0.00289705, 0.00217335, 0.0014489, 0.000724449,
261  0},
262 
263  {0, 0.00465353, 0.00930808, 0.0139535, 0.0185797, 0.0231771, 0.0277365, 0.0322493, 0.0367076, 0.0411044, 0.045433, 0.0496882, 0.0538654, 0.0579605, 0.0619702, 0.065892, 0.0697243, 0.073466, 0.0771168, 0.0806756,
264  0.0841437, 0.0875206, 0.0908083, 0.0940077, 0.0971194, 0.100146, 0.103088, 0.105949, 0.108729, 0.111431, 0.114057, 0.116608, 0.119088, 0.121497, 0.123838, 0.126113, 0.128323, 0.13047, 0.132557, 0.134585,
265  0.136556, 0.138471, 0.140333, 0.142142, 0.143901, 0.14561, 0.147272, 0.148887, 0.150457, 0.151985, 0.153468, 0.154911, 0.156314, 0.157678, 0.159005, 0.160293, 0.161547, 0.162766, 0.163951, 0.165103,
266  0.166222, 0.167311, 0.168369, 0.169398, 0.170398, 0.17137, 0.172314, 0.173232, 0.174124, 0.17499, 0.175831, 0.176648, 0.177442, 0.178213, 0.178961, 0.179687, 0.180391, 0.181076, 0.181738, 0.182381,
267  0.183006, 0.183609, 0.184195, 0.184762, 0.185311, 0.185843, 0.186358, 0.186856, 0.187337, 0.187802, 0.188251, 0.188685, 0.189104, 0.189507, 0.189897, 0.190271, 0.190632, 0.190979, 0.191312, 0.191632,
268  0.19194, 0.192234, 0.192516, 0.192786, 0.193044, 0.193289, 0.193523, 0.193746, 0.193958, 0.194158, 0.194347, 0.194526, 0.194694, 0.194853, 0.195001, 0.195139, 0.195267, 0.195385, 0.195494, 0.195594,
269  0.195684, 0.195766, 0.195839, 0.195903, 0.195958, 0.196005, 0.196044, 0.196074, 0.196096, 0.19611, 0.196116, 0.196115, 0.196106, 0.196089, 0.196066, 0.196034, 0.195996, 0.19595, 0.195898, 0.195838,
270  0.195772, 0.195699, 0.195619, 0.195533, 0.195441, 0.195342, 0.195237, 0.195126, 0.195009, 0.194885, 0.194756, 0.194621, 0.19448, 0.194333, 0.194181, 0.194024, 0.19386, 0.193691, 0.193517, 0.193338,
271  0.193154, 0.192965, 0.192769, 0.192569, 0.192365, 0.192156, 0.191941, 0.191722, 0.191497, 0.191269, 0.191036, 0.190798, 0.190555, 0.190309, 0.190058, 0.189802, 0.189542, 0.189278, 0.18901, 0.188737,
272  0.18846, 0.18818, 0.187895, 0.187606, 0.187313, 0.187017, 0.186716, 0.186411, 0.186104, 0.185792, 0.185476, 0.185157, 0.184835, 0.184508, 0.184178, 0.183845, 0.183508, 0.183168, 0.182824, 0.182476,
273  0.182127, 0.181773, 0.181415, 0.181056, 0.180692, 0.180325, 0.179956, 0.179583, 0.179207, 0.178828, 0.178446, 0.178061, 0.177673, 0.177282, 0.176889, 0.176491, 0.176092, 0.175689, 0.175284, 0.174877,
274  0.174466, 0.174053, 0.173636, 0.173218, 0.172796, 0.172372, 0.171946, 0.171516, 0.171085, 0.17065, 0.170213, 0.169774, 0.169332, 0.168888, 0.168441, 0.167993, 0.16754, 0.167087, 0.16663, 0.166172,
275  0.165711, 0.165248, 0.164783, 0.164315, 0.163846, 0.163373, 0.162899, 0.162422, 0.161945, 0.161463, 0.160981, 0.160495, 0.160009, 0.159519, 0.159029, 0.158535, 0.158041, 0.157543, 0.157044, 0.156542,
276  0.15604, 0.155534, 0.155028, 0.154518, 0.154009, 0.153495, 0.152981, 0.152464, 0.151947, 0.151426, 0.150904, 0.15038, 0.149855, 0.149328, 0.148799, 0.148268, 0.147736, 0.147201, 0.146665, 0.146128,
277  0.145588, 0.145048, 0.144505, 0.143961, 0.143415, 0.142868, 0.142318, 0.141768, 0.141215, 0.140661, 0.140106, 0.139549, 0.138991, 0.13843, 0.137869, 0.137306, 0.136741, 0.136175, 0.135607, 0.135039,
278  0.134468, 0.133896, 0.133322, 0.132748, 0.132172, 0.131593, 0.131015, 0.130434, 0.129853, 0.129269, 0.128684, 0.128099, 0.127511, 0.126923, 0.126332, 0.125741, 0.125149, 0.124554, 0.12396, 0.123363,
279  0.122765, 0.122166, 0.121566, 0.120965, 0.120361, 0.119757, 0.119152, 0.118545, 0.117938, 0.117329, 0.116719, 0.116108, 0.115495, 0.114881, 0.114266, 0.11365, 0.113033, 0.112414, 0.111795, 0.111175,
280  0.110552, 0.10993, 0.109306, 0.10868, 0.108055, 0.107427, 0.106799, 0.106169, 0.105538, 0.104907, 0.104274, 0.10364, 0.103006, 0.102369, 0.101732, 0.101095, 0.100455, 0.0998157, 0.0991747, 0.0985322,
281  0.0978897, 0.0972453, 0.0966001, 0.0959548, 0.0953071, 0.0946591, 0.0940109, 0.0933601, 0.0927093, 0.0920581, 0.0914045, 0.090751, 0.0900967, 0.0894404, 0.0887842, 0.0881269, 0.087468, 0.086809, 0.0861489, 0.0854873,
282  0.0848256, 0.0841627, 0.0834985, 0.0828342, 0.0821686, 0.0815017, 0.0808348, 0.0801666, 0.0794971, 0.0788275, 0.0781568, 0.0774847, 0.0768126, 0.0761394, 0.0754648, 0.0747901, 0.0741145, 0.0734373, 0.0727601, 0.0720823,
283  0.0714025, 0.0707228, 0.0700427, 0.0693605, 0.0686783, 0.067996, 0.0673113, 0.0666266, 0.0659419, 0.0652552, 0.064568, 0.0638808, 0.0631921, 0.0625025, 0.0618129, 0.0611223, 0.0604302, 0.0597382, 0.0590457, 0.0583513,
284  0.0576568, 0.0569624, 0.0562658, 0.055569, 0.0548721, 0.0541739, 0.0534747, 0.0527755, 0.0520757, 0.0513742, 0.0506726, 0.049971, 0.0492674, 0.0485635, 0.0478596, 0.0471545, 0.0464483, 0.0457421, 0.0450357, 0.0443272,
285  0.0436187, 0.0429102, 0.0422002, 0.0414894, 0.0407786, 0.0400674, 0.0393543, 0.0386413, 0.0379283, 0.0372136, 0.0364984, 0.0357831, 0.0350674, 0.0343499, 0.0336324, 0.032915, 0.032196, 0.0314763, 0.0307567, 0.0300367,
286  0.0293149, 0.028593, 0.0278712, 0.0271482, 0.0264242, 0.0257002, 0.0249762, 0.0242502, 0.023524, 0.0227979, 0.0220712, 0.0213429, 0.0206146, 0.0198863, 0.0191568, 0.0184264, 0.017696, 0.0169656, 0.0162334, 0.0155009,
287  0.0147684, 0.0140356, 0.0133011, 0.0125665, 0.0118319, 0.0110966, 0.01036, 0.00962335, 0.00888672, 0.00814893, 0.00741025, 0.00667158, 0.00593291, 0.00519273, 0.00445202, 0.00371132, 0.00297062, 0.00222814, 0.00148543, 0.000742713,
288  0},
289 
290  {0, 0.00577596, 0.0115458, 0.0172904, 0.0229911, 0.0286301, 0.034192, 0.0396622, 0.045029, 0.0502812, 0.0554111, 0.0604123, 0.06528, 0.0700113, 0.0746034, 0.0790576, 0.0833726, 0.087551, 0.0915947, 0.0955061,
291  0.0992885, 0.102945, 0.106479, 0.109895, 0.113196, 0.116386, 0.11947, 0.12245, 0.125331, 0.128116, 0.130809, 0.133412, 0.135931, 0.138367, 0.140724, 0.143005, 0.145212, 0.147348, 0.149416, 0.151419,
292  0.153359, 0.155238, 0.157058, 0.158821, 0.160529, 0.162185, 0.163789, 0.165344, 0.166852, 0.168314, 0.169731, 0.171105, 0.172436, 0.173728, 0.174982, 0.176196, 0.177373, 0.178515, 0.179623, 0.180697,
293  0.181738, 0.182748, 0.183727, 0.184676, 0.185596, 0.186487, 0.187352, 0.188189, 0.189001, 0.189787, 0.190548, 0.191285, 0.192, 0.19269, 0.193359, 0.194007, 0.194631, 0.195237, 0.195822, 0.196386,
294  0.196933, 0.197459, 0.197969, 0.198459, 0.198933, 0.199388, 0.199827, 0.20025, 0.200656, 0.201048, 0.201423, 0.201784, 0.20213, 0.20246, 0.202778, 0.203081, 0.20337, 0.203646, 0.20391, 0.20416,
295  0.204398, 0.204623, 0.204837, 0.205039, 0.205229, 0.205407, 0.205574, 0.205731, 0.205876, 0.206012, 0.206136, 0.206249, 0.206353, 0.206447, 0.206532, 0.206607, 0.206673, 0.206729, 0.206776, 0.206815,
296  0.206844, 0.206865, 0.206877, 0.206881, 0.206877, 0.206865, 0.206844, 0.206816, 0.20678, 0.206736, 0.206685, 0.206627, 0.206561, 0.206488, 0.206408, 0.206321, 0.206228, 0.206127, 0.206021, 0.205907,
297  0.205786, 0.205659, 0.205526, 0.205387, 0.205243, 0.205092, 0.204935, 0.204771, 0.204602, 0.204428, 0.204248, 0.204063, 0.203871, 0.203674, 0.203472, 0.203265, 0.203053, 0.202836, 0.202613, 0.202385,
298  0.202153, 0.201916, 0.201673, 0.201425, 0.201174, 0.200918, 0.200656, 0.200391, 0.200121, 0.199847, 0.199568, 0.199285, 0.198998, 0.198705, 0.198409, 0.19811, 0.197806, 0.197497, 0.197186, 0.19687,
299  0.196549, 0.196226, 0.195899, 0.195567, 0.195232, 0.194894, 0.19455, 0.194205, 0.193855, 0.193502, 0.193146, 0.192785, 0.192422, 0.192056, 0.191685, 0.191311, 0.190935, 0.190554, 0.190171, 0.189785,
300  0.189395, 0.189003, 0.188606, 0.188208, 0.187806, 0.1874, 0.186994, 0.186582, 0.186169, 0.185752, 0.185332, 0.18491, 0.184485, 0.184058, 0.183626, 0.183193, 0.182757, 0.182319, 0.181878, 0.181433,
301  0.180988, 0.180538, 0.180087, 0.179632, 0.179176, 0.178716, 0.178255, 0.177791, 0.177324, 0.176856, 0.176384, 0.175912, 0.175435, 0.174958, 0.174476, 0.173995, 0.173509, 0.173023, 0.172532, 0.172042,
302  0.171547, 0.171052, 0.170553, 0.170054, 0.169551, 0.169047, 0.16854, 0.168032, 0.167521, 0.16701, 0.166494, 0.165979, 0.165459, 0.16494, 0.164417, 0.163893, 0.163366, 0.162839, 0.162308, 0.161777,
303  0.161243, 0.160708, 0.160171, 0.159631, 0.159091, 0.158548, 0.158005, 0.157458, 0.15691, 0.15636, 0.155809, 0.155256, 0.154702, 0.154146, 0.153587, 0.153029, 0.152466, 0.151904, 0.151339, 0.150773,
304  0.150206, 0.149636, 0.149066, 0.148493, 0.14792, 0.147344, 0.146767, 0.146189, 0.145609, 0.145029, 0.144445, 0.143861, 0.143275, 0.142688, 0.1421, 0.141509, 0.140918, 0.140325, 0.13973, 0.139135,
305  0.138538, 0.13794, 0.13734, 0.136739, 0.136137, 0.135532, 0.134928, 0.134321, 0.133713, 0.133105, 0.132494, 0.131883, 0.13127, 0.130656, 0.130041, 0.129424, 0.128806, 0.128187, 0.127567, 0.126946,
306  0.126323, 0.125699, 0.125074, 0.124447, 0.12382, 0.123192, 0.122562, 0.121932, 0.121299, 0.120666, 0.120032, 0.119396, 0.11876, 0.118122, 0.117483, 0.116844, 0.116203, 0.11556, 0.114918, 0.114273,
307  0.113628, 0.112983, 0.112334, 0.111686, 0.111037, 0.110386, 0.109735, 0.109083, 0.108429, 0.107775, 0.107119, 0.106462, 0.105805, 0.105147, 0.104487, 0.103827, 0.103166, 0.102503, 0.10184, 0.101176,
308  0.10051, 0.0998443, 0.0991772, 0.0985088, 0.0978403, 0.0971705, 0.0964992, 0.095828, 0.0951555, 0.0944816, 0.0938076, 0.0931325, 0.0924558, 0.0917791, 0.0911016, 0.0904222, 0.0897428, 0.0890629, 0.0883808, 0.0876987,
309  0.0870165, 0.0863318, 0.085647, 0.0849623, 0.0842752, 0.0835879, 0.0829005, 0.0822114, 0.0815214, 0.0808314, 0.0801402, 0.0794477, 0.0787551, 0.078062, 0.0773669, 0.0766717, 0.0759766, 0.0752791, 0.0745814, 0.0738837,
310  0.0731845, 0.0724843, 0.0717841, 0.0710831, 0.0703804, 0.0696777, 0.068975, 0.06827, 0.0675648, 0.0668596, 0.0661532, 0.0654455, 0.0647379, 0.06403, 0.0633199, 0.0626098, 0.0618997, 0.061188, 0.0604755, 0.059763,
311  0.0590501, 0.0583352, 0.0576203, 0.0569054, 0.0561889, 0.0554716, 0.0547543, 0.0540368, 0.0533171, 0.0525975, 0.0518779, 0.0511569, 0.0504349, 0.049713, 0.048991, 0.0482668, 0.0475425, 0.0468182, 0.0460932, 0.0453666,
312  0.04464, 0.0439134, 0.0431853, 0.0424565, 0.0417276, 0.0409988, 0.0402677, 0.0395366, 0.0388055, 0.0380737, 0.0373404, 0.036607, 0.0358737, 0.0351392, 0.0344036, 0.0336681, 0.0329325, 0.0321953, 0.0314576, 0.0307198,
313  0.0299821, 0.0292423, 0.0285024, 0.0277624, 0.0270223, 0.0262802, 0.0255381, 0.024796, 0.0240535, 0.0233093, 0.022565, 0.0218208, 0.0210759, 0.0203296, 0.0195832, 0.0188369, 0.0180898, 0.0173413, 0.0165928, 0.0158444,
314  0.0150951, 0.0143446, 0.013594, 0.0128435, 0.0120922, 0.0113396, 0.010587, 0.00983434, 0.00908105, 0.00832639, 0.00757173, 0.00681707, 0.00606189, 0.0053052, 0.00454851, 0.00379181, 0.00303483, 0.00227612, 0.00151741, 0.000758707,
315  0.}
316  };
317 
318  //---- Corrections for ME1/1 chambers (very different parameters from the other chambers):
319 
320  //---- min SW ~ 3.15 cm, max SW ~ 7.6 cm
321  //---- Corrections are calculated for N_SW_ME1_1 strip widths (0.3 - 0.8 cm)
322  //---- and for 501 values in
323  float corrections_ME1_1[n_SW_ME1_1][n_val] = {
324  {0, -0.000153178, -0.000304723, -0.000454635, -0.000602913, -0.000749555, -0.000894561, -0.00103785, -0.00117926, -0.00131904, -0.0014572, -0.00159372, -0.00172861, -0.00186188, -0.00199351, -0.00212325, -0.00225135, -0.00237783, -0.00250269, -0.00262593,
325  -0.00274755, -0.00286755, -0.00298594, -0.00310249, -0.00321741, -0.00333073, -0.00344243, -0.00355254, -0.00366104, -0.00376795, -0.00387325, -0.00397696, -0.00407892, -0.00417925, -0.004278, -0.00437517, -0.00447075, -0.00456477, -0.00465721, -0.00474808,
326  -0.00483738, -0.00492512, -0.00501128, -0.00509574, -0.00517866, -0.00526003, -0.00533986, -0.00541815, -0.0054949, -0.00557013, -0.00564383, -0.005716, -0.00578666, -0.0058558, -0.00592344, -0.00598956, -0.0060541, -0.00611712, -0.00617865, -0.00623871,
327  -0.00629728, -0.00635438, -0.00641001, -0.00646418, -0.00651689, -0.00656815, -0.00661796, -0.00666633, -0.00671326, -0.00675877, -0.00680284, -0.0068455, -0.00688674, -0.00692658, -0.00696502, -0.00700205, -0.00703765, -0.00707187, -0.00710472, -0.0071362,
328  -0.00716631, -0.00719508, -0.00722249, -0.00724857, -0.00727331, -0.00729672, -0.00731881, -0.00733959, -0.00735907, -0.00737724, -0.00739412, -0.00740972, -0.00742404, -0.00743709, -0.00744888, -0.00745941, -0.0074687, -0.00747675, -0.00748356, -0.00748915,
329  -0.00749352, -0.00749668, -0.00749865, -0.00749942, -0.00749901, -0.00749742, -0.00749466, -0.00749074, -0.00748567, -0.00747946, -0.00747211, -0.00746363, -0.00745404, -0.00744334, -0.00743153, -0.00741864, -0.00740466, -0.00738961, -0.00737348, -0.00735631,
330  -0.00733808, -0.00731881, -0.00729852, -0.0072772, -0.00725487, -0.00723153, -0.0072072, -0.00718189, -0.0071556, -0.00712834, -0.00710012, -0.00707096, -0.00704085, -0.00700982, -0.00697785, -0.00694495, -0.00691116, -0.00687647, -0.0068409, -0.00680445,
331  -0.00676714, -0.00672898, -0.00668997, -0.00665013, -0.00660946, -0.00656797, -0.00652568, -0.00648259, -0.00643872, -0.00639407, -0.00634865, -0.00630247, -0.00625554, -0.00620788, -0.00615949, -0.00611038, -0.00606056, -0.00601004, -0.0059588, -0.00590688,
332  -0.0058543, -0.00580105, -0.00574716, -0.00569262, -0.00563746, -0.00558167, -0.00552528, -0.00546828, -0.0054107, -0.00535254, -0.0052938, -0.00523451, -0.00517467, -0.00511428, -0.00505337, -0.00499193, -0.00492995, -0.00486748, -0.00480451, -0.00474107,
333  -0.00467715, -0.00461278, -0.00454795, -0.00448268, -0.00441698, -0.00435086, -0.00428433, -0.0042174, -0.00415007, -0.00408237, -0.00401429, -0.00394583, -0.00387701, -0.00380785, -0.00373836, -0.00366854, -0.00359842, -0.00352799, -0.00345726, -0.00338625,
334  -0.00331496, -0.00324341, -0.00317161, -0.00309955, -0.00302726, -0.00295474, -0.00288199, -0.00280904, -0.00273588, -0.00266254, -0.00258902, -0.00251532, -0.00244147, -0.00236747, -0.00229332, -0.00221904, -0.00214463, -0.00207011, -0.00199549, -0.00192076,
335  -0.00184594, -0.00177105, -0.00169609, -0.00162107, -0.001546, -0.00147088, -0.00139573, -0.00132056, -0.00124538, -0.00117018, -0.00109499, -0.00101981, -0.000944646, -0.000869513, -0.000794418, -0.000719369, -0.000644374, -0.000569442, -0.000494581, -0.000419799,
336  -0.000345105, -0.000270507, -0.000196013, -0.000121632, -4.73709e-05, 2.67578e-05, 0.000100743, 0.000174583, 0.000248269, 0.000321794, 0.000395148, 0.000468326, 0.000541318, 0.000614116, 0.000686715, 0.000759104, 0.000831278, 0.000903227, 0.000974946, 0.00104642,
337  0.00111763, 0.0011886, 0.0012593, 0.00132973, 0.00139988, 0.00146975, 0.00153933, 0.00160862, 0.00167759, 0.00174626, 0.0018146, 0.00188262, 0.00195031, 0.00201765, 0.00208463, 0.00215125, 0.00221752, 0.00228341, 0.00234893, 0.00241407,
338  0.00247883, 0.00254319, 0.00260715, 0.0026707, 0.00273384, 0.00279656, 0.00285885, 0.00292071, 0.00298214, 0.0030431, 0.0031036, 0.00316365, 0.00322324, 0.00328236, 0.003341, 0.00339916, 0.00345684, 0.00351402, 0.00357071, 0.0036269,
339  0.00368257, 0.00373773, 0.00379238, 0.0038465, 0.00390008, 0.00395313, 0.00400564, 0.00405758, 0.00410897, 0.0041598, 0.00421006, 0.00425977, 0.00430889, 0.00435745, 0.00440542, 0.0044528, 0.00449959, 0.00454579, 0.00459138, 0.00463637,
340  0.00468075, 0.00472452, 0.00476766, 0.00481018, 0.00485207, 0.00489333, 0.00493396, 0.00497394, 0.00501327, 0.00505193, 0.00508994, 0.00512729, 0.00516398, 0.0052, 0.00523535, 0.00527003, 0.00530403, 0.00533735, 0.00536998, 0.00540192,
341  0.00543317, 0.00546373, 0.00549358, 0.00552273, 0.00555118, 0.00557891, 0.00560592, 0.00563222, 0.0056578, 0.00568266, 0.00570678, 0.00573018, 0.00575284, 0.00577476, 0.00579595, 0.00581639, 0.00583608, 0.00585503, 0.00587322, 0.00589066,
342  0.00590734, 0.00592325, 0.00593841, 0.0059528, 0.00596642, 0.00597926, 0.00599133, 0.00600263, 0.00601314, 0.00602286, 0.00603181, 0.00603996, 0.00604733, 0.00605391, 0.00605969, 0.00606468, 0.00606887, 0.00607226, 0.00607484, 0.00607663,
343  0.0060776, 0.00607777, 0.00607713, 0.00607568, 0.00607341, 0.00607033, 0.00606642, 0.0060617, 0.00605616, 0.00604979, 0.0060426, 0.00603458, 0.00602574, 0.00601606, 0.00600555, 0.00599421, 0.00598202, 0.005969, 0.00595514, 0.00594044,
344  0.0059249, 0.00590852, 0.00589129, 0.00587322, 0.0058543, 0.00583454, 0.00581392, 0.00579246, 0.00577014, 0.00574698, 0.00572296, 0.00569809, 0.00567236, 0.00564578, 0.00561834, 0.00559004, 0.00556088, 0.00553087, 0.00549999, 0.00546825,
345  0.00543566, 0.00540219, 0.00536787, 0.00533268, 0.00529663, 0.00525971, 0.00522193, 0.00518328, 0.00514376, 0.00510338, 0.00506213, 0.00502001, 0.004977, 0.0049331, 0.00488833, 0.00484269, 0.00479618, 0.0047488, 0.00470054, 0.00465142,
346  0.00460142, 0.00455055, 0.00449881, 0.00444619, 0.0043927, 0.00433834, 0.00428311, 0.004227, 0.00417002, 0.00411217, 0.00405344, 0.00399384, 0.00393331, 0.0038719, 0.00380962, 0.00374647, 0.00368244, 0.00361755, 0.00355177, 0.00348513,
347  0.00341761, 0.00334922, 0.00327996, 0.00320982, 0.00313882, 0.00306694, 0.00299419, 0.00292049, 0.00284593, 0.00277049, 0.00269419, 0.00261701, 0.00253897, 0.00246005, 0.00238027, 0.00229962, 0.0022181, 0.00213572, 0.00205247, 0.00196832,
348  0.00188325, 0.00179732, 0.00171052, 0.00162285, 0.00153432, 0.00144493, 0.00135468, 0.00126357, 0.00117159, 0.00107876, 0.000985051, 0.000890399, 0.000794889, 0.000698521, 0.000601296, 0.000503215, 0.000404279, 0.000304488, 0.000203844, 0.000102348,
349  0},
350 
351  {0, 6.5726e-05, 0.000133561, 0.000203493, 0.000275507, 0.000349591, 0.000425731, 0.000503913, 0.000584123, 0.000666346, 0.00075057, 0.000836778, 0.000924956, 0.00101512, 0.00110734, 0.00120149, 0.00129755, 0.0013955, 0.00149533, 0.00159703,
352  0.00170057, 0.00180594, 0.00191312, 0.00202214, 0.00213306, 0.00224575, 0.00236018, 0.00247634, 0.00259421, 0.00271377, 0.00283502, 0.00295792, 0.00308257, 0.00320889, 0.00333682, 0.00346633, 0.00359741, 0.00373004, 0.0038642, 0.00399987,
353  0.00413719, 0.00427598, 0.00441622, 0.00455789, 0.00470098, 0.00484546, 0.00499132, 0.00513867, 0.00528737, 0.00543738, 0.00558868, 0.00574126, 0.00589509, 0.0060502, 0.00620661, 0.00636422, 0.006523, 0.00668292, 0.00684398, 0.00700614,
354  0.00716953, 0.00733397, 0.00749946, 0.00766597, 0.00783349, 0.00800198, 0.00817156, 0.00834207, 0.00851349, 0.00868581, 0.008859, 0.00903307, 0.00920805, 0.00938383, 0.0095604, 0.00973774, 0.00991582, 0.0100947, 0.0102743, 0.0104545,
355  0.0106355, 0.010817, 0.0109992, 0.011182, 0.0113654, 0.0115494, 0.0117339, 0.0119188, 0.0121043, 0.0122903, 0.0124768, 0.0126636, 0.0128508, 0.0130384, 0.0132265, 0.0134148, 0.0136034, 0.0137924, 0.0139816, 0.014171,
356  0.0143607, 0.0145506, 0.0147407, 0.014931, 0.0151214, 0.0153119, 0.0155025, 0.0156932, 0.0158839, 0.0160747, 0.0162655, 0.0164563, 0.0166471, 0.0168378, 0.0170284, 0.017219, 0.0174094, 0.0175997, 0.0177899, 0.0179799,
357  0.0181697, 0.0183593, 0.0185486, 0.0187377, 0.0189266, 0.0191151, 0.0193033, 0.0194912, 0.0196788, 0.019866, 0.0200528, 0.0202392, 0.0204251, 0.0206106, 0.0207957, 0.0209803, 0.0211643, 0.0213479, 0.0215309, 0.0217134,
358  0.0218953, 0.0220766, 0.0222573, 0.0224374, 0.0226168, 0.0227956, 0.0229738, 0.0231512, 0.0233279, 0.0235038, 0.0236791, 0.0238536, 0.0240274, 0.0242003, 0.0243724, 0.0245437, 0.0247142, 0.0248839, 0.0250527, 0.0252206,
359  0.0253875, 0.0255536, 0.0257188, 0.0258831, 0.0260464, 0.0262087, 0.02637, 0.0265304, 0.0266898, 0.0268482, 0.0270055, 0.0271617, 0.0273169, 0.0274711, 0.0276241, 0.0277761, 0.0279271, 0.0280768, 0.0282254, 0.0283729,
360  0.0285192, 0.0286644, 0.0288084, 0.0289513, 0.0290929, 0.0292333, 0.0293725, 0.0295104, 0.0296472, 0.0297827, 0.029917, 0.03005, 0.0301816, 0.030312, 0.0304411, 0.030569, 0.0306955, 0.0308207, 0.0309446, 0.0310671,
361  0.0311883, 0.0313081, 0.0314265, 0.0315436, 0.0316593, 0.0317737, 0.0318867, 0.0319983, 0.0321083, 0.032217, 0.0323243, 0.0324301, 0.0325346, 0.0326376, 0.0327392, 0.0328393, 0.032938, 0.0330352, 0.0331308, 0.033225,
362  0.0333178, 0.033409, 0.0334988, 0.033587, 0.0336738, 0.0337591, 0.0338429, 0.0339252, 0.0340059, 0.0340851, 0.0341627, 0.0342388, 0.0343134, 0.0343864, 0.0344579, 0.0345278, 0.0345962, 0.0346631, 0.0347284, 0.0347921,
363  0.0348543, 0.0349149, 0.034974, 0.0350314, 0.0350872, 0.0351414, 0.0351941, 0.0352452, 0.0352947, 0.0353426, 0.0353889, 0.0354337, 0.0354768, 0.0355183, 0.0355583, 0.0355966, 0.0356334, 0.0356685, 0.0357021, 0.035734,
364  0.0357643, 0.035793, 0.0358201, 0.0358456, 0.0358695, 0.0358917, 0.0359124, 0.0359314, 0.0359488, 0.0359646, 0.0359788, 0.0359913, 0.0360023, 0.0360116, 0.0360193, 0.0360253, 0.0360298, 0.0360326, 0.0360338, 0.0360334,
365  0.0360314, 0.0360278, 0.0360225, 0.0360156, 0.0360071, 0.035997, 0.0359853, 0.0359719, 0.035957, 0.0359404, 0.0359222, 0.0359024, 0.035881, 0.0358579, 0.0358333, 0.035807, 0.0357792, 0.0357497, 0.0357186, 0.035686,
366  0.0356517, 0.0356158, 0.0355783, 0.0355393, 0.0354986, 0.0354563, 0.0354125, 0.0353671, 0.03532, 0.0352714, 0.0352212, 0.0351695, 0.0351161, 0.0350612, 0.0350047, 0.0349465, 0.0348868, 0.0348255, 0.0347626, 0.0346982,
367  0.0346322, 0.0345646, 0.0344955, 0.0344248, 0.0343526, 0.0342788, 0.0342035, 0.0341267, 0.0340483, 0.0339683, 0.0338867, 0.0338036, 0.0337189, 0.0336327, 0.033545, 0.0334558, 0.033365, 0.0332727, 0.033179, 0.0330837,
368  0.0329869, 0.0328884, 0.0327885, 0.032687, 0.0325841, 0.0324796, 0.0323737, 0.0322663, 0.0321574, 0.0320471, 0.0319352, 0.0318217, 0.0317067, 0.0315903, 0.0314724, 0.0313531, 0.0312323, 0.0311101, 0.0309864, 0.0308611,
369  0.0307343, 0.0306061, 0.0304764, 0.0303454, 0.0302129, 0.030079, 0.0299436, 0.0298066, 0.0296683, 0.0295285, 0.0293873, 0.0292448, 0.0291008, 0.0289554, 0.0288084, 0.02866, 0.0285102, 0.0283591, 0.0282066, 0.0280528,
370  0.0278974, 0.0277405, 0.0275823, 0.0274228, 0.0272619, 0.0270996, 0.026936, 0.0267707, 0.0266042, 0.0264363, 0.0262672, 0.0260967, 0.0259247, 0.0257513, 0.0255766, 0.0254005, 0.0252232, 0.0250446, 0.0248644, 0.0246829,
371  0.0245001, 0.024316, 0.0241307, 0.023944, 0.0237558, 0.0235663, 0.0233755, 0.0231836, 0.0229903, 0.0227955, 0.0225994, 0.0224021, 0.0222036, 0.0220039, 0.0218025, 0.0215999, 0.0213962, 0.0211912, 0.020985, 0.0207772,
372  0.0205682, 0.0203581, 0.0201468, 0.0199341, 0.01972, 0.0195047, 0.0192883, 0.0190707, 0.0188516, 0.0186313, 0.0184098, 0.0181872, 0.0179633, 0.017738, 0.0175115, 0.0172839, 0.0170552, 0.016825, 0.0165935, 0.016361,
373  0.0161274, 0.0158925, 0.0156562, 0.0154188, 0.0151803, 0.0149406, 0.0146995, 0.0144573, 0.0142141, 0.0139697, 0.0137239, 0.0134769, 0.0132289, 0.0129799, 0.0127293, 0.0124777, 0.0122251, 0.0119713, 0.0117161, 0.0114599,
374  0.0112026, 0.0109442, 0.0106844, 0.0104236, 0.0101618, 0.00989884, 0.00963451, 0.0093692, 0.00910291, 0.0088353, 0.00856651, 0.00829675, 0.00802603, 0.00775384, 0.00748065, 0.0072065, 0.00693127, 0.00665466, 0.00637711, 0.00609864,
375  0.00581885, 0.00553794, 0.00525611, 0.00497331, 0.00468906, 0.0044039, 0.00411784, 0.00383053, 0.00354207, 0.00325273, 0.00296242, 0.0026707, 0.0023781, 0.00208463, 0.00178985, 0.00149403, 0.00119734, 0.000899595, 0.000600576, 0.000300709,
376  0},
377 
378  {0, 0.000336602, 0.000675667, 0.00101718, 0.00136154, 0.00170824, 0.00205733, 0.00240907, 0.00276303, 0.00311932, 0.00347805, 0.00383888, 0.004202, 0.00456732, 0.00493462, 0.00530417, 0.00567568, 0.00604907, 0.0064246, 0.00680187,
379  0.00718103, 0.00756203, 0.00794465, 0.00832913, 0.00871518, 0.0091028, 0.00949208, 0.00988274, 0.010275, 0.0106685, 0.0110634, 0.0114597, 0.0118572, 0.0122559, 0.0126558, 0.0130567, 0.0134588, 0.0138618, 0.0142658, 0.0146707,
380  0.0150763, 0.0154829, 0.0158901, 0.0162981, 0.0167067, 0.0171159, 0.0175257, 0.0179359, 0.0183466, 0.0187577, 0.0191691, 0.0195808, 0.0199927, 0.0204048, 0.0208171, 0.0212294, 0.0216418, 0.0220541, 0.0224664, 0.0228786,
381  0.0232907, 0.0237025, 0.024114, 0.0245253, 0.0249362, 0.0253467, 0.0257567, 0.0261662, 0.0265752, 0.0269837, 0.0273914, 0.0277985, 0.0282049, 0.0286104, 0.0290152, 0.0294191, 0.0298221, 0.0302242, 0.0306252, 0.0310253,
382  0.0314242, 0.031822, 0.0322187, 0.0326141, 0.0330084, 0.0334013, 0.0337929, 0.0341832, 0.0345721, 0.0349596, 0.0353455, 0.0357299, 0.0361129, 0.0364942, 0.0368739, 0.037252, 0.0376283, 0.0380031, 0.0383759, 0.038747,
383  0.0391164, 0.0394838, 0.0398494, 0.0402131, 0.0405747, 0.0409346, 0.0412923, 0.041648, 0.0420018, 0.0423533, 0.0427028, 0.0430502, 0.0433953, 0.0437383, 0.0440792, 0.0444176, 0.044754, 0.0450881, 0.0454197, 0.0457491,
384  0.0460762, 0.0464007, 0.046723, 0.047043, 0.0473603, 0.0476753, 0.047988, 0.0482978, 0.0486053, 0.0489105, 0.0492129, 0.0495127, 0.0498101, 0.0501049, 0.050397, 0.0506865, 0.0509736, 0.0512577, 0.0515393, 0.0518183,
385  0.0520946, 0.0523681, 0.052639, 0.0529072, 0.0531726, 0.0534352, 0.0536952, 0.0539526, 0.0542069, 0.0544585, 0.0547074, 0.0549536, 0.0551968, 0.0554373, 0.055675, 0.05591, 0.056142, 0.0563711, 0.0565975, 0.0568211,
386  0.057042, 0.0572597, 0.0574746, 0.0576868, 0.0578962, 0.0581027, 0.0583061, 0.0585068, 0.0587047, 0.0588998, 0.0590919, 0.059281, 0.0594673, 0.0596508, 0.0598315, 0.0600093, 0.060184, 0.0603559, 0.0605249, 0.0606912,
387  0.0608546, 0.0610152, 0.0611726, 0.0613272, 0.061479, 0.061628, 0.0617742, 0.0619175, 0.0620579, 0.0621953, 0.0623299, 0.0624616, 0.0625906, 0.0627167, 0.06284, 0.0629605, 0.063078, 0.0631927, 0.0633045, 0.0634136,
388  0.0635198, 0.0636232, 0.0637239, 0.0638218, 0.0639169, 0.0640092, 0.0640985, 0.064185, 0.0642688, 0.0643499, 0.0644281, 0.0645037, 0.0645765, 0.0646465, 0.0647138, 0.0647784, 0.0648402, 0.0648993, 0.0649557, 0.0650094,
389  0.0650602, 0.0651084, 0.0651539, 0.0651967, 0.0652368, 0.0652742, 0.065309, 0.0653411, 0.0653706, 0.0653974, 0.0654216, 0.0654431, 0.065462, 0.0654783, 0.065492, 0.0655031, 0.0655116, 0.0655175, 0.0655209, 0.0655216,
390  0.0655198, 0.0655154, 0.0655085, 0.065499, 0.065487, 0.0654725, 0.0654555, 0.0654359, 0.0654138, 0.0653893, 0.0653623, 0.0653327, 0.0653008, 0.0652663, 0.0652294, 0.0651901, 0.0651483, 0.0651042, 0.0650576, 0.0650086,
391  0.064957, 0.0649031, 0.0648468, 0.0647881, 0.064727, 0.0646636, 0.0645979, 0.0645298, 0.0644593, 0.0643866, 0.0643115, 0.0642342, 0.0641545, 0.0640726, 0.0639884, 0.0639017, 0.0638128, 0.0637216, 0.0636281, 0.0635325,
392  0.0634346, 0.0633345, 0.0632322, 0.0631278, 0.0630211, 0.0629121, 0.0628008, 0.0626874, 0.0625718, 0.0624541, 0.0623343, 0.0622124, 0.0620883, 0.0619621, 0.0618335, 0.0617029, 0.0615702, 0.0614354, 0.0612986, 0.0611598,
393  0.0610189, 0.0608757, 0.0607304, 0.0605831, 0.0604338, 0.0602826, 0.0601293, 0.0599741, 0.0598165, 0.059657, 0.0594955, 0.0593321, 0.0591669, 0.0589997, 0.0588301, 0.0586587, 0.0584854, 0.0583102, 0.0581332, 0.0579542,
394  0.0577729, 0.0575899, 0.057405, 0.0572183, 0.0570299, 0.0568392, 0.0566466, 0.0564522, 0.0562561, 0.0560583, 0.0558583, 0.0556563, 0.0554527, 0.0552474, 0.0550403, 0.0548311, 0.0546201, 0.0544074, 0.054193, 0.0539769,
395  0.0537586, 0.0535387, 0.0533171, 0.0530939, 0.0528688, 0.0526417, 0.0524131, 0.0521829, 0.0519509, 0.0517169, 0.0514813, 0.0512441, 0.0510055, 0.0507646, 0.0505221, 0.0502782, 0.0500328, 0.0497852, 0.0495361, 0.0492855,
396  0.0490334, 0.0487792, 0.0485235, 0.0482664, 0.0480078, 0.047747, 0.0474849, 0.0472213, 0.0469562, 0.046689, 0.0464205, 0.0461506, 0.045879, 0.0456056, 0.0453309, 0.0450548, 0.0447767, 0.0444972, 0.0442164, 0.043934,
397  0.0436498, 0.0433642, 0.0430774, 0.0427887, 0.0424985, 0.042207, 0.0419141, 0.0416193, 0.0413233, 0.0410261, 0.0407269, 0.0404264, 0.0401247, 0.0398213, 0.0395163, 0.0392102, 0.0389026, 0.0385933, 0.0382828, 0.0379711,
398  0.0376574, 0.0373427, 0.0370268, 0.0367089, 0.0363899, 0.0360698, 0.0357479, 0.0354247, 0.0351004, 0.0347744, 0.0344471, 0.0341187, 0.0337887, 0.0334573, 0.0331248, 0.0327908, 0.0324554, 0.032119, 0.0317809, 0.0314415,
399  0.0311012, 0.0307592, 0.0304159, 0.0300717, 0.0297257, 0.0293786, 0.0290306, 0.0286807, 0.0283298, 0.0279779, 0.0276242, 0.0272695, 0.0269138, 0.0265563, 0.026198, 0.0258384, 0.0254773, 0.0251153, 0.0247518, 0.0243872,
400  0.0240217, 0.0236543, 0.0232861, 0.0229169, 0.022546, 0.0221743, 0.0218012, 0.0214268, 0.0210517, 0.0206749, 0.0202971, 0.0199184, 0.019538, 0.019157, 0.0187745, 0.0183908, 0.0180064, 0.0176202, 0.0172333, 0.0168452,
401  0.0164558, 0.0160656, 0.0156739, 0.0152812, 0.0148876, 0.0144925, 0.0140967, 0.0136994, 0.0133012, 0.0129021, 0.0125015, 0.0121002, 0.0116975, 0.0112938, 0.0108893, 0.0104832, 0.0100766, 0.00966846, 0.00925949, 0.00884953,
402  0.00843822, 0.00802638, 0.00761284, 0.00719869, 0.00678337, 0.00636692, 0.00594983, 0.00553111, 0.0051119, 0.00469127, 0.00426981, 0.00384742, 0.00342373, 0.00299959, 0.00257369, 0.00214735, 0.00171971, 0.00129118, 0.000861804, 0.000431112,
403  0},
404 
405  {0, 0.00067284, 0.00134879, 0.00202776, 0.00270996, 0.00339501, 0.00408276, 0.00477335, 0.00546651, 0.00616208, 0.00686005, 0.00756033, 0.00826268, 0.00896702, 0.00967339, 0.0103815, 0.0110912, 0.0118026, 0.0125154, 0.0132295,
406  0.0139448, 0.0146612, 0.0153786, 0.0160968, 0.0168158, 0.0175354, 0.0182555, 0.0189759, 0.0196967, 0.0204176, 0.0211385, 0.0218593, 0.02258, 0.0233003, 0.0240202, 0.0247395, 0.0254582, 0.0261762, 0.0268932, 0.0276093,
407  0.0283243, 0.0290381, 0.0297505, 0.0304615, 0.0311711, 0.031879, 0.0325851, 0.0332894, 0.0339919, 0.0346922, 0.0353905, 0.0360866, 0.0367803, 0.0374715, 0.0381604, 0.0388467, 0.0395302, 0.0402111, 0.0408891, 0.0415641,
408  0.0422361, 0.0429052, 0.0435709, 0.0442335, 0.0448928, 0.0455486, 0.046201, 0.0468499, 0.0474952, 0.0481369, 0.0487748, 0.0494089, 0.0500393, 0.0506655, 0.051288, 0.0519065, 0.0525207, 0.053131, 0.053737, 0.0543388,
409  0.0549365, 0.0555296, 0.0561186, 0.056703, 0.057283, 0.0578587, 0.0584296, 0.0589963, 0.059558, 0.0601155, 0.060668, 0.061216, 0.0617592, 0.0622977, 0.0628315, 0.0633604, 0.0638846, 0.0644038, 0.0649184, 0.0654278,
410  0.0659327, 0.0664323, 0.0669273, 0.067417, 0.0679021, 0.0683819, 0.0688571, 0.069327, 0.0697921, 0.0702521, 0.070707, 0.0711571, 0.0716019, 0.0720421, 0.0724768, 0.0729068, 0.0733315, 0.0737513, 0.0741662, 0.0745758,
411  0.0749807, 0.0753801, 0.0757748, 0.0761645, 0.0765489, 0.0769287, 0.0773031, 0.0776727, 0.0780375, 0.0783968, 0.0787515, 0.0791012, 0.0794457, 0.0797855, 0.0801204, 0.08045, 0.080775, 0.0810952, 0.0814101, 0.0817204,
412  0.082026, 0.0823263, 0.0826219, 0.082913, 0.0831989, 0.08348, 0.0837566, 0.0840285, 0.0842952, 0.0845573, 0.084815, 0.0850679, 0.0853158, 0.0855591, 0.0857981, 0.0860324, 0.0862617, 0.0864865, 0.0867069, 0.0869229,
413  0.0871341, 0.0873407, 0.0875429, 0.0877407, 0.0879342, 0.0881229, 0.0883071, 0.088487, 0.0886627, 0.088834, 0.0890011, 0.0891634, 0.0893215, 0.0894754, 0.0896251, 0.0897706, 0.089912, 0.090049, 0.0901816, 0.0903101,
414  0.0904345, 0.0905549, 0.0906711, 0.0907833, 0.0908915, 0.0909957, 0.0910955, 0.0911914, 0.0912833, 0.0913713, 0.0914553, 0.0915355, 0.0916117, 0.0916841, 0.0917526, 0.0918173, 0.0918782, 0.0919353, 0.0919886, 0.092038,
415  0.0920836, 0.0921255, 0.0921637, 0.0921982, 0.0922291, 0.0922563, 0.0922799, 0.0922999, 0.0923163, 0.0923292, 0.0923385, 0.0923442, 0.0923465, 0.0923452, 0.0923405, 0.0923323, 0.0923207, 0.0923056, 0.0922872, 0.0922654,
416  0.0922402, 0.0922117, 0.0921799, 0.0921447, 0.0921063, 0.0920646, 0.0920197, 0.0919714, 0.0919199, 0.0918652, 0.0918073, 0.0917462, 0.091682, 0.0916146, 0.0915442, 0.0914707, 0.0913941, 0.0913145, 0.0912319, 0.0911462,
417  0.0910576, 0.0909659, 0.0908711, 0.0907733, 0.0906725, 0.0905689, 0.0904624, 0.0903531, 0.0902409, 0.0901259, 0.0900081, 0.0898871, 0.0897633, 0.0896368, 0.0895075, 0.0893755, 0.0892408, 0.0891035, 0.0889633, 0.0888202,
418  0.0886744, 0.088526, 0.088375, 0.0882214, 0.0880653, 0.0879063, 0.0877446, 0.0875803, 0.0874136, 0.0872444, 0.0870727, 0.0868983, 0.0867211, 0.0865416, 0.0863597, 0.0861754, 0.0859887, 0.0857991, 0.0856071, 0.0854128,
419  0.0852163, 0.0850175, 0.0848158, 0.0846117, 0.0844055, 0.084197, 0.0839864, 0.0837728, 0.0835571, 0.0833392, 0.0831192, 0.0828968, 0.0826718, 0.0824447, 0.0822156, 0.0819844, 0.0817504, 0.0815143, 0.0812763, 0.0810363,
420  0.0807935, 0.0805487, 0.0803019, 0.0800533, 0.079802, 0.0795486, 0.0792933, 0.0790362, 0.0787765, 0.0785147, 0.0782512, 0.0779858, 0.0777177, 0.0774478, 0.0771762, 0.0769024, 0.0766263, 0.0763485, 0.076069, 0.075787,
421  0.0755031, 0.0752175, 0.0749301, 0.0746402, 0.0743487, 0.0740556, 0.07376, 0.0734626, 0.0731637, 0.0728628, 0.0725597, 0.0722551, 0.0719488, 0.0716401, 0.0713298, 0.0710182, 0.070704, 0.0703882, 0.0700711, 0.0697516,
422  0.0694305, 0.069108, 0.0687833, 0.0684569, 0.0681291, 0.0677993, 0.0674676, 0.0671347, 0.0667997, 0.0664629, 0.0661248, 0.0657847, 0.0654429, 0.0650999, 0.0647547, 0.064408, 0.0640601, 0.0637099, 0.0633583, 0.0630055,
423  0.0626503, 0.062294, 0.0619363, 0.0615764, 0.0612154, 0.0608528, 0.0604883, 0.0601227, 0.0597552, 0.0593861, 0.0590161, 0.0586437, 0.0582702, 0.0578954, 0.0575185, 0.0571407, 0.056761, 0.0563799, 0.0559978, 0.0556134,
424  0.0552281, 0.0548412, 0.0544526, 0.0540632, 0.0536716, 0.053279, 0.0528851, 0.0524892, 0.0520926, 0.051694, 0.0512943, 0.0508933, 0.0504905, 0.0500869, 0.0496813, 0.0492747, 0.0488668, 0.0484572, 0.0480468, 0.0476344,
425  0.047221, 0.0468063, 0.0463901, 0.0459731, 0.0455539, 0.0451341, 0.0447126, 0.04429, 0.0438662, 0.0434407, 0.0430147, 0.0425864, 0.0421576, 0.0417272, 0.0412956, 0.0408629, 0.0404286, 0.0399937, 0.0395567, 0.0391192,
426  0.03868, 0.0382398, 0.0377984, 0.0373556, 0.036912, 0.0364666, 0.0360208, 0.0355729, 0.0351245, 0.0346744, 0.0342235, 0.0337713, 0.0333179, 0.0328636, 0.0324077, 0.0319513, 0.0314929, 0.0310342, 0.0305736, 0.0301125,
427  0.0296498, 0.0291863, 0.0287215, 0.0282556, 0.0277887, 0.0273206, 0.0268516, 0.0263811, 0.0259101, 0.0254373, 0.0249642, 0.0244892, 0.024014, 0.0235368, 0.0230593, 0.0225801, 0.0221005, 0.0216193, 0.0211375, 0.0206542,
428  0.0201703, 0.019685, 0.0191989, 0.0187117, 0.0182235, 0.0177342, 0.017244, 0.0167527, 0.0162605, 0.0157672, 0.0152729, 0.0147777, 0.0142814, 0.0137843, 0.013286, 0.0127868, 0.0122866, 0.0117855, 0.0112834, 0.0107803,
429  0.0102763, 0.00977131, 0.00926534, 0.00875847, 0.00825062, 0.00774184, 0.00723215, 0.00672146, 0.00620995, 0.00569735, 0.00518404, 0.00466955, 0.00415446, 0.00363809, 0.00312124, 0.00260299, 0.0020844, 0.00156428, 0.00104398, 0.00052199,
430  0},
431 
432  {0, 0.00109345, 0.00219081, 0.00329183, 0.00439625, 0.00550381, 0.00661425, 0.0077273, 0.00884269, 0.00996015, 0.0110795, 0.0122003, 0.0133224, 0.0144455, 0.0155693, 0.0166936, 0.017818, 0.0189424, 0.0200664, 0.0211898,
433  0.0223123, 0.0234336, 0.0245535, 0.0256718, 0.0267882, 0.0279024, 0.0290142, 0.0301233, 0.0312294, 0.0323325, 0.0334321, 0.0345282, 0.0356204, 0.0367086, 0.0377926, 0.0388721, 0.0399469, 0.0410168, 0.0420815, 0.0431411,
434  0.0441951, 0.0452436, 0.0462862, 0.0473229, 0.0483534, 0.0493777, 0.0503955, 0.0514067, 0.0524112, 0.0534088, 0.0543994, 0.0553829, 0.0563592, 0.057328, 0.0582895, 0.0592434, 0.0601896, 0.061128, 0.0620586, 0.0629813,
435  0.0638959, 0.0648023, 0.0657006, 0.0665907, 0.0674726, 0.0683461, 0.0692114, 0.0700682, 0.0709164, 0.071756, 0.072587, 0.0734096, 0.0742236, 0.0750291, 0.0758256, 0.0766134, 0.0773927, 0.0781634, 0.0789253, 0.0796782,
436  0.0804226, 0.0811584, 0.0818854, 0.0826035, 0.083313, 0.0840142, 0.084706, 0.0853895, 0.0860646, 0.0867305, 0.087388, 0.0880373, 0.0886774, 0.0893093, 0.0899329, 0.0905475, 0.091154, 0.0917519, 0.0923414, 0.0929229,
437  0.0934955, 0.0940604, 0.0946164, 0.0951647, 0.0957045, 0.0962364, 0.0967601, 0.0972757, 0.0977834, 0.098283, 0.0987748, 0.0992587, 0.0997347, 0.100203, 0.100663, 0.101116, 0.101561, 0.101999, 0.102429, 0.102852,
438  0.103266, 0.103674, 0.104074, 0.104467, 0.104853, 0.105231, 0.105602, 0.105967, 0.106324, 0.106674, 0.107017, 0.107353, 0.107682, 0.108005, 0.10832, 0.108629, 0.108931, 0.109226, 0.109515, 0.109798,
439  0.110074, 0.110343, 0.110606, 0.110863, 0.111113, 0.111357, 0.111595, 0.111827, 0.112053, 0.112272, 0.112486, 0.112693, 0.112895, 0.113091, 0.11328, 0.113464, 0.113643, 0.113815, 0.113982, 0.114143,
440  0.114299, 0.114449, 0.114594, 0.114733, 0.114867, 0.114995, 0.115118, 0.115236, 0.115348, 0.115455, 0.115558, 0.115655, 0.115746, 0.115833, 0.115915, 0.115992, 0.116064, 0.116131, 0.116193, 0.11625,
441  0.116302, 0.11635, 0.116393, 0.116431, 0.116465, 0.116494, 0.116519, 0.116539, 0.116554, 0.116565, 0.116571, 0.116574, 0.116571, 0.116565, 0.116554, 0.116539, 0.116519, 0.116495, 0.116468, 0.116436,
442  0.1164, 0.116359, 0.116315, 0.116267, 0.116215, 0.116159, 0.116099, 0.116035, 0.115967, 0.115895, 0.115819, 0.115739, 0.115656, 0.115569, 0.115478, 0.115384, 0.115286, 0.115185, 0.11508, 0.114971,
443  0.114858, 0.114742, 0.114623, 0.1145, 0.114373, 0.114244, 0.114111, 0.113974, 0.113834, 0.113691, 0.113544, 0.113394, 0.113241, 0.113085, 0.112926, 0.112763, 0.112596, 0.112427, 0.112255, 0.11208,
444  0.111902, 0.11172, 0.111535, 0.111348, 0.111157, 0.110964, 0.110767, 0.110568, 0.110365, 0.11016, 0.109952, 0.109741, 0.109527, 0.10931, 0.109091, 0.108869, 0.108644, 0.108416, 0.108185, 0.107953,
445  0.107716, 0.107477, 0.107236, 0.106993, 0.106746, 0.106497, 0.106245, 0.105991, 0.105734, 0.105474, 0.105213, 0.104948, 0.104681, 0.104412, 0.10414, 0.103866, 0.103589, 0.103309, 0.103028, 0.102744,
446  0.102458, 0.102169, 0.101878, 0.101584, 0.101289, 0.100991, 0.100691, 0.100388, 0.100084, 0.0997766, 0.0994672, 0.099156, 0.0988424, 0.0985263, 0.0982085, 0.0978886, 0.0975659, 0.0972416, 0.0969154, 0.0965863,
447  0.0962557, 0.0959232, 0.0955879, 0.095251, 0.0949123, 0.0945709, 0.094228, 0.0938831, 0.0935357, 0.0931869, 0.0928359, 0.0924827, 0.0921281, 0.0917711, 0.0914122, 0.0910519, 0.0906889, 0.0903244, 0.0899584, 0.0895897,
448  0.0892197, 0.0888478, 0.0884737, 0.0880985, 0.0877207, 0.0873414, 0.0869608, 0.0865774, 0.086193, 0.0858066, 0.0854182, 0.0850288, 0.0846366, 0.0842434, 0.0838484, 0.0834513, 0.0830532, 0.0826526, 0.0822508, 0.0818473,
449  0.0814418, 0.0810354, 0.0806264, 0.0802164, 0.0798046, 0.079391, 0.0789765, 0.0785593, 0.0781414, 0.0777214, 0.0773, 0.0768773, 0.0764524, 0.0760269, 0.0755987, 0.0751698, 0.074739, 0.0743068, 0.0738733, 0.0734378,
450  0.0730016, 0.0725629, 0.0721235, 0.0716821, 0.0712396, 0.0707956, 0.0703499, 0.0699033, 0.0694545, 0.0690053, 0.0685534, 0.0681012, 0.0676468, 0.0671915, 0.0667346, 0.0662763, 0.0658168, 0.0653557, 0.0648936, 0.0644296,
451  0.063965, 0.0634981, 0.0630309, 0.0625614, 0.0620914, 0.0616193, 0.0611466, 0.060672, 0.0601966, 0.0597196, 0.0592414, 0.058762, 0.0582812, 0.0577993, 0.0573159, 0.0568316, 0.0563456, 0.0558588, 0.0553703, 0.0548812,
452  0.0543902, 0.0538986, 0.0534051, 0.0529112, 0.0524153, 0.0519189, 0.0514206, 0.0509219, 0.0504213, 0.0499202, 0.0494172, 0.0489138, 0.0484085, 0.0479028, 0.0473952, 0.0468872, 0.0463774, 0.045867, 0.045355, 0.0448423,
453  0.0443281, 0.0438132, 0.0432969, 0.0427797, 0.0422612, 0.0417417, 0.0412212, 0.0406995, 0.0401769, 0.0396529, 0.0391284, 0.0386021, 0.0380756, 0.0375471, 0.0370186, 0.036488, 0.0359573, 0.0354247, 0.0348918, 0.0343573,
454  0.0338222, 0.0332859, 0.0327486, 0.0322104, 0.031671, 0.031131, 0.0305895, 0.0300477, 0.029504, 0.0289603, 0.0284146, 0.0278688, 0.0273214, 0.0267734, 0.0262244, 0.0256743, 0.0251236, 0.0245714, 0.0240191, 0.0234648,
455  0.0229105, 0.0223545, 0.0217981, 0.0212406, 0.0206822, 0.0201231, 0.0195626, 0.019002, 0.0184394, 0.0178768, 0.0173127, 0.0167481, 0.0161826, 0.0156159, 0.015049, 0.0144803, 0.0139115, 0.0133412, 0.0127705, 0.0121988,
456  0.0116261, 0.0110531, 0.0104783, 0.00990358, 0.00932729, 0.00875055, 0.008173, 0.00759428, 0.00701549, 0.0064348, 0.00585411, 0.00527215, 0.00468949, 0.00410634, 0.00352174, 0.00293714, 0.00235088, 0.00176434, 0.00117696, 0.00058848,
457  0},
458 
459  {0, 0.00162336, 0.00325125, 0.00488316, 0.00651853, 0.00815664, 0.00979694, 0.0114388, 0.0130815, 0.0147246, 0.0163673, 0.0180091, 0.0196493, 0.0212874, 0.0229227, 0.0245546, 0.0261826, 0.0278061, 0.0294245, 0.0310375,
460  0.032644, 0.034244, 0.0358369, 0.0374219, 0.038999, 0.0405672, 0.0421266, 0.0436763, 0.0452161, 0.0467457, 0.0482645, 0.0497723, 0.0512687, 0.0527534, 0.0542261, 0.0556864, 0.0571342, 0.0585689, 0.059991, 0.0613992,
461  0.0627942, 0.0641754, 0.0655425, 0.0668959, 0.0682348, 0.0695593, 0.0708697, 0.0721652, 0.0734459, 0.0747121, 0.0759637, 0.0772, 0.0784213, 0.0796279, 0.0808195, 0.0819963, 0.0831575, 0.0843039, 0.0854353, 0.0865517,
462  0.0876532, 0.0887399, 0.0898116, 0.0908685, 0.0919105, 0.0929378, 0.0939504, 0.0949484, 0.0959318, 0.0969007, 0.0978552, 0.0987953, 0.0997213, 0.100633, 0.101531, 0.102415, 0.103285, 0.104142, 0.104985, 0.105814,
463  0.106629, 0.107432, 0.108221, 0.108998, 0.109761, 0.110511, 0.111249, 0.111974, 0.112686, 0.113386, 0.114074, 0.114749, 0.115413, 0.116065, 0.116704, 0.117332, 0.117949, 0.118553, 0.119147, 0.119729,
464  0.1203, 0.120861, 0.121409, 0.121948, 0.122475, 0.122993, 0.123499, 0.123996, 0.124481, 0.124958, 0.125423, 0.125879, 0.126325, 0.126761, 0.127188, 0.127604, 0.128012, 0.12841, 0.128799, 0.129179,
465  0.12955, 0.129912, 0.130265, 0.130609, 0.130945, 0.131272, 0.13159, 0.1319, 0.132202, 0.132495, 0.132781, 0.133059, 0.133328, 0.133589, 0.133843, 0.134089, 0.134327, 0.134558, 0.134781, 0.134998,
466  0.135206, 0.135407, 0.135601, 0.135788, 0.135969, 0.136141, 0.136307, 0.136466, 0.136619, 0.136765, 0.136904, 0.137037, 0.137163, 0.137283, 0.137396, 0.137503, 0.137604, 0.137699, 0.137788, 0.137871,
467  0.137947, 0.138018, 0.138083, 0.138142, 0.138195, 0.138242, 0.138284, 0.138321, 0.138351, 0.138377, 0.138397, 0.138411, 0.13842, 0.138424, 0.138423, 0.138416, 0.138405, 0.138388, 0.138366, 0.13834,
468  0.138308, 0.138272, 0.13823, 0.138184, 0.138133, 0.138078, 0.138018, 0.137953, 0.137883, 0.137809, 0.13773, 0.137647, 0.137559, 0.137467, 0.137371, 0.137271, 0.137166, 0.137057, 0.136944, 0.136826,
469  0.136705, 0.136579, 0.136449, 0.136316, 0.136178, 0.136037, 0.135891, 0.135742, 0.135588, 0.135431, 0.135271, 0.135106, 0.134938, 0.134766, 0.13459, 0.134411, 0.134228, 0.134042, 0.133852, 0.133658,
470  0.133461, 0.133261, 0.133057, 0.13285, 0.132639, 0.132425, 0.132208, 0.131988, 0.131764, 0.131537, 0.131307, 0.131073, 0.130837, 0.130597, 0.130354, 0.130108, 0.129859, 0.129607, 0.129352, 0.129094,
471  0.128833, 0.128569, 0.128302, 0.128033, 0.12776, 0.127484, 0.127206, 0.126926, 0.126641, 0.126354, 0.126066, 0.125773, 0.125478, 0.125181, 0.124881, 0.124577, 0.124272, 0.123964, 0.123653, 0.12334,
472  0.123024, 0.122705, 0.122384, 0.122061, 0.121735, 0.121407, 0.121076, 0.120743, 0.120407, 0.120069, 0.119729, 0.119386, 0.119041, 0.118693, 0.118343, 0.117992, 0.117637, 0.11728, 0.116922, 0.11656,
473  0.116197, 0.115831, 0.115463, 0.115094, 0.114721, 0.114347, 0.113971, 0.113592, 0.113212, 0.112829, 0.112444, 0.112058, 0.111668, 0.111278, 0.110885, 0.11049, 0.110093, 0.109694, 0.109293, 0.10889,
474  0.108485, 0.108079, 0.10767, 0.107259, 0.106847, 0.106432, 0.106017, 0.105598, 0.105178, 0.104756, 0.104333, 0.103908, 0.10348, 0.103052, 0.10262, 0.102188, 0.101753, 0.101317, 0.10088, 0.10044,
475  0.0999993, 0.0995557, 0.0991114, 0.0986647, 0.0982168, 0.0977671, 0.0973157, 0.0968629, 0.096408, 0.0959523, 0.0954938, 0.0950349, 0.0945733, 0.094111, 0.0936464, 0.0931808, 0.0927133, 0.0922444, 0.0917739, 0.0913018,
476  0.0908285, 0.0903532, 0.089877, 0.0893986, 0.0889195, 0.088438, 0.087956, 0.0874715, 0.0869867, 0.0864992, 0.0860115, 0.0855211, 0.0850305, 0.0845373, 0.0840439, 0.0835479, 0.0830517, 0.0825529, 0.0820539, 0.0815524,
477  0.0810507, 0.0805465, 0.080042, 0.0795351, 0.0790281, 0.0785184, 0.0780088, 0.0774965, 0.0769842, 0.0764693, 0.0759543, 0.075437, 0.0749194, 0.0743995, 0.0738793, 0.073357, 0.0728342, 0.0723096, 0.0717841, 0.0712572,
478  0.0707291, 0.0701999, 0.0696692, 0.0691378, 0.0686045, 0.0680709, 0.0675351, 0.0669993, 0.066461, 0.0659226, 0.0653822, 0.0648413, 0.0642988, 0.0637555, 0.0632109, 0.062665, 0.0621185, 0.0615702, 0.0610217, 0.0604709,
479  0.0599201, 0.0593672, 0.0588139, 0.0582592, 0.0577035, 0.057147, 0.0565888, 0.0560305, 0.05547, 0.0549094, 0.0543469, 0.053784, 0.0532198, 0.0526544, 0.0520886, 0.0515209, 0.0509531, 0.0503833, 0.0498132, 0.0492418,
480  0.0486693, 0.0480964, 0.0475216, 0.0469468, 0.04637, 0.0457929, 0.0452147, 0.0446352, 0.0440555, 0.0434738, 0.0428921, 0.0423087, 0.0417248, 0.04114, 0.0405538, 0.0399675, 0.0393792, 0.0387906, 0.038201, 0.0376103,
481  0.0370194, 0.0364264, 0.0358334, 0.0352391, 0.0346439, 0.0340484, 0.033451, 0.0328536, 0.0322548, 0.0316552, 0.0310553, 0.0304535, 0.0298517, 0.0292485, 0.0286446, 0.0280404, 0.0274343, 0.0268281, 0.0262208, 0.0256125,
482  0.0250043, 0.0243939, 0.0237835, 0.0231721, 0.0225596, 0.0219471, 0.0213327, 0.0207181, 0.0201029, 0.0194862, 0.0188694, 0.0182513, 0.0176325, 0.0170136, 0.0163927, 0.0157718, 0.0151501, 0.0145272, 0.0139042, 0.0132797,
483  0.0126547, 0.0120296, 0.0114025, 0.0107755, 0.0101476, 0.00951858, 0.00888951, 0.00825902, 0.00762794, 0.00699685, 0.00636378, 0.00573069, 0.00509707, 0.00446199, 0.00382691, 0.00319078, 0.00255372, 0.00191665, 0.00127807, 0.000639035,
484  0}
485  };
486 
487  for(int i = 0; i<n_SW_noME1_1; i++){
488  for(int j = 0; j<n_val;j++){
489  //---- maybe a vector later...
490  x_correction_noME1_1[i][j] = corrections_noME1_1[i][j];
491  if(i<n_SW_ME1_1){
492  x_correction_ME1_1[i][j] = corrections_ME1_1[i][j];
493  }
494  }
495  }
496 
497 }
float x_correction_noME1_1[n_SW_noME1_1][n_val]
float x_correction_ME1_1[n_SW_ME1_1][n_val]
void CSCXonStrip_MatchGatti::initChamberSpecs ( )

Use specs to setup Gatti parameters.

Definition at line 478 of file CSCXonStrip_MatchGatti.cc.

References CSCChamberSpecs::anodeCathodeSpacing(), h, k_1, k_2, k_3, M_PI_2, norm, r, specs_, mathSSE::sqrt(), sqrt_k_3, stripWidth, CSCChamberSpecs::wireRadius(), and CSCChamberSpecs::wireSpacing().

478  {
479  // Not used directly but these are parameters used for extracting the correction values
480  // in coordinate and error estimators
481 
482  // Distance between anode and cathode
484  r = h / stripWidth;
485 
486  // Wire spacing
487  double wspace = specs_->wireSpacing();
488 
489  // Wire radius
490  double wradius = specs_->wireRadius();
491 
492  // Accepted parameters in Gatti function
493  const double parm[5] = {.1989337e-02, -.6901542e-04, .8665786, 154.6177, -.680163e-03 };
494 
495  k_3 = ( parm[0]*wspace/h + parm[1] )
496  * ( parm[2]*wspace/wradius + parm[3] + parm[4]*(wspace/wradius)*(wspace/wradius) );
497 
498  sqrt_k_3 = std::sqrt( k_3 );
499  norm = r * (0.5 / std::atan( sqrt_k_3 )); // changed from norm to r * norm
500  k_2 = M_PI_2 * ( 1. - sqrt_k_3 /2. );
501  k_1 = 0.25 * k_2 * sqrt_k_3 / std::atan( sqrt_k_3 );
502 }
#define M_PI_2
float wireRadius() const
T sqrt(T t)
Definition: SSEVec.h:18
float wireSpacing() const
const CSCChamberSpecs * specs_
float anodeCathodeSpacing() const
CSCXonStrip_MatchGatti& CSCXonStrip_MatchGatti::operator= ( const CSCXonStrip_MatchGatti )
private

Referenced by setConditions().

void CSCXonStrip_MatchGatti::setConditions ( const CSCRecoConditions reco)
inline

Cache pointer to conditions data.

Definition at line 47 of file CSCXonStrip_MatchGatti.h.

References CSCXonStrip_MatchGatti(), operator=(), trackingPlots::reco, and recoConditions_.

Referenced by CSCMake2DRecHit::setConditions().

47  {
49  }
const CSCRecoConditions * recoConditions_
void CSCXonStrip_MatchGatti::setupMatrix ( )

Set matrix for XT corrections and noise.

Definition at line 362 of file CSCXonStrip_MatchGatti.cc.

References ALCARECOTkAlJpsiMuMu_cff::charge, chargeSignal, q_sum, q_sumC, q_sumL, q_sumR, xt_l, xt_lr0, xt_lr1, xt_lr2, and xt_r.

Referenced by findXOnStrip().

362  {
363  //---- a??? and v??[] could be skipped for now...; not used yet
364 
365  /*
366  double dd, a11t, a12t, a13t, a22t, a23t, a33t;
367  double syserr = adcSystematics;
368  double xtlk_err = xtalksSystematics;
369  // Left strip
370  a11t = a11[0] + syserr*syserr * ChargeSignal[0][0]*ChargeSignal[0][0] + xtlk_err*xtlk_err*ChargeSignal[1][0]*ChargeSignal[1][0];
371  a12t = a12[0] + syserr*syserr * ChargeSignal[0][0]*ChargeSignal[0][1];
372  a13t = a13[0] + syserr*syserr * ChargeSignal[0][0]*ChargeSignal[0][2];
373  a22t = a22[0] + syserr*syserr * ChargeSignal[0][1]*ChargeSignal[0][1] + xtlk_err*xtlk_err*ChargeSignal[1][1]*ChargeSignal[1][1];
374  a23t = a23[0] + syserr*syserr * ChargeSignal[0][1]*ChargeSignal[0][2];
375  a33t = a33[0] + syserr*syserr * ChargeSignal[0][2]*ChargeSignal[0][2] + xtlk_err*xtlk_err*ChargeSignal[1][2]*ChargeSignal[1][2];
376 
377  dd = (a11t*a33t*a22t - a11t*a23t*a23t - a33t*a12t*a12t
378  + 2.* a12t*a13t*a23t - a13t*a13t*a22t );
379 
380  v11[0] = (a33t*a22t - a23t*a23t)/dd;
381  v12[0] =-(a33t*a12t - a13t*a23t)/dd;
382  v13[0] = (a12t*a23t - a13t*a22t)/dd;
383  v22[0] = (a33t*a11t - a13t*a13t)/dd;
384  v23[0] =-(a23t*a11t - a12t*a13t)/dd;
385  v33[0] = (a22t*a11t - a12t*a12t)/dd;
386 
387  // Center strip
388  a11t = a11[1] + syserr*syserr * ChargeSignal[1][0]*ChargeSignal[1][0] + xtlk_err*xtlk_err*(ChargeSignal[0][0]*ChargeSignal[0][0]+ChargeSignal[2][0]*ChargeSignal[2][0]);
389  a12t = a12[1] + syserr*syserr * ChargeSignal[1][0]*ChargeSignal[1][1];
390  a13t = a13[1] + syserr*syserr * ChargeSignal[1][0]*ChargeSignal[1][2];
391  a22t = a22[1] + syserr*syserr * ChargeSignal[1][1]*ChargeSignal[1][1] + xtlk_err*xtlk_err*(ChargeSignal[0][1]*ChargeSignal[0][1]+ChargeSignal[2][1]*ChargeSignal[2][1]);
392  a23t = a23[1] + syserr*syserr * ChargeSignal[1][1]*ChargeSignal[1][2];
393  a33t = a33[1] + syserr*syserr * ChargeSignal[1][2]*ChargeSignal[1][2] + xtlk_err*xtlk_err*(ChargeSignal[0][2]*ChargeSignal[0][2]+ChargeSignal[2][2]*ChargeSignal[2][2]);
394 
395  dd = (a11t*a33t*a22t - a11t*a23t*a23t - a33t*a12t*a12t
396  + 2.* a12t*a13t*a23t - a13t*a13t*a22t );
397 
398  v11[1] = (a33t*a22t - a23t*a23t)/dd;
399  v12[1] =-(a33t*a12t - a13t*a23t)/dd;
400  v13[1] = (a12t*a23t - a13t*a22t)/dd;
401  v22[1] = (a33t*a11t - a13t*a13t)/dd;
402  v23[1] =-(a23t*a11t - a12t*a13t)/dd;
403  v33[1] = (a22t*a11t - a12t*a12t)/dd;
404 
405  // Right strip
406  a11t = a11[2] + syserr*syserr * ChargeSignal[2][0]*ChargeSignal[2][0] + xtlk_err*xtlk_err*ChargeSignal[1][0]*ChargeSignal[1][0];
407  a12t = a12[2] + syserr*syserr * ChargeSignal[2][0]*ChargeSignal[2][1];
408  a13t = a13[2] + syserr*syserr * ChargeSignal[2][0]*ChargeSignal[2][2];
409  a22t = a22[2] + syserr*syserr * ChargeSignal[2][1]*ChargeSignal[2][1] + xtlk_err*xtlk_err*ChargeSignal[1][1]*ChargeSignal[1][1];
410  a23t = a23[2] + syserr*syserr * ChargeSignal[2][1]*ChargeSignal[2][2];
411  a33t = a33[2] + syserr*syserr * ChargeSignal[2][2]*ChargeSignal[2][2] + xtlk_err*xtlk_err*ChargeSignal[1][2]*ChargeSignal[1][2];
412 
413  dd = (a11t*a33t*a22t - a11t*a23t*a23t - a33t*a12t*a12t
414  +2.* a12t*a13t*a23t - a13t*a13t*a22t );
415 
416  v11[2] = (a33t*a22t - a23t*a23t)/dd;
417  v12[2] =-(a33t*a12t - a13t*a23t)/dd;
418  v13[2] = (a12t*a23t - a13t*a22t)/dd;
419  v22[2] = (a33t*a11t - a13t*a13t)/dd;
420  v23[2] =-(a23t*a11t - a12t*a13t)/dd;
421  v33[2] = (a22t*a11t - a12t*a12t)/dd;
422 */
423  //---- Find the inverted XTalk matrix and apply it to the charge (3x3)
424  //---- Thus the charge before the XTalk is obtained
425  CLHEP::HepMatrix cross_talks_inv(3,3);
426  int err = 0;
427  //---- q_sum is 3 time bins summed; L, C, R - left, central, right strips
428  q_sum = q_sumL = q_sumC = q_sumR = 0.;
429  double charge = 0.;
430  for(int iTime=0;iTime<3;iTime++){
431  cross_talks_inv(1,1) = xt_lr0[iTime];
432  cross_talks_inv(1,2) = xt_l[1][iTime];
433  cross_talks_inv(1,3) = 0.;
434  cross_talks_inv(2,1) = xt_r[0][iTime];
435  cross_talks_inv(2,2) = xt_lr1[iTime];
436  cross_talks_inv(2,3) = xt_l[2][iTime];
437  cross_talks_inv(3,1) = 0.;
438  cross_talks_inv(3,2) = xt_r[1][iTime];
439  cross_talks_inv(3,3) = xt_lr2[iTime];
440  cross_talks_inv.invert(err);
441  if (err != 0) {
442  edm::LogWarning("FailedXTalkiInversionNoCrosstalkCorrection") <<"Failed to invert XTalks matrix. No cross-talk correction for this rechit.";
443  //edm::LogError("CSCRecHit") << "Failed to invert XTalks matrix. No cross-talk correction for this rechit.";
444  return;
445  }
446  //---- "charge" is XT-corrected charge
447  charge = chargeSignal[0][iTime]*cross_talks_inv(1,1) + chargeSignal[1][iTime]*cross_talks_inv(1,2) +
448  chargeSignal[2][iTime]*cross_talks_inv(1,3);
449  //---- Negative charge? According to studies (and logic) - better use 0 charge
450  //----- Later studies suggest that this only do harm. I am still worried about
451  // charges of -50 ADC and below (0.5% of the cases) but let see
452  //if(charge<0.){
453  //charge = 0.;
454  //}
455  q_sum+=charge;
456  q_sumL+=charge;
457  charge = chargeSignal[0][iTime]*cross_talks_inv(2,1) + chargeSignal[1][iTime]*cross_talks_inv(2,2) +
458  chargeSignal[2][iTime]* cross_talks_inv(2,3);
459  //if(charge<0.){
460  //charge = 0.;
461  //}
462  q_sum+=charge;
463  q_sumC+=charge;
464  charge = chargeSignal[0][iTime]*cross_talks_inv(3,1) + chargeSignal[1][iTime]*cross_talks_inv(3,2) +
465  chargeSignal[2][iTime]*cross_talks_inv(3,3);
466  //if(charge<0.){
467  //charge = 0.;
468  //}
469  q_sum+=charge;
470  q_sumR+=charge;
471  }
472 }
float xt_l[3][3]
x-talks 0 = left, 1 = middle, 2 = right ; and then second [] is for time bin tmax-1, tmax, tmax+1
double CSCXonStrip_MatchGatti::xfError_Noise ( double  noise)
private

Definition at line 602 of file CSCXonStrip_MatchGatti.cc.

References relativeConstraints::error, SiStripPI::max, min(), funct::pow(), q_sumC, q_sumL, q_sumR, and mathSSE::sqrt().

Referenced by calculateXonStripError().

602  {
603 
604  double min, max;
605  if(q_sumR>q_sumL){
606  min = q_sumL;
607  max = q_sumR;
608  }
609  else{
610  min = q_sumR;
611  max = q_sumL;
612  }
613  //---- Error propagation...
614  //---- Names here are fake! Due to technical features
615  double dr_L2 = pow(q_sumR-q_sumL,2);
616  double dr_C2 = pow(q_sumC-min,2);
617  double dr_R2 = pow(q_sumC-max,2);
618  double error = std::sqrt(dr_L2 + dr_C2 + dr_R2)*noise/std::pow(q_sumC-min,2)/2;
619 
620  return error;
621 }
T sqrt(T t)
Definition: SSEVec.h:18
T min(T a, T b)
Definition: MathUtil.h:58
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
double CSCXonStrip_MatchGatti::xfError_XTasym ( double  XTasym)
private

Definition at line 623 of file CSCXonStrip_MatchGatti.cc.

References relativeConstraints::error, min(), funct::pow(), q_sumC, q_sumL, q_sumR, and mathSSE::sqrt().

Referenced by calculateXonStripError().

623  {
624 
625  double min;
626  if(q_sumR>q_sumL){
627  min = q_sumL;
628  }
629  else{
630  min = q_sumR;
631  }
632  //---- Error propagation
633  double dXTL = (std::pow(q_sumC,2)+std::pow(q_sumR,2)-q_sumL*q_sumR-q_sumR*q_sumC);
634  double dXTR = (std::pow(q_sumC,2)+std::pow(q_sumL,2)-q_sumL*q_sumR-q_sumL*q_sumC);
635  double dXT = std::sqrt(std::pow(dXTL,2) + std::pow(dXTR,2))/std::pow((q_sumC-min),2)/2;
636  double error = dXT * xt_asym;
637 
638  return error;
639 }
T sqrt(T t)
Definition: SSEVec.h:18
T min(T a, T b)
Definition: MathUtil.h:58
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40

Member Data Documentation

float CSCXonStrip_MatchGatti::a11[3]
private

Store elements of auto-correlation matrices: 0 = left, 1 = middle, 2 = right.

Definition at line 74 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip().

float CSCXonStrip_MatchGatti::a12[3]
private

Definition at line 74 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip().

float CSCXonStrip_MatchGatti::a13[3]
private

Definition at line 74 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip().

float CSCXonStrip_MatchGatti::a22[3]
private

Definition at line 74 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip().

float CSCXonStrip_MatchGatti::a23[3]
private

Definition at line 74 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip().

float CSCXonStrip_MatchGatti::a33[3]
private

Definition at line 74 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip().

float CSCXonStrip_MatchGatti::chargeSignal[3][3]
private

Definition at line 64 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip(), and setupMatrix().

float CSCXonStrip_MatchGatti::const_syst
private

Definition at line 116 of file CSCXonStrip_MatchGatti.h.

Referenced by calculateXonStripError(), and findXOnStrip().

float CSCXonStrip_MatchGatti::const_syst_ME12
private

Definition at line 126 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::const_syst_ME13
private

Definition at line 129 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::const_syst_ME1a
private

Definition at line 120 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::const_syst_ME1b
private

Definition at line 123 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::const_syst_ME21
private

Definition at line 132 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::const_syst_ME22
private

Definition at line 135 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::const_syst_ME31
private

Definition at line 138 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::const_syst_ME32
private

Definition at line 141 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::const_syst_ME41
private

Definition at line 144 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

double CSCXonStrip_MatchGatti::h
private

Definition at line 57 of file CSCXonStrip_MatchGatti.h.

Referenced by initChamberSpecs().

double CSCXonStrip_MatchGatti::k_1
private

Definition at line 61 of file CSCXonStrip_MatchGatti.h.

Referenced by initChamberSpecs().

double CSCXonStrip_MatchGatti::k_2
private

Definition at line 61 of file CSCXonStrip_MatchGatti.h.

Referenced by initChamberSpecs().

double CSCXonStrip_MatchGatti::k_3
private

Definition at line 61 of file CSCXonStrip_MatchGatti.h.

Referenced by initChamberSpecs().

const int CSCXonStrip_MatchGatti::n_SW_ME1_1 = 6
staticprivate
const int CSCXonStrip_MatchGatti::n_SW_noME1_1 = 11
staticprivate
const int CSCXonStrip_MatchGatti::n_val = 501
staticprivate
float CSCXonStrip_MatchGatti::noise_level
private

Definition at line 114 of file CSCXonStrip_MatchGatti.h.

Referenced by calculateXonStripError(), and findXOnStrip().

float CSCXonStrip_MatchGatti::noise_level_ME12
private

Definition at line 124 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::noise_level_ME13
private

Definition at line 127 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::noise_level_ME1a
private

Definition at line 118 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::noise_level_ME1b
private

Definition at line 121 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::noise_level_ME21
private

Definition at line 130 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::noise_level_ME22
private

Definition at line 133 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::noise_level_ME31
private

Definition at line 136 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::noise_level_ME32
private

Definition at line 139 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::noise_level_ME41
private

Definition at line 142 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

double CSCXonStrip_MatchGatti::norm
private

Definition at line 61 of file CSCXonStrip_MatchGatti.h.

Referenced by initChamberSpecs().

double CSCXonStrip_MatchGatti::q_sum
private

Definition at line 82 of file CSCXonStrip_MatchGatti.h.

Referenced by setupMatrix().

double CSCXonStrip_MatchGatti::q_sumC
private
double CSCXonStrip_MatchGatti::q_sumL
private
double CSCXonStrip_MatchGatti::q_sumR
private
double CSCXonStrip_MatchGatti::r
private

Definition at line 59 of file CSCXonStrip_MatchGatti.h.

Referenced by initChamberSpecs().

const CSCRecoConditions* CSCXonStrip_MatchGatti::recoConditions_
private

Definition at line 90 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip(), and setConditions().

const CSCChamberSpecs* CSCXonStrip_MatchGatti::specs_
private

Definition at line 78 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip(), and initChamberSpecs().

double CSCXonStrip_MatchGatti::sqrt_k_3
private

Definition at line 61 of file CSCXonStrip_MatchGatti.h.

Referenced by initChamberSpecs().

float CSCXonStrip_MatchGatti::stripWidth
private

Definition at line 58 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip(), and initChamberSpecs().

bool CSCXonStrip_MatchGatti::use3TimeBins
private

Definition at line 86 of file CSCXonStrip_MatchGatti.h.

bool CSCXonStrip_MatchGatti::useCalib
private

Definition at line 85 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::v11[3]
private

Store elements of matrices for chi^2 computation: 0 = left, 1 = middle, 2 = right.

Definition at line 71 of file CSCXonStrip_MatchGatti.h.

float CSCXonStrip_MatchGatti::v12[3]
private

Definition at line 71 of file CSCXonStrip_MatchGatti.h.

float CSCXonStrip_MatchGatti::v13[3]
private

Definition at line 71 of file CSCXonStrip_MatchGatti.h.

float CSCXonStrip_MatchGatti::v22[3]
private

Definition at line 71 of file CSCXonStrip_MatchGatti.h.

float CSCXonStrip_MatchGatti::v23[3]
private

Definition at line 71 of file CSCXonStrip_MatchGatti.h.

float CSCXonStrip_MatchGatti::v33[3]
private

Definition at line 71 of file CSCXonStrip_MatchGatti.h.

float CSCXonStrip_MatchGatti::x_centralVal[n_val]
private

Definition at line 112 of file CSCXonStrip_MatchGatti.h.

float CSCXonStrip_MatchGatti::x_correction_ME1_1[n_SW_ME1_1][n_val]
private
float CSCXonStrip_MatchGatti::x_correction_noME1_1[n_SW_noME1_1][n_val]
private
float CSCXonStrip_MatchGatti::xt_asymmetry
private

Definition at line 115 of file CSCXonStrip_MatchGatti.h.

Referenced by calculateXonStripError(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_asymmetry_ME12
private

Definition at line 125 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_asymmetry_ME13
private

Definition at line 128 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_asymmetry_ME1a
private

Definition at line 119 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_asymmetry_ME1b
private

Definition at line 122 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_asymmetry_ME21
private

Definition at line 131 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_asymmetry_ME22
private

Definition at line 134 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_asymmetry_ME31
private

Definition at line 137 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_asymmetry_ME32
private

Definition at line 140 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_asymmetry_ME41
private

Definition at line 143 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().

float CSCXonStrip_MatchGatti::xt_l[3][3]
private

x-talks 0 = left, 1 = middle, 2 = right ; and then second [] is for time bin tmax-1, tmax, tmax+1

Definition at line 67 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip(), and setupMatrix().

float CSCXonStrip_MatchGatti::xt_lr0[3]
private

Definition at line 68 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip(), and setupMatrix().

float CSCXonStrip_MatchGatti::xt_lr1[3]
private

Definition at line 68 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip(), and setupMatrix().

float CSCXonStrip_MatchGatti::xt_lr2[3]
private

Definition at line 68 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip(), and setupMatrix().

float CSCXonStrip_MatchGatti::xt_r[3][3]
private

Definition at line 67 of file CSCXonStrip_MatchGatti.h.

Referenced by findXOnStrip(), and setupMatrix().

float CSCXonStrip_MatchGatti::xtalksOffset
private

Definition at line 87 of file CSCXonStrip_MatchGatti.h.

Referenced by CSCXonStrip_MatchGatti(), and findXOnStrip().