StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StSvtProbValues.cc
1 /***************************************************************************
2  *
3  * $Id: StSvtProbValues.cc,v 1.6 2003/09/02 17:59:08 perev Exp $
4  *
5  * Author: Selemon Bekele
6  ***************************************************************************
7  *
8  * Description:
9  *
10  ***************************************************************************
11  *
12  * $Log: StSvtProbValues.cc,v $
13  * Revision 1.6 2003/09/02 17:59:08 perev
14  * gcc 3.2 updates + WarnOff
15  *
16  * Revision 1.5 2001/04/30 22:25:43 caines
17  * Add Warning message
18  *
19  * Revision 1.4 2001/04/25 18:59:45 perev
20  * HPcorrs
21  *
22  * Revision 1.3 2000/11/30 20:45:56 caines
23  * Dynamically calc prob values, use database
24  *
25  * Revision 1.1 2000/06/15 20:04:54 caines
26  * Initial versions of sequence adjusting codes
27  *
28  **************************************************************************/
29 
30 
31 #include <Stiostream.h>
32 #include "Stiostream.h"
33 #include <math.h>
34 #include <stdlib.h>
35 #include "StSvtProbValues.hh"
36 #include "StMessMgr.h"
37 
38 
39 StSvtProbValues::StSvtProbValues()
40 {
41 
42  //Initialize the various variables
43  mSigma = 2.1; //the standared deviation
44 
45  for(int i = 0; i < MAX_ADC_COUNTS; i++)
46  mProb[i] = 0;
47 }
48 
49 StSvtProbValues::~StSvtProbValues()
50 {}
51 
52 void StSvtProbValues::SetProbValue(float sigma)
53 {
54  double num = 0;
55 
56  if (!sigma){
57 
58  sigma = mSigma;
59  }
60  for(int i = 0; i < MAX_ADC_COUNTS; i++)
61  {
62  num = double(i)/(M_SQRT2*sigma);
63  mProb[i] = 0.5*(1 - erf(num));
64  if (mProb[i] < 1e-20)
65  mProb[i] = 1e-20;
66  mProb[i]= 1/mProb[i];
67  }
68 }