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

Last change on this file since 3450 was 3315, checked in by gaug, 21 years ago
*** empty log message ***
File size: 5.6 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
59 PulserColor_t fColor;
60
61public:
62
63 MCalibrationChargeBlindPix(const char *name=NULL, const char *title=NULL);
64 ~MCalibrationChargeBlindPix() {}
65
66 void Clear(Option_t *o="");
67
68 // Setters
69 void SetColor ( const PulserColor_t color ) { fColor = color; }
70
71 void SetLambda ( const Float_t f ) { fLambda = f; }
72 void SetLambdaCheck ( const Float_t f ) { fLambdaCheck = f; }
73 void SetMu0 ( const Float_t f ) { fMu0 = f; }
74 void SetMu1 ( const Float_t f ) { fMu1 = f; }
75 void SetSigma0 ( const Float_t f ) { fSigma0 = f; }
76 void SetSigma1 ( const Float_t f ) { fSigma1 = f; }
77
78 void SetLambdaErr ( const Float_t f ) { fLambdaErr = f; }
79 void SetLambdaCheckErr ( const Float_t f ) { fLambdaCheck = f; }
80 void SetMu0Err ( const Float_t f ) { fMu0Err = f; }
81 void SetMu1Err ( const Float_t f ) { fMu1Err = f; }
82 void SetSigma0Err ( const Float_t f ) { fSigma0Err = f; }
83 void SetSigma1Err ( const Float_t f ) { fSigma1Err = f; }
84
85 void SetProb ( const Float_t f ) { fProb = f; }
86
87 void SetLambdaCheckLimit ( const Float_t f=fgLambdaCheckLimit ) { fLambdaCheckLimit = f; }
88 void SetLambdaErrLimit ( const Float_t f=fgLambdaErrLimit ) { fLambdaErrLimit = f; }
89
90 void SetOscillating ( const Bool_t b=kTRUE);
91 void SetChargeFitValid ( const Bool_t b=kTRUE);
92 void SetPedestalFitOK ( const Bool_t b=kTRUE);
93 void SetSinglePheFitOK ( const Bool_t b=kTRUE);
94 void SetFluxInsidePlexiglassAvailable ( const Bool_t b=kTRUE);
95 void SetExcluded ( const Bool_t b=kTRUE);
96
97 // Getters
98 Float_t GetLambda() const { return fLambda; }
99 Float_t GetLambdaCheck() const { return fLambdaCheck; }
100 Float_t GetMu0() const { return fMu0; }
101 Float_t GetMu1() const { return fMu1; }
102 Float_t GetSigma0() const { return fSigma0; }
103 Float_t GetSigma1() const { return fSigma1; }
104
105 Float_t GetLambdaErr() const { return fLambdaErr; }
106 Float_t GetLambdaCheckErr() const { return fLambdaCheckErr; }
107 Float_t GetMu0Err() const { return fMu0Err; }
108 Float_t GetMu1Err() const { return fMu1Err; }
109 Float_t GetSigma0Err() const { return fSigma0Err; }
110 Float_t GetSigma1Err() const { return fSigma1Err; }
111
112 Float_t GetMeanFluxInsidePlexiglass() const { return fMeanFluxInsidePlexiglass; }
113 Float_t GetMeanFluxErrInsidePlexiglass() const { return fMeanFluxErrInsidePlexiglass; }
114
115 Bool_t IsOscillating() const;
116 Bool_t IsChargeFitValid() const;
117 Bool_t IsPedestalFitOK() const;
118 Bool_t IsSinglePheFitOK() const;
119 Bool_t IsExcluded() const;
120 Bool_t IsFluxInsidePlexiglassAvailable() const;
121
122 Bool_t CalcFluxInsidePlexiglass();
123 Bool_t CheckChargeFitValidity();
124
125 ClassDef(MCalibrationChargeBlindPix, 1) // Container for Calibration ChargeBlind Pixel
126};
127
128#endif
129
130
131
132
Note: See TracBrowser for help on using the repository browser.