source: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeBlindPix.h@ 3308

Last change on this file since 3308 was 3293, checked in by gaug, 21 years ago
*** empty log message ***
File size: 5.7 KB
Line 
1#ifndef MARS_MCalibrationChargeBlindPix
2#define MARS_MCalibrationChargeBlindPix
3
4#ifndef MARS_MCalibrationChargePix
5#include "MCalibrationChargePix.h"
6#endif
7
8class MCalibrationChargeBlindPix : public MCalibrationChargePix
9{
10private:
11
12 static const Float_t fgLambdaCheckLimit; // The default limit (in units of PedRMS) for acceptance of the fitted mean charge
13 static const Float_t fgLambdaErrLimit; // The default limit (in units of PedRMS) for acceptance of the fitted charge sigma
14
15 static const Float_t gkBlindPixelArea; // The Blind Pixel area in mm^2
16
17 static const Float_t gkBlindPixelQEGreen;
18 static const Float_t gkBlindPixelQEBlue ;
19 static const Float_t gkBlindPixelQEUV ;
20 static const Float_t gkBlindPixelQECT1 ;
21
22 static const Float_t gkBlindPixelQEGreenErr;
23 static const Float_t gkBlindPixelQEBlueErr ;
24 static const Float_t gkBlindPixelQEUVErr ;
25 static const Float_t gkBlindPixelQECT1Err ;
26
27 static const Float_t gkBlindPixelAttGreen;
28 static const Float_t gkBlindPixelAttBlue ;
29 static const Float_t gkBlindPixelAttUV ;
30 static const Float_t gkBlindPixelAttCT1 ;
31
32 Float_t fLambdaCheckLimit; // The rel. limit for the rel difference between lambda and lambda check
33 Float_t fLambdaErrLimit; // The limit for acceptance of the fitted lambda
34
35 Float_t fLambda; // The mean of the Poisson fit
36 Float_t fLambdaCheck; // The mean of the pedestal Check fit
37 Float_t fMu0; // The position of the pedestal-peak
38 Float_t fMu1; // The position of the first phe-peak
39 Float_t fSigma0; // The width of the pedestal-peak
40 Float_t fSigma1; // The width of the first phe-peak
41
42 Float_t fLambdaErr; // The error of the mean charge after the fit
43 Float_t fLambdaCheckErr; // The error of the mean of the pedestal Check fit
44 Float_t fMu0Err; // The error of the position of the pedestal-peak
45 Float_t fMu1Err; // The error of the position of the first phe-peak
46 Float_t fSigma0Err; // The error of the width of the pedestal-peak
47 Float_t fSigma1Err; // The error of the width of the first phe-peak
48
49 Float_t fProb; // The probability of the fit
50
51 Float_t fMeanFluxInsidePlexiglass; // The mean number of photons in an INNER PIXEL inside the plexiglass
52 Float_t fMeanFluxErrInsidePlexiglass; // The uncertainty about the number of photons in an INNER PIXEL
53
54 Byte_t fFlags;
55
56 enum { kOscillating, kPedestalFitOK, kSinglePheFitOK, kChargeFitValid, kExcluded,
57 kFluxInsidePlexiglassAvailable };
58
59public:
60
61 enum PulserColor_t { kEBlue, kEGreen, kEUV, kECT1 } ;
62
63private:
64
65 PulserColor_t fColor;
66
67public:
68
69 MCalibrationChargeBlindPix(const char *name=NULL, const char *title=NULL);
70 ~MCalibrationChargeBlindPix() {}
71
72 void Clear(Option_t *o="");
73
74 // Setters
75 void SetColor ( const PulserColor_t color ) { fColor = color; }
76
77 void SetLambda ( const Float_t f ) { fLambda = f; }
78 void SetLambdaCheck ( const Float_t f ) { fLambdaCheck = f; }
79 void SetMu0 ( const Float_t f ) { fMu0 = f; }
80 void SetMu1 ( const Float_t f ) { fMu1 = f; }
81 void SetSigma0 ( const Float_t f ) { fSigma0 = f; }
82 void SetSigma1 ( const Float_t f ) { fSigma1 = f; }
83
84 void SetLambdaErr ( const Float_t f ) { fLambdaErr = f; }
85 void SetLambdaCheckErr ( const Float_t f ) { fLambdaCheck = f; }
86 void SetMu0Err ( const Float_t f ) { fMu0Err = f; }
87 void SetMu1Err ( const Float_t f ) { fMu1Err = f; }
88 void SetSigma0Err ( const Float_t f ) { fSigma0Err = f; }
89 void SetSigma1Err ( const Float_t f ) { fSigma1Err = f; }
90
91 void SetProb ( const Float_t f ) { fProb = f; }
92
93 void SetLambdaCheckLimit ( const Float_t f=fgLambdaCheckLimit ) { fLambdaCheckLimit = f; }
94 void SetLambdaErrLimit ( const Float_t f=fgLambdaErrLimit ) { fLambdaErrLimit = f; }
95
96 void SetOscillating ( const Bool_t b=kTRUE);
97 void SetChargeFitValid ( const Bool_t b=kTRUE);
98 void SetPedestalFitOK ( const Bool_t b=kTRUE);
99 void SetSinglePheFitOK ( const Bool_t b=kTRUE);
100 void SetFluxInsidePlexiglassAvailable ( const Bool_t b=kTRUE);
101 void SetExcluded ( const Bool_t b=kTRUE);
102
103 // Getters
104 Float_t GetLambda() const { return fLambda; }
105 Float_t GetLambdaCheck() const { return fLambdaCheck; }
106 Float_t GetMu0() const { return fMu0; }
107 Float_t GetMu1() const { return fMu1; }
108 Float_t GetSigma0() const { return fSigma0; }
109 Float_t GetSigma1() const { return fSigma1; }
110
111 Float_t GetLambdaErr() const { return fLambdaErr; }
112 Float_t GetLambdaCheckErr() const { return fLambdaCheckErr; }
113 Float_t GetMu0Err() const { return fMu0Err; }
114 Float_t GetMu1Err() const { return fMu1Err; }
115 Float_t GetSigma0Err() const { return fSigma0Err; }
116 Float_t GetSigma1Err() const { return fSigma1Err; }
117
118 Float_t GetMeanFluxInsidePlexiglass() const { return fMeanFluxInsidePlexiglass; }
119 Float_t GetMeanFluxErrInsidePlexiglass() const { return fMeanFluxErrInsidePlexiglass; }
120
121 Bool_t IsOscillating() const;
122 Bool_t IsChargeFitValid() const;
123 Bool_t IsPedestalFitOK() const;
124 Bool_t IsSinglePheFitOK() const;
125 Bool_t IsExcluded() const;
126 Bool_t IsFluxInsidePlexiglassAvailable() const;
127
128 Bool_t CalcFluxInsidePlexiglass();
129 Bool_t CheckChargeFitValidity();
130
131 ClassDef(MCalibrationChargeBlindPix, 1) // Container for Calibration ChargeBlind Pixel
132};
133
134#endif
135
136
137
138
Note: See TracBrowser for help on using the repository browser.