FEDRA emulsion software from the OPERA Collaboration
EdbScanCond.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbScanCond
2 #define ROOT_EdbScanCond
3 
4 #include "TNamed.h"
5 #include "TMatrixD.h"
6 #include "TF1.h"
7 #include "TMath.h"
8 
9 //______________________________________________________________________________
10 class EdbScanCond : public TNamed {
11  //
12  // Keep the accuracy parameters for 1 pattern/layer
13  //
14  private:
15 
16  // grain:
17  Float_t eSigmaXgr;
18  Float_t eSigmaYgr;
19  Float_t eSigmaZgr;
20 
21  // segment:
22  Float_t eDegrad; // angular degradation of parameters: S = S0*(1 + eDegrad*Ang)
23 
24  Float_t eSigmaX0; // [microns] Parameters at 0 angle
25  Float_t eSigmaY0; // [microns] SigmaX = S0*(1+eDegrad*Ax)
26  Float_t eSigmaZ0; // z - uncertancy
27  Float_t eSigmaTX0; // ["rad"]
28  Float_t eSigmaTY0; // ["rad"]
29 
30  // puls height parametrizations:
31 
32  Float_t ePuls0[2]; // signal/all is parametrised as linear in range Pmin,Pmax
33  Float_t ePuls04[2]; // - at angle .4 rad
34 
35  Float_t eBinX,eBinY; // bins [normalized to Sigma()]
36  Float_t eBinTX,eBinTY; //
37 
38  Float_t eChi2Max; //
39  Float_t eChi2PMax; //
40  Int_t eChi2Mode; // mode of coupling chi2 calculation (default is 0)
41 
42  Float_t eOffX, eOffY; // maximal offsets in x and y - the accuracy of pattern
43  // itself in respect to the upper level RS
44 
45  Float_t eRadX0; // radiation length for ECC media [microns]
46 
47  public:
48 
49  TF1 *eLikelihoodMT; // the likelihood function used for microtrack probablility estimation
50 
51  public:
52  EdbScanCond();
53  virtual ~EdbScanCond(){}
54 
55  void SetDefault();
56 
57  void SetRadX0( float x0 ) {eRadX0=x0;}
58  float RadX0() const {return eRadX0;}
59 
60  void SetSigmaGR( float sx, float sy, float sz )
61  { eSigmaXgr=sx; eSigmaYgr=sy; eSigmaZgr=sz; }
62  void SetSigma0( float x, float y, float tx, float ty )
63  { eSigmaX0=x; eSigmaY0=y; eSigmaTX0=tx; eSigmaTY0=ty; }
64  void SetSigma0( const char *str ) ;
65  void SetBins(float bx, float by, float btx, float bty)
66  { eBinX=bx; eBinY=by; eBinTX=btx; eBinTY=bty; }
67 
68  void SetOffset( float x, float y ) {eOffX=x; eOffY=y;}
69  float OffX() const {return eOffX;}
70  float OffY() const {return eOffY;}
71  void SetDegrad( float d ) {eDegrad=d;}
72  void SetSigmaZ0( float z ) {eSigmaZ0=z;}
73 
74  void SetPulsRamp0( float p1, float p2 ) {ePuls0[0]=p1; ePuls0[1]=p2;}
75  void SetPulsRamp04( float p1, float p2 ) {ePuls04[0]=p1; ePuls04[1]=p2;}
76  void SetPulsRamp0( const char *str );
77  void SetPulsRamp04( const char *str );
78  float BinX() const {return eBinX;}
79  float BinY() const {return eBinY;}
80  float BinTX() const {return eBinTX;}
81  float BinTY() const {return eBinTY;}
82 
83  void SetChi2Max(float chi2) {eChi2Max=chi2;}
84  void SetChi2PMax(float chi2) {eChi2PMax=chi2;}
85  float Chi2Max() const {return eChi2Max;}
86  float Chi2PMax() const {return eChi2PMax;}
87 
88  void SetChi2Mode(int mode) {eChi2Mode=mode;}
89  int Chi2Mode() const {return eChi2Mode;}
90 
91  float StepX(float dz) const;
92  float StepY(float dz) const;
93  float StepTX(float tx) const { return BinTX()*SigmaTX(tx); }
94  float StepTY(float ty) const { return BinTY()*SigmaTY(ty); }
95 
96  float SigmaXgr() const { return eSigmaXgr; }
97  float SigmaYgr() const { return eSigmaYgr; }
98  float SigmaZgr() const { return eSigmaZgr; }
99 
100  float Degrad() const { return eDegrad; }
101 
102  float SigmaX(float ax) const { return eSigmaX0*(1. + TMath::Abs(ax)*eDegrad); }
103  float SigmaY(float ay) const { return eSigmaY0*(1. + TMath::Abs(ay)*eDegrad); }
104  float SigmaZ(float ax, float ay) const
105  { return eSigmaZ0; } // TODO
106  float SigmaTX(float ax) const { return eSigmaTX0*(1. + TMath::Abs(ax)*eDegrad); }
107  float SigmaTY(float ay) const { return eSigmaTY0*(1. + TMath::Abs(ay)*eDegrad); }
109  float SigmaTXf(float ax) const { return eSigmaTX0*TMath::Sqrt(1. + ax*ax*eDegrad*eDegrad); }
110  float SigmaTYf(float ay) const { return eSigmaTY0*TMath::Sqrt(1. + ay*ay*eDegrad*eDegrad); }
111 
112  float Ramp(float x, float x1, float x2) const;
113 
114  float ProbSeg( float tx, float ty, float puls) const;
115  float ProbSeg( float t, float puls) const;
116 
117  void DefineLLFunction( const char *str );
118  float ProbLL( float tx, float ty, float puls) const;
119  float ProbLL( float t, float puls) const;
120 
121  void FillErrorsCov( float tx,float ty, TMatrixD &cov );
122 
123  void Print() const;
124 
125  ClassDef(EdbScanCond,1) // Scanning Conditions Parameters
126 };
127 
128 #endif /* ROOT_EdbScanCond */
void d()
Definition: RecDispEX.C:381
brick dz
Definition: RecDispMC.C:107
TTree * t
Definition: check_shower.C:4
Definition: EdbScanCond.h:10
float BinTX() const
Definition: EdbScanCond.h:80
float SigmaTX(float ax) const
Definition: EdbScanCond.h:106
Float_t eSigmaZgr
Definition: EdbScanCond.h:19
Float_t eChi2Max
Definition: EdbScanCond.h:38
Int_t eChi2Mode
Definition: EdbScanCond.h:40
float OffY() const
Definition: EdbScanCond.h:70
Float_t ePuls0[2]
Definition: EdbScanCond.h:32
Float_t eSigmaX0
Definition: EdbScanCond.h:24
Float_t eChi2PMax
Definition: EdbScanCond.h:39
float Chi2PMax() const
Definition: EdbScanCond.h:86
Float_t eSigmaXgr
Definition: EdbScanCond.h:17
float StepTX(float tx) const
Definition: EdbScanCond.h:93
float ProbLL(float tx, float ty, float puls) const
Definition: EdbScanCond.cxx:145
Float_t eDegrad
Definition: EdbScanCond.h:22
float SigmaZ(float ax, float ay) const
Definition: EdbScanCond.h:104
float Degrad() const
Definition: EdbScanCond.h:100
Float_t eSigmaTY0
Definition: EdbScanCond.h:28
void SetOffset(float x, float y)
Definition: EdbScanCond.h:68
float SigmaTXf(float ax) const
full functions for sigmaTX(TX) - use them for simulation
Definition: EdbScanCond.h:109
float SigmaTY(float ay) const
Definition: EdbScanCond.h:107
void SetDefault()
Definition: EdbScanCond.cxx:16
float Chi2Max() const
Definition: EdbScanCond.h:85
float OffX() const
Definition: EdbScanCond.h:69
void SetPulsRamp0(float p1, float p2)
Definition: EdbScanCond.h:74
Float_t eBinTY
Definition: EdbScanCond.h:36
float Ramp(float x, float x1, float x2) const
Definition: EdbScanCond.cxx:104
Float_t eSigmaYgr
Definition: EdbScanCond.h:18
void SetChi2Max(float chi2)
Definition: EdbScanCond.h:83
virtual ~EdbScanCond()
Definition: EdbScanCond.h:53
void SetDegrad(float d)
Definition: EdbScanCond.h:71
float SigmaX(float ax) const
Definition: EdbScanCond.h:102
Float_t ePuls04[2]
Definition: EdbScanCond.h:33
void Print() const
Definition: EdbScanCond.cxx:50
float BinTY() const
Definition: EdbScanCond.h:81
float StepY(float dz) const
Definition: EdbScanCond.cxx:97
float SigmaXgr() const
Definition: EdbScanCond.h:96
void FillErrorsCov(float tx, float ty, TMatrixD &cov)
Definition: EdbScanCond.cxx:161
float StepX(float dz) const
Definition: EdbScanCond.cxx:90
void SetChi2Mode(int mode)
Definition: EdbScanCond.h:88
void SetSigmaGR(float sx, float sy, float sz)
Definition: EdbScanCond.h:60
void SetSigma0(float x, float y, float tx, float ty)
Definition: EdbScanCond.h:62
void SetBins(float bx, float by, float btx, float bty)
Definition: EdbScanCond.h:65
Float_t eBinX
Definition: EdbScanCond.h:35
float SigmaTYf(float ay) const
Definition: EdbScanCond.h:110
float ProbSeg(float tx, float ty, float puls) const
Definition: EdbScanCond.cxx:119
Float_t eSigmaZ0
Definition: EdbScanCond.h:26
EdbScanCond()
==============================================================================
Definition: EdbScanCond.cxx:10
Float_t eOffX
Definition: EdbScanCond.h:42
float SigmaYgr() const
Definition: EdbScanCond.h:97
void SetSigmaZ0(float z)
Definition: EdbScanCond.h:72
float SigmaY(float ay) const
Definition: EdbScanCond.h:103
Float_t eOffY
Definition: EdbScanCond.h:42
Float_t eBinTX
Definition: EdbScanCond.h:36
void SetPulsRamp04(float p1, float p2)
Definition: EdbScanCond.h:75
Float_t eRadX0
Definition: EdbScanCond.h:45
Float_t eBinY
Definition: EdbScanCond.h:35
float BinX() const
Definition: EdbScanCond.h:78
float RadX0() const
Definition: EdbScanCond.h:58
void DefineLLFunction(const char *str)
Definition: EdbScanCond.cxx:135
void SetRadX0(float x0)
Definition: EdbScanCond.h:57
float StepTY(float ty) const
Definition: EdbScanCond.h:94
int Chi2Mode() const
Definition: EdbScanCond.h:89
float BinY() const
Definition: EdbScanCond.h:79
float SigmaZgr() const
Definition: EdbScanCond.h:98
Float_t eSigmaTX0
Definition: EdbScanCond.h:27
Float_t eSigmaY0
Definition: EdbScanCond.h:25
void SetChi2PMax(float chi2)
Definition: EdbScanCond.h:84
TF1 * eLikelihoodMT
Definition: EdbScanCond.h:49
Float_t chi2
Definition: testBGReduction_By_ANN.C:14