CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiStripTemplate.h
Go to the documentation of this file.
1 //
2 // SiStripTemplate.h (v2.10) [v1.0 based on SiPixelTemplate v8.20]
3 //
4 // V1.05 - add VI optimizations from pixel template object
5 // V1.06 - increase angular acceptance (and structure size)
6 // V2.00 - add barycenter interpolation and getters, fix calculation for charge deposition to accommodate cota-offsets in the central cotb entries.
7 // V2.01 - fix problem with number of spare entries
8 // V2.10 - modify methods for cluster splitting to improve speed
9 //
10 // Created by Morris Swartz on 10/11/10.
11 //
12 //
13 
14 // Build the template storage structure from several pieces
15 
16 #ifndef SiStripTemplate_h
17 #define SiStripTemplate_h 1
18 
19 #include "SiStripTemplateDefs.h"
20 
21 #include<vector>
22 #include<cassert>
23 #include "boost/multi_array.hpp"
24 
25 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
28 #endif
29 
31  int runnum;
32  float alpha;
33  float cotalpha;
34  float beta;
35  float cotbeta;
36  float costrk[3];
37  float qavg;
38  float sxmax;
39  float dxone;
40  float sxone;
41  float qmin;
42  float qmin2;
43  float clslenx;
44  float mpvvav;
45  float sigmavav;
46  float kappavav;
47  float mpvvav2;
48  float sigmavav2;
49  float kappavav2;
50  float xpar[2][5];
51  float xtemp[9][TSXSIZE];
52  float xavg[4];
53  float xrms[4];
54  float xgx0[4];
55  float xgsig[4];
56  float xflpar[4][6];
57  float chi2xavg[4];
58  float chi2xmin[4];
59  float chi2xavgone;
60  float chi2xminone;
61  float xavgc2m[4];
62  float xrmsc2m[4];
63  float xgx0c2m[4];
64  float xgsigc2m[4];
65  float chi2xavgc2m[4];
66  float chi2xminc2m[4];
67  float xavggen[4];
68  float xrmsgen[4];
69  float xgx0gen[4];
70  float xgsiggen[4];
71  float xavgbcn[4];
72  float xrmsbcn[4];
73  float xgx0bcn[4];
74  float xgsigbcn[4];
75  float qbfrac[3];
76  float fracxone;
77  float qavg_avg;
78  float qavg_spare;
79  float spare[7];
80 } ;
81 
82 
83 
84 
86  char title[80];
87  int ID;
89  float Bfield;
90  int NTy;
91  int NTyx;
92  int NTxx;
93  int Dtype;
94  float Vbias;
95  float temperature;
96  float fluence;
97  float qscale;
98  float s50;
99  float lorywidth;
100  float lorxwidth;
101  float xsize;
102  float ysize;
103  float zsize;
104 } ;
105 
106 
107 
110 #ifndef SI_STRIP_TEMPLATE_USE_BOOST
113 #else
114  boost::multi_array<SiStripTemplateEntry,1> enty;
115  boost::multi_array<SiStripTemplateEntry,2> entx;
116 #endif
117 } ;
118 
119 
120 // ******************************************************************************************
138 // ******************************************************************************************
140  public:
141  SiStripTemplate(const std::vector< SiStripTemplateStore > & theStripTemp) : theStripTemp_(theStripTemp) {id_current_ = -1; index_id_ = -1; cota_current_ = 0.; cotb_current_ = 0.;}
142  static bool pushfile(int filenum, std::vector< SiStripTemplateStore > & theStripTemp_); // load the private store with info from the
143  // file with the index (int) filenum
144 
145 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
146  static bool pushfile(const SiPixelTemplateDBObject& dbobject, std::vector< SiStripTemplateStore > & theStripTemp_); // load the private store with info from db
147 #endif
148 
149 
150 // Interpolate input alpha and beta angles to produce a working template for each individual hit.
151  bool interpolate(int id, float cotalpha, float cotbeta, float locBy);
152 
153 // overload for compatibility.
154  bool interpolate(int id, float cotalpha, float cotbeta);
155 
156 // retreive interpolated templates.
157  void xtemp(int fxbin, int lxbin, float xtemplate[41][BSXSIZE]);
158 
159 // interpolate a scaled cluster shape.
160  void sxtemp(float xhit, std::vector<float>& cluster);
161 
162 //Method to estimate the central strip of the interpolated x-template
163  int cxtemp();
164 
165 // new methods to build templates from two interpolated clusters (for splitting)
166  void xtemp3d_int(int nxpix, int& nxbins);
167 
168  void xtemp3d(int j, int k, std::vector<float>& xtemplate);
169 
170 // Convert vector of projected signals into uncertainties for fitting.
171  void xsigma2(int fxstrp, int lxstrp, float sxthr, float xsum[BSXSIZE], float xsig2[BSXSIZE]);
172 
173 // Interpolate qfl correction in x.
174  float xflcorr(int binq, float qflx);
175 
176 // Interpolate input beta angle to estimate the average charge. return qbin flag for input cluster charge.
177  int qbin(int id, float cotalpha, float cotbeta, float qclus);
178 
179 //Method to interpolate Vavilov distribution parameters
180  void vavilov_pars(double& mpv, double& sigma, double& kappa);
181 
182 //Method to interpolate Vavilov distribution parameters for merged clusters
183  void vavilov2_pars(double& mpv, double& sigma, double& kappa);
184 
185 
186  float qavg() {return qavg_;}
187  float qscale() {return qscale_;}
188  float s50() {return s50_;}
189  float sxmax() {return sxmax_;}
190  float dxone() {return dxone_;}
191  float sxone() {return sxone_;}
192  float qmin() {return qmin_;}
193  float qmin(int i) {
194 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
195  if(i < 0 || i > 1) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::qmin called with illegal index = " << i << std::endl;}
196 #else
197  assert(i>=0 && i<2);
198 #endif
199  if(i==0){return qmin_;}else{return qmin2_;}}
200  float clslenx() {return clslenx_;}
201  float yratio() {return yratio_;}
202  float yxratio() {return yxratio_;}
203  float xxratio() {return xxratio_;}
204  float xavg(int i) {
205 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
206  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xavg called with illegal index = " << i << std::endl;}
207 #else
208  assert(i>=0 && i<4);
209 #endif
210  return xavg_[i];}
211  float xrms(int i) {
212 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
213  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xrms called with illegal index = " << i << std::endl;}
214 #else
215  assert(i>=0 && i<4);
216 #endif
217  return xrms_[i];}
218  float xgx0(int i) {
219 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
220  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xgx0 called with illegal index = " << i << std::endl;}
221 #else
222  assert(i>=0 && i<4);
223 #endif
224  return xgx0_[i];}
225  float xgsig(int i) {
226 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
227  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xgsig called with illegal index = " << i << std::endl;}
228 #else
229  assert(i>=0 && i<4);
230 #endif
231  return xgsig_[i];}
232  float chi2xavg(int i) {
233 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
234  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::chi2xavg called with illegal index = " << i << std::endl;}
235 #else
236  assert(i>=0 && i<4);
237 #endif
238  return chi2xavg_[i];}
239  float chi2xmin(int i) {
240 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
241  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::chi2xmin called with illegal index = " << i << std::endl;}
242 #else
243  assert(i>=0 && i<4);
244 #endif
245  return chi2xmin_[i];}
246  float xavgc2m(int i) {
247 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
248  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xavgc2m called with illegal index = " << i << std::endl;}
249 #else
250  assert(i>=0 && i<4);
251 #endif
252  return xavgc2m_[i];}
253  float xrmsc2m(int i) {
254 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
255  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xrmsc2m called with illegal index = " << i << std::endl;}
256 #else
257  assert(i>=0 && i<4);
258 #endif
259  return xrmsc2m_[i];}
260  float xgx0c2m(int i) {
261 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
262  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xgx0cm2 called with illegal index = " << i << std::endl;}
263 #else
264  assert(i>=0 && i<4);
265 #endif
266  return xgx0c2m_[i];}
267  float xgsigc2m(int i) {
268 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
269  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xgsigc2m called with illegal index = " << i << std::endl;}
270 #else
271  assert(i>=0 && i<4);
272 #endif
273  return xgsigc2m_[i];}
274  float chi2xavgc2m(int i) {
275 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
276  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiPixelTemplate::chi2xavgc2m called with illegal index = " << i << std::endl;}
277 #else
278  assert(i>=0 && i<4);
279 #endif
280  return chi2xavgc2m_[i];}
281  float chi2xminc2m(int i) {
282 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
283  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiPixelTemplate::chi2xminc2m called with illegal index = " << i << std::endl;}
284 #else
285  assert(i>=0 && i<4);
286 #endif
287  return chi2xminc2m_[i];}
288  float xavgbcn(int i) {
289 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
290  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xavgbcn called with illegal index = " << i << std::endl;}
291 #else
292  assert(i>=0 && i<4);
293 #endif
294  return xavgbcn_[i];}
295  float xrmsbcn(int i) {
296 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
297  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xrmsbcn called with illegal index = " << i << std::endl;}
298 #else
299  assert(i>=0 && i<4);
300 #endif
301  return xrmsbcn_[i];}
302  float xgx0bcn(int i) {
303 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
304  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xgx0cm2 called with illegal index = " << i << std::endl;}
305 #else
306  assert(i>=0 && i<4);
307 #endif
308  return xgx0bcn_[i];}
309  float xgsigbcn(int i) {
310 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
311  if(i < 0 || i > 3) {throw cms::Exception("DataCorrupt") << "SiStripTemplate::xgsigbcn called with illegal index = " << i << std::endl;}
312 #else
313  assert(i>=0 && i<4);
314 #endif
315  return xgsigbcn_[i];}
316  float chi2xavgone() {return chi2xavgone_;}
317  float chi2xminone() {return chi2xminone_;}
318  float lorxwidth() {return lorxwidth_;}
319  float mpvvav() {return mpvvav_;}
320  float sigmavav() {return sigmavav_;}
321  float kappavav() {return kappavav_;}
322  float xsize() {return xsize_;}
323  float ysize() {return ysize_;}
324  float zsize() {return zsize_;}
325 // float yspare(int i) {assert(i>=0 && i<5); return pyspare[i];} //!< vector of 5 spares interpolated in beta only
326 // float xspare(int i) {assert(i>=0 && i<10); return pxspare[i];} //!< vector of 10 spares interpolated in alpha and beta
327 
328 
329  private:
330 
331  // Keep current template interpolaion parameters
332 
334  int index_id_;
337  float abs_cotb_;
338  bool success_;
339 
340 
341  // Keep results of last interpolation to return through member functions
342 
343  float qavg_;
344  float pixmax_;
345  float qscale_;
346  float s50_;
347  float sxmax_;
348  float sxparmax_;
349  float syparmax_;
350  float dxone_;
351  float sxone_;
352  float dxtwo_;
353  float sxtwo_;
354  float qmin_;
355  float clslenx_;
356  float xparly0_[2][5];
357  float xparhy0_[2][5];
358  float yratio_;
359  float yxratio_;
360  float xxratio_;
361  float xpar0_[2][5];
362  float xparl_[2][5];
363  float xparh_[2][5];
364  float xtemp_[9][BSXSIZE];
365  float xavg_[4];
366  float xrms_[4];
367  float xgx0_[4];
368  float xgsig_[4];
369  float xflparll_[4][6];
370  float xflparlh_[4][6];
371  float xflparhl_[4][6];
372  float xflparhh_[4][6];
373  float xavgc2m_[4];
374  float xrmsc2m_[4];
375  float xgx0c2m_[4];
376  float xgsigc2m_[4];
377  float chi2xavg_[4];
378  float chi2xmin_[4];
379  float chi2xavgc2m_[4];
380  float chi2xminc2m_[4];
381  float xavgbcn_[4];
382  float xrmsbcn_[4];
383  float xgx0bcn_[4];
384  float xgsigbcn_[4];
385  float chi2xavgone_;
386  float chi2xminone_;
387  float qmin2_;
388  float mpvvav_;
389  float sigmavav_;
390  float kappavav_;
391  float mpvvav2_;
392  float sigmavav2_;
393  float kappavav2_;
394  float lorxwidth_;
395  float xsize_;
396  float ysize_;
397  float zsize_;
398  float qavg_avg_;
399  float nxbins_;
400  boost::multi_array<float,2> temp2dx_;
401 
402 
403  // The actual template store is a std::vector container
404 
405  const std::vector< SiStripTemplateStore > & theStripTemp_;
406 } ;
407 
408 
409 #endif
float xflparlh_[4][6]
Aqfl-parameterized x-correction in 4 charge bins for smaller cotbeta, larger cotalpha.
float clslenx
cluster x-length in strips at signal height sxmax/2
float qmin_
minimum cluster charge for valid hit (keeps 99.9% of simulated hits)
float zsize()
strip z-size or thickness (microns)
float xavgc2m[4]
1st pass chi2 min search: average x-bias of reconstruction binned in 4 charge bins ...
float xrmsbcn_[4]
barycenter: average x-rms of reconstruction binned in 4 charge bins
float xflparll_[4][6]
Aqfl-parameterized x-correction in 4 charge bins for smaller cotbeta, cotalpha.
int NTy
number of Template y entries
float xparh_[2][5]
projected x-strip uncertainty parameterization for larger cotalpha
float chi2xminone_
minimum of x chi^2 for 1 strip clusters
int i
Definition: DBlmapReader.cc:9
float xgx0_[4]
average x0 from Gaussian fit binned in 4 charge bins
float xrms_[4]
average x-rms of reconstruction binned in 4 charge bins
float xavggen[4]
generic algorithm: average x-bias of reconstruction binned in 4 charge bins
float chi2xavgone_
average x chi^2 for 1 strip clusters
float xavgc2m(int i)
1st pass chi2 min search: average x-bias of reconstruction binned in 4 charge bins ...
float yratio_
fractional distance in y between y-slices of cotbeta templates
float xrmsgen[4]
generic algorithm: average x-rms of reconstruction binned in 4 charge bins
float beta
beta track angle (defined in CMS CMS IN 2004/014)
float chi2xavgc2m(int i)
1st pass chi2 min search: average x-chisq for merged clusters
float ysize()
strip y-size (microns)
float qbfrac[3]
fraction of sample in qbin = 0-2 (&gt;=3 is the complement)
float qavg_avg
average cluster charge of clusters that are less than qavg (normalize 2-D simple templates) ...
float xavgc2m_[4]
1st pass chi2 min search: average x-bias of reconstruction binned in 4 charge bins ...
float mpvvav
most probable charge in Vavilov distribution (not actually for larger kappa)
int templ_version
Version number of the template to ensure code compatibility.
float xparl_[2][5]
projected x-strip uncertainty parameterization for smaller cotalpha
float sxone_
rms for one strip x-clusters
float qavg_spare
spare cluster charge
float xflparhl_[4][6]
Aqfl-parameterized x-correction in 4 charge bins for larger cotbeta, smaller cotalpha.
void vavilov2_pars(double &mpv, double &sigma, double &kappa)
float xflparhh_[4][6]
Aqfl-parameterized x-correction in 4 charge bins for larger cotbeta, cotalpha.
float chi2xavg(int i)
averaage x chi^2 in 4 charge bins
float costrk[3]
direction cosines of tracks used to generate this entry
float chi2xavgc2m_[4]
1st pass chi2 min search: average x-chisq for merged clusters
float clslenx_
x-cluster length of smaller interpolated template in strips
float sxmax_
average strip signal for x-projection of cluster
float temperature
detector temperature in deg K
float xgsiggen[4]
generic algorithm: average sigma_x from Gaussian fit binned in 4 charge bins
float chi2xavgc2m[4]
1st pass chi2 min search: average x chi^2 in 4 charge bins (merged clusters)
#define BSXSIZE
SiStripTemplate(const std::vector< SiStripTemplateStore > &theStripTemp)
Default constructor.
SiStripTemplateEntry enty[31]
60 Barrel y templates spanning cluster lengths from 0px to +18px [28 entries for fstrp] ...
float xsize()
strip x-size (microns)
float ysize
strip size (for future use in upgraded geometry)
float chi2xavgone
average x chi^2 for 1 strip clusters
void xtemp(int fxbin, int lxbin, float xtemplate[41][17+4])
float xgsigc2m(int i)
1st pass chi2 min search: average sigma_x from Gaussian fit binned in 4 charge bins ...
int ID
template ID number
float xparly0_[2][5]
projected x-strip uncertainty parameterization for smaller cotbeta (central alpha) ...
void xtemp3d(int j, int k, std::vector< float > &xtemplate)
float xavgbcn_[4]
barycenter: average x-bias of reconstruction binned in 4 charge bins
float xxratio()
fractional distance in x between cotalpha templates
int index_id_
current index
void vavilov_pars(double &mpv, double &sigma, double &kappa)
float chi2xminc2m_[4]
1st pass chi2 min search: minimum x-chisq for merged clusters
float dxone_
mean offset/correction for one strip x-clusters
int id_current_
current id
void xsigma2(int fxstrp, int lxstrp, float sxthr, float xsum[17+4], float xsig2[17+4])
bool success_
true if cotalpha, cotbeta are inside of the acceptance (dynamically loaded)
float xsize
strip size (for future use in upgraded geometry)
float s50
1/2 of the readout threshold in ADC units
float qavg()
average cluster charge for this set of track angles
float dxone
mean offset/correction for one strip x-clusters
float kappavav2_
kappa parameter for 2-cluster Vavilov distribution
float xtemp_[9][17+4]
templates for x-reconstruction (binned over 5 central strips)
float chi2xminone()
//!&lt; minimum of x chi^2 for 1 strip clusters
float kappavav_
kappa parameter for Vavilov distribution
float xflpar[4][6]
Aqfl-parameterized x-correction in 4 charge bins.
float sxparmax_
maximum strip signal for parameterization of x uncertainties
int qbin(int id, float cotalpha, float cotbeta, float qclus)
float sigmavav2
&quot;sigma&quot; scale fctor for Vavilov distribution for 2 merged clusters
float xavg[4]
average x-bias of reconstruction binned in 4 charge bins
int runnum
&lt; Basic template entry corresponding to a single set of track angles
float xtemp[9][17]
templates for x-reconstruction (binned over 1 central strip)
float kappavav2
kappa parameter for Vavilov distribution for 2 merged clusters
float xgsig(int i)
average sigma_x from Gaussian fit binned in 4 charge bins
float xrmsbcn(int i)
1st pass chi2 min search: average x-rms of reconstruction binned in 4 charge bins ...
float lorxwidth()
signed lorentz x-width (microns)
float xgsig_[4]
sigma from Gaussian fit binned in 4 charge bins
float xavgbcn[4]
barycenter: average x-bias of reconstruction binned in 4 charge bins
float xgx0(int i)
average x0 from Gaussian fit binned in 4 charge bins
float zsize
strip size (for future use in upgraded geometry)
float qavg_avg_
average of cluster charge less than qavg
SiStripTemplateEntry entx[5][73]
29 Barrel x templates spanning cluster lengths from -6px (-1.125Rad) to +6px (+1.125Rad) in each of 5...
float xpar0_[2][5]
projected x-strip uncertainty parameterization for central cotalpha
float xflcorr(int binq, float qflx)
float qmin()
minimum cluster charge for valid hit (keeps 99.9% of simulated hits)
float syparmax_
maximum strip signal for parameterization of y-slice x uncertainties
char title[80]
&lt; template header structure
float chi2xavg[4]
average x chi^2 in 4 charge bins
float lorxwidth_
Lorentz x-width.
float lorywidth
estimate of y-lorentz width from single strip offset
float sigmavav2_
&quot;sigma&quot; scale fctor for 2-cluster Vavilov distribution
float sigmavav_
&quot;sigma&quot; scale fctor for Vavilov distribution
float sigmavav()
&quot;sigma&quot; scale fctor for Vavilov distribution
void xtemp3d_int(int nxpix, int &nxbins)
SiStripTemplateHeader head
&lt; template storage structure
int cxtemp()
Return central pixel of x-template pixels above readout threshold.
float chi2xminc2m[4]
1st pass chi2 min search: minimum of x chi^2 in 4 charge bins (merged clusters)
float xavg(int i)
average x-bias of reconstruction binned in 4 charge bins
float qavg_
average cluster charge for this set of track angles
float dxone()
mean offset/correction for one strip x-clusters
float xgx0c2m(int i)
1st pass chi2 min search: average x0 from Gaussian fit binned in 4 charge bins
float fracxone
fraction of sample with xsize = 1
float yxratio_
fractional distance in y between x-slices of cotalpha templates
float mpvvav2
most probable charge in Vavilov distribution for 2 merged clusters (not actually for larger kappa) ...
float xrmsbcn[4]
barycenter: average x-rms of reconstruction binned in 4 charge bins
float mpvvav2_
most probable charge in 2-cluster Vavilov distribution (not actually for larger kappa) ...
float xgx0c2m_[4]
1st pass chi2 min search: average x-bias of reconstruction binned in 4 charge bins ...
int j
Definition: DBlmapReader.cc:9
float sxone
rms for one strip x-clusters
float clslenx()
x-size of smaller interpolated template in strips
float xavg_[4]
average x-bias of reconstruction binned in 4 charge bins
float qscale()
charge scaling factor
float lorxwidth
estimate of x-lorentz width from single strip offset
float sxtwo_
rms for one double-strip x-clusters
float abs_cotb_
absolute value of cot beta
float dxtwo_
mean offset/correction for one double-strip x-clusters
float yratio()
fractional distance in y between cotbeta templates
const std::vector< SiStripTemplateStore > & theStripTemp_
float cotb_current_
current cot beta
float chi2xavg_[4]
average x chi^2 in 4 charge bins
float xavgbcn(int i)
1st pass chi2 min search: average x-bias of reconstruction binned in 4 charge bins ...
int k[5][pyjets_maxn]
float nxbins_
number of bins in each dimension of the x-splitting template
float chi2xavgone()
//!&lt; average x chi^2 for 1 strip clusters
float qscale
Charge scaling to match cmssw and stripav.
float xparhy0_[2][5]
projected x-strip uncertainty parameterization for larger cotbeta (central alpha) ...
float chi2xmin(int i)
minimum y chi^2 in 4 charge bins
float xgx0c2m[4]
1st pass chi2 min search: average x0 from Gaussian fit binned in 4 charge bins
float xrms(int i)
average x-rms of reconstruction binned in 4 charge bins
float kappavav
kappa parameter for Vavilov distribution
float xgx0bcn(int i)
1st pass chi2 min search: average x0 from Gaussian fit binned in 4 charge bins
float s50()
1/2 of the strip threshold signal in electrons
int NTxx
number of Template x-entries in each slice
float chi2xminone
minimum of x chi^2 for 1 strip clusters
float qavg
average cluster charge for this set of track angles (now includes threshold effects) ...
float xrmsc2m(int i)
1st pass chi2 min search: average x-rms of reconstruction binned in 4 charge bins ...
float pixmax_
maximum strip charge
void sxtemp(float xhit, std::vector< float > &cluster)
float alpha
alpha track angle (defined in CMS CMS IN 2004/014)
boost::multi_array< float, 2 > temp2dx_
2d-primitive for spltting 3-d template
float qscale_
charge scaling factor
float sxone()
rms for one strip x-clusters
float xgx0bcn[4]
barycenter: average x0 from Gaussian fit binned in 4 charge bins
float xgx0gen[4]
generic algorithm: average x0 from Gaussian fit binned in 4 charge bins
float xgsigbcn[4]
barycenter: average sigma_x from Gaussian fit binned in 4 charge bins
float chi2xminc2m(int i)
1st pass chi2 min search: minimum x-chisq for merged clusters
float xxratio_
fractional distance in x between cotalpha templates
float cotalpha
cot(alpha) is proportional to cluster length in x and is basis of interpolation
float kappavav()
kappa parameter for Vavilov distribution
float ysize_
Pixel y-size.
float sxmax()
average strip signal for x-projection of cluster
int NTyx
number of Template y-slices of x entries
float mpvvav()
most probable charge in Vavilov distribution (not actually for larger kappa)
float chi2xmin[4]
minimum of x chi^2 in 4 charge bins
float sigmavav
&quot;sigma&quot; scale fctor for Vavilov distribution
float s50_
1/2 of the strip threshold signal in adc units
float yxratio()
fractional distance in y between cotalpha templates slices
float xgx0[4]
average x0 from Gaussian fit binned in 4 charge bins
float Vbias
detector bias potential in Volts
float xrms[4]
average x-rms of reconstruction binned in 4 charge bins
static const G4double kappa
float mpvvav_
most probable charge in Vavilov distribution (not actually for larger kappa)
float xpar[2][5]
projected x-strip uncertainty parameterization
int Dtype
detector type (0=BPix, 1=FPix)
float zsize_
Pixel z-size (thickness)
float xgsigbcn_[4]
barycenter: average x-rms of reconstruction binned in 4 charge bins
float qmin2_
tighter minimum cluster charge for valid hit (keeps 99.8% of simulated hits)
float xgsigc2m_[4]
1st pass chi2 min search: average x-rms of reconstruction binned in 4 charge bins ...
bool interpolate(int id, float cotalpha, float cotbeta, float locBy)
float qmin2
tighter minimum cluster charge for valid hit (keeps 99.8% of simulated hits)
float sxmax
average strip signal for x-projection of cluster
float qmin(int i)
minimum cluster charge for valid hit (keeps 99.9% or 99.8% of simulated hits)
float xrmsc2m_[4]
1st pass chi2 min search: average x-rms of reconstruction binned in 4 charge bins ...
float xrmsc2m[4]
1st pass chi2 min search: average x-rms of reconstruction binned in 4 charge bins ...
#define TSXSIZE
float xsize_
Pixel x-size.
float chi2xmin_[4]
minimum of x chi^2 in 4 charge bins
static bool pushfile(int filenum, std::vector< SiStripTemplateStore > &theStripTemp_)
float xgsigbcn(int i)
1st pass chi2 min search: average sigma_x from Gaussian fit binned in 4 charge bins ...
float xgx0bcn_[4]
barycenter: average x-bias of reconstruction binned in 4 charge bins
float xgsigc2m[4]
1st pass chi2 min search: average sigma_x from Gaussian fit binned in 4 charge bins ...
float xgsig[4]
average sigma_x from Gaussian fit binned in 4 charge bins
float cotbeta
cot(beta) is proportional to cluster length in y and is basis of interpolation
float fluence
radiation fluence in n_eq/cm^2
float qmin
minimum cluster charge for valid hit (keeps 99.9% of simulated hits)
float cota_current_
current cot alpha
float Bfield
Bfield in Tesla.