65 #ifndef SiPixelTemplate_h
66 #define SiPixelTemplate_h 1
72 #include "boost/multi_array.hpp"
74 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
213 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
219 bool interpolate(
int id,
float cotalpha,
float cotbeta,
float locBz);
222 bool interpolate(
int id,
float cotalpha,
float cotbeta);
225 void ytemp(
int fybin,
int lybin,
float ytemplate[41][
BYSIZE]);
227 void xtemp(
int fxbin,
int lxbin,
float xtemplate[41][
BXSIZE]);
235 void ysigma2(
int fypix,
int lypix,
float sythr,
float ysum[
BYSIZE],
float ysig2[BYSIZE]);
239 void xsigma2(
int fxpix,
int lxpix,
float sxthr,
float xsum[
BXSIZE],
float xsig2[BXSIZE]);
242 float yflcorr(
int binq,
float qfly);
245 float xflcorr(
int binq,
float qflx);
248 int qbin(
int id,
float cotalpha,
float cotbeta,
float locBz,
float qclus,
float& pixmx,
float& sigmay,
float& deltay,
float& sigmax,
float& deltax,
249 float& sy1,
float& dy1,
float& sy2,
float& dy2,
float& sx1,
float& dx1,
float& sx2,
float& dx2,
float&
lorywidth,
float&
lorxwidth);
252 int qbin(
int id,
float cotalpha,
float cotbeta,
float locBz,
float qclus,
float& pixmx,
float& sigmay,
float& deltay,
float& sigmax,
float& deltax,
253 float& sy1,
float& dy1,
float& sy2,
float& dy2,
float& sx1,
float& dx1,
float& sx2,
float& dx2);
256 int qbin(
int id,
float cotbeta,
float qclus);
259 void temperrors(
int id,
float cotalpha,
float cotbeta,
int qBin,
float& sigmay,
float& sigmax,
float& sy1,
float& sy2,
float& sx1,
float& sx2);
262 void qbin_dist(
int id,
float cotalpha,
float cotbeta,
float qbin_frac[4],
float& ny1_frac,
float& ny2_frac,
float& nx1_frac,
float& nx2_frac);
265 bool simpletemplate2D(
float xhitp,
float yhitp, std::vector<bool>& ydouble, std::vector<bool>& xdouble,
float template2d[
BXM2][
BYM2]);
268 void vavilov_pars(
double& mpv,
double& sigma,
double& kappa);
287 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
288 if(i < 0 || i > 1) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::qmin called with illegal index = " << i << std::endl;}
299 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
300 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::yavg called with illegal index = " << i << std::endl;}
306 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
307 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::yrms called with illegal index = " << i << std::endl;}
313 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
314 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::ygx0 called with illegal index = " << i << std::endl;}
320 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
321 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::ygsig called with illegal index = " << i << std::endl;}
327 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
328 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::xavg called with illegal index = " << i << std::endl;}
334 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
335 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::xrms called with illegal index = " << i << std::endl;}
341 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
342 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::xgx0 called with illegal index = " << i << std::endl;}
348 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
349 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::xgsig called with illegal index = " << i << std::endl;}
355 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
356 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::chi2yavg called with illegal index = " << i << std::endl;}
362 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
363 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::chi2ymin called with illegal index = " << i << std::endl;}
369 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
370 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::chi2xavg called with illegal index = " << i << std::endl;}
376 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
377 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::chi2xmin called with illegal index = " << i << std::endl;}
383 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
384 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::yavgc2m called with illegal index = " << i << std::endl;}
390 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
391 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::yrmsc2m called with illegal index = " << i << std::endl;}
397 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
398 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::ygx0c2m called with illegal index = " << i << std::endl;}
404 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
405 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::ygsigc2m called with illegal index = " << i << std::endl;}
411 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
412 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::xavgc2m called with illegal index = " << i << std::endl;}
418 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
419 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::xrmsc2m called with illegal index = " << i << std::endl;}
425 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
426 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::xgx0cm2 called with illegal index = " << i << std::endl;}
432 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
433 if(i < 0 || i > 3) {
throw cms::Exception(
"DataCorrupt") <<
"SiPixelTemplate::xgsigc2m called with illegal index = " << i << std::endl;}
float yrmsc2m(int i)
1st pass chi2 min search: average y-rms of reconstruction binned in 4 charge bins ...
float pchi2yavgone
average y chi^2 for 1 pixel clusters
float qavg_avg
average cluster charge of clusters that are less than qavg (normalize 2-D simple templates) ...
int runnum
< Basic template entry corresponding to a single set of track angles
float pyflparh[4][6]
Aqfl-parameterized y-correction in 4 charge bins for larger cotbeta.
float xflpar[4][6]
Aqfl-parameterized x-correction in 4 charge bins.
float pxgx0[4]
average x0 from Gaussian fit binned in 4 charge bins
float xrms[4]
average x-rms of reconstruction binned in 4 charge bins
bool success
true if cotalpha, cotbeta are inside of the acceptance (dynamically loaded)
float clslenx
cluster x-length in pixels at signal height sxmax/2
float chi2xminone()
//!< minimum of x chi^2 for 1 pixel clusters
float pdxtwo
mean offset/correction for one double-pixel x-clusters
int qbin(int id, float cotalpha, float cotbeta, float locBz, float qclus, float &pixmx, float &sigmay, float &deltay, float &sigmax, float &deltax, float &sy1, float &dy1, float &sy2, float &dy2, float &sx1, float &dx1, float &sx2, float &dx2, float &lorywidth, float &lorxwidth)
float xtemp[9][TXSIZE]
templates for x-reconstruction (binned over 1 central pixel)
float pygsigc2m[4]
1st pass chi2 min search: average sigma_y from Gaussian fit binned in 4 charge bins ...
float qavg
average cluster charge for this set of track angles (now includes threshold effects) ...
std::vector< SiPixelTemplateStore > thePixelTemp
void ytemp3d(int nypix, array_3d &ytemplate)
float xgx0c2m(int i)
1st pass chi2 min search: average x0 from Gaussian fit binned in 4 charge bins
float syone
rms for one pixel y-clusters
float chi2yavgone
average y chi^2 for 1 pixel clusters
float pxparhy0[2][5]
projected x-pixel uncertainty parameterization for larger cotbeta (central alpha) ...
float symax()
average pixel signal for y-projection of cluster
float psigmavav
"sigma" scale fctor for Vavilov distribution
float yavg(int i)
average y-bias of reconstruction binned in 4 charge bins
float dyone
mean offset/correction for one pixel y-clusters
float psxmax
average pixel signal for x-projection of cluster
float sigmavav
"sigma" scale fctor for Vavilov distribution
float fracxtwo
fraction of double pixel sample with xsize = 1
float yavggen[4]
generic algorithm: average y-bias of reconstruction binned in 4 charge bins
float sxmax
average pixel signal for x-projection of cluster
float pxrmsc2m[4]
1st pass chi2 min search: average x-rms of reconstruction binned in 4 charge bins ...
float xavgc2m[4]
1st pass chi2 min search: average x-bias of reconstruction binned in 4 charge bins ...
float pqscale
charge scaling factor
float pxparl[2][5]
projected x-pixel uncertainty parameterization for smaller cotalpha
float chi2xavgone
average x chi^2 for 1 pixel clusters
float fracytwo
fraction of double pixel sample with ysize = 1
float yrms[4]
average y-rms of reconstruction binned in 4 charge bins
float chi2xmin(int i)
minimum y chi^2 in 4 charge bins
float ytemp[9][TYSIZE]
templates for y-reconstruction (binned over 1 central pixel)
float ygx0c2m[4]
1st pass chi2 min search: average y0 from Gaussian fit binned in 4 charge bins
float mpvvav()
most probable charge in Vavilov distribution (not actually for larger kappa)
float clslenx()
x-size of smaller interpolated template in pixels
float psyparmax
maximum pixel signal for parameterization of y uncertainties
float ygx0gen[4]
generic algorithm: average y0 from Gaussian fit binned in 4 charge bins
float xavg[4]
average x-bias of reconstruction binned in 4 charge bins
float pxparly0[2][5]
projected x-pixel uncertainty parameterization for smaller cotbeta (central alpha) ...
float pzsize
Pixel z-size (thickness)
float chi2ymin(int i)
minimum y chi^2 in 4 charge bins
float yratio()
fractional distance in y between cotbeta templates
float dytwo
mean offset/correction for one double-pixel y-clusters
float xrms(int i)
average x-rms of reconstruction binned in 4 charge bins
float dxone
mean offset/correction for one pixel x-clusters
float pclslenx
x-cluster length of smaller interpolated template in pixels
float qmin()
minimum cluster charge for valid hit (keeps 99.9% of simulated hits)
float pygx0[4]
average y0 from Gaussian fit binned in 4 charge bins
float pixmax
maximum charge for individual pixels in cluster
float pmpvvav
most probable charge in Vavilov distribution (not actually for larger kappa)
float zsize()
pixel z-size or thickness (microns)
float xavgc2m(int i)
1st pass chi2 min search: average x-bias of reconstruction binned in 4 charge bins ...
float pchi2yminone
minimum of y chi^2 for 1 pixel clusters
float qmin
minimum cluster charge for valid hit (keeps 99.9% of simulated hits)
float psxparmax
maximum pixel signal for parameterization of x uncertainties
float xflcorr(int binq, float qflx)
float sytwo()
rms for one double-pixel y-clusters
float xgsiggen[4]
generic algorithm: average sigma_x from Gaussian fit binned in 4 charge bins
float pdytwo
mean offset/correction for one double-pixel y-clusters
float cotalpha
cot(alpha) is proportional to cluster length in x and is basis of interpolation
float abs_cotb
absolute value of cot beta
float chi2yminone()
//!< minimum of y chi^2 for 1 pixel clusters
float pyparl[2][5]
projected y-pixel uncertainty parameterization for smaller cotbeta
bool interpolate(int id, float cotalpha, float cotbeta, float locBz)
float sxone()
rms for one pixel x-clusters
float plorywidth
Lorentz y-width (sign corrected for fpix frame)
float yrmsc2m[4]
1st pass chi2 min search: average y-rms of reconstruction binned in 4 charge bins ...
float pyavgc2m[4]
1st pass chi2 min search: average y-bias of reconstruction binned in 4 charge bins ...
float pxxratio
fractional distance in x between cotalpha templates
float pxsize
Pixel x-size.
float pyratio
fractional distance in y between cotbeta templates
float qscale()
charge scaling factor
float xpar[2][5]
projected x-pixel uncertainty parameterization
float ygx0[4]
average y0 from Gaussian fit binned in 4 charge bins
bool simpletemplate2D(float xhitp, float yhitp, std::vector< bool > &ydouble, std::vector< bool > &xdouble, float template2d[BXM2][BYM2])
Make simple 2-D templates from track angles set in interpolate and hit position.
float pxgsig[4]
sigma from Gaussian fit binned in 4 charge bins
float pxpar0[2][5]
projected x-pixel uncertainty parameterization for central cotalpha
float xgx0gen[4]
generic algorithm: average x0 from Gaussian fit binned in 4 charge bins
float dxone()
mean offset/correction for one pixel x-clusters
void xtemp3d(int nxpix, array_3d &xtemplate)
float symax
average pixel signal for y-projection of cluster
float ygx0c2m(int i)
1st pass chi2 min search: average y0 from Gaussian fit binned in 4 charge bins
float pyparh[2][5]
projected y-pixel uncertainty parameterization for larger cotbeta
float xgsig[4]
average sigma_x from Gaussian fit binned in 4 charge bins
float kappavav()
kappa parameter for Vavilov distribution
float cotbeta
cot(beta) is proportional to cluster length in y and is basis of interpolation
float chi2yavg(int i)
average y chi^2 in 4 charge bins
float beta
beta track angle (defined in CMS CMS IN 2004/014)
void vavilov_pars(double &mpv, double &sigma, double &kappa)
float lorxwidth()
signed lorentz x-width (microns)
float lorywidth()
signed lorentz y-width (microns)
float pxflparlh[4][6]
Aqfl-parameterized x-correction in 4 charge bins for smaller cotbeta, larger cotalpha.
float ygsig(int i)
average sigma_y from Gaussian fit binned in 4 charge bins
void xtemp(int fxbin, int lxbin, float xtemplate[41][BXSIZE])
float yrms(int i)
average y-rms of reconstruction binned in 4 charge bins
float pdyone
mean offset/correction for one pixel y-clusters
float clsleny()
y-size of smaller interpolated template in pixels
float pxgsigc2m[4]
1st pass chi2 min search: sigma from Gaussian fit binned in 4 charge bins
float pytemp[9][BYSIZE]
templates for y-reconstruction (binned over 5 central pixels)
float yflcorr(int binq, float qfly)
float xrmsc2m[4]
1st pass chi2 min search: average x-rms of reconstruction binned in 4 charge bins ...
float ppixmax
maximum pixel charge
void temperrors(int id, float cotalpha, float cotbeta, int qBin, float &sigmay, float &sigmax, float &sy1, float &sy2, float &sx1, float &sx2)
float plorxwidth
Lorentz x-width.
float xgx0[4]
average x0 from Gaussian fit binned in 4 charge bins
float xsize()
pixel x-size (microns)
float ygsigc2m[4]
1st pass chi2 min search: average sigma_y from Gaussian fit binned in 4 charge bins ...
void ytemp(int fybin, int lybin, float ytemplate[41][BYSIZE])
float pchi2xavg[4]
average x chi^2 in 4 charge bins
float ygsiggen[4]
generic algorithm: average sigma_y from Gaussian fit 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 pchi2xmin[4]
minimum of x chi^2 in 4 charge bins
float fracxone
fraction of sample with xsize = 1
float sxtwo()
rms for one double-pixel x-clusters
float mpvvav
most probable charge in Vavilov distribution (not actually for larger kappa)
float pxflparhl[4][6]
Aqfl-parameterized x-correction in 4 charge bins for larger cotbeta, smaller cotalpha.
float dytwo()
mean offset/correction for one double-pixel y-clusters
float cotb_current
current cot beta
float pxrms[4]
average x-rms of reconstruction binned in 4 charge bins
float pyavg[4]
average y-bias of reconstruction binned in 4 charge bins
float sxtwo
rms for one double-pixel x-clusters
float pdxone
mean offset/correction for one pixel x-clusters
float pchi2ymin[4]
minimum of y chi^2 in 4 charge bins
float chi2yavg[4]
average y chi^2 in 4 charge bins
float alpha
alpha track angle (defined in CMS CMS IN 2004/014)
float pchi2yavg[4]
average y chi^2 in 4 charge bins
SiPixelTemplateHeader head
< template storage structure
float s50()
1/2 of the pixel threshold signal in electrons
float chi2xminone
minimum of x chi^2 for 1 pixel clusters
float ypar[2][5]
projected y-pixel uncertainty parameterization
float xgsigc2m(int i)
1st pass chi2 min search: average sigma_x from Gaussian fit binned in 4 charge bins ...
float qavg_spare
spare cluster charge
float pyrmsc2m[4]
1st pass chi2 min search: average y-rms of reconstruction binned in 4 charge bins ...
float ps50
1/2 of the pixel threshold signal in adc units
float yavgc2m(int i)
1st pass chi2 min search: average y-bias of reconstruction binned in 4 charge bins ...
bool pushfile(int filenum)
float ygx0(int i)
average y0 from Gaussian fit binned in 4 charge bins
float pygx0c2m[4]
1st pass chi2 min search: average y0 from Gaussian fit binned in 4 charge bins
float pyxratio
fractional distance in y between x-slices of cotalpha templates
float qmin(int i)
minimum cluster charge for valid hit (keeps 99.9% or 99.8% of simulated hits)
float pxflparll[4][6]
Aqfl-parameterized x-correction in 4 charge bins for smaller cotbeta, cotalpha.
void qbin_dist(int id, float cotalpha, float cotbeta, float qbin_frac[4], float &ny1_frac, float &ny2_frac, float &nx1_frac, float &nx2_frac)
float pyflparl[4][6]
Aqfl-parameterized y-correction in 4 charge bins for smaller cotbeta.
float qbfrac[3]
fraction of sample in qbin = 0-2 (>=3 is the complement)
float syone()
rms for one pixel y-clusters
float fracyone
fraction of sample with ysize = 1
float chi2yavgone()
//!< average y chi^2 for 1 pixel clusters
int index_id
current index
float pxavgc2m[4]
1st pass chi2 min search: average x-bias of reconstruction binned in 4 charge bins ...
float qmin2
tighter minimum cluster charge for valid hit (keeps 99.8% of simulated hits)
float yxratio()
fractional distance in y between cotalpha templates slices
float xgx0c2m[4]
1st pass chi2 min search: average x0 from Gaussian fit binned in 4 charge bins
float yavg[4]
average y-bias of reconstruction binned in 4 charge bins
float qavg()
average cluster charge for this set of track angles
float ygsigc2m(int i)
1st pass chi2 min search: average sigma_y from Gaussian fit binned in 4 charge bins ...
float sxmax()
average pixel signal for x-projection of cluster
float pqavg_avg
average of cluster charge less than qavg
float pqmin
minimum cluster charge for valid hit (keeps 99.9% of simulated hits)
float chi2ymin[4]
minimum of y chi^2 in 4 charge bins
float yavgc2m[4]
1st pass chi2 min search: average y-bias of reconstruction binned in 4 charge bins ...
float psxone
rms for one pixel x-clusters
void xsigma2(int fxpix, int lxpix, float sxthr, float xsum[BXSIZE], float xsig2[BXSIZE])
float dxtwo
mean offset/correction for one double-pixel x-clusters
float pxgx0c2m[4]
1st pass chi2 min search: average x0 from Gaussian fit binned in 4 charge bins
float chi2xavgone()
//!< average x chi^2 for 1 pixel clusters
float pxavg[4]
average x-bias of reconstruction binned in 4 charge bins
float pixmax()
maximum pixel charge
float psytwo
rms for one double-pixel y-clusters
float sigmavav()
"sigma" scale fctor for Vavilov distribution
void ysigma2(int fypix, int lypix, float sythr, float ysum[BYSIZE], float ysig2[BYSIZE])
float psxtwo
rms for one double-pixel x-clusters
float yflpar[4][6]
Aqfl-parameterized y-correction in 4 charge bins.
float sxone
rms for one pixel x-clusters
float xgx0(int i)
average x0 from Gaussian fit binned in 4 charge bins
float pyrms[4]
average y-rms of reconstruction binned in 4 charge bins
float chi2xmin[4]
minimum of x chi^2 in 4 charge bins
float cota_current
current cot alpha
float chi2xavg(int i)
averaage x chi^2 in 4 charge bins
float chi2yminone
minimum of y chi^2 for 1 pixel clusters
float xgsig(int i)
average sigma_x from Gaussian fit binned in 4 charge bins
float pclsleny
y-cluster length of smaller interpolated template in pixels
float pysize
Pixel y-size.
float costrk[3]
direction cosines of tracks used to generate this entry
float pchi2xminone
minimum of x chi^2 for 1 pixel clusters
SiPixelTemplateEntry entx[5][29]
29 Barrel x templates spanning cluster lengths from -6px (-1.125Rad) to +6px (+1.125Rad) in each of 5...
float ygsig[4]
average sigma_y from Gaussian fit binned in 4 charge bins
float pqavg
average cluster charge for this set of track angles
SiPixelTemplateEntry enty[60]
60 Barrel y templates spanning cluster lengths from 0px to +18px [28 entries for fpix] ...
float sytwo
rms for one double-pixel y-clusters
float pxparh[2][5]
projected x-pixel uncertainty parameterization for larger cotalpha
float pchi2xavgone
average x chi^2 for 1 pixel clusters
float psymax
average pixel signal for y-projection of cluster
float dyone()
mean offset/correction for one pixel y-clusters
float xavg(int i)
average x-bias of reconstruction binned in 4 charge bins
float xrmsgen[4]
generic algorithm: average x-rms of reconstruction binned in 4 charge bins
float dxtwo()
mean offset/correction for one double-pixel x-clusters
float ysize()
pixel y-size (microns)
float pkappavav
kappa parameter for Vavilov distribution
float pygsig[4]
average sigma_y from Gaussian fit binned in 4 charge bins
float pxtemp[9][BXSIZE]
templates for x-reconstruction (binned over 5 central pixels)
float chi2xavg[4]
average x chi^2 in 4 charge bins
boost::multi_array< float, 3 > array_3d
float xrmsc2m(int i)
1st pass chi2 min search: average x-rms of reconstruction binned in 4 charge bins ...
float pxflparhh[4][6]
Aqfl-parameterized x-correction in 4 charge bins for larger cotbeta, cotalpha.
float psyone
rms for one pixel y-clusters
float xxratio()
fractional distance in x between cotalpha templates
float pqmin2
tighter minimum cluster charge for valid hit (keeps 99.8% of simulated hits)
float kappavav
kappa parameter for Vavilov distribution
float xavggen[4]
generic algorithm: average x-bias of reconstruction binned in 4 charge bins
float yrmsgen[4]
generic algorithm: average y-rms of reconstruction binned in 4 charge bins
float clsleny
cluster y-length in pixels at signal height symax/2
SiPixelTemplate()
Default constructor.