source: trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h@ 6000

Last change on this file since 6000 was 5864, checked in by gaug, 20 years ago
*** empty log message ***
File size: 6.3 KB
Line 
1#ifndef MARS_MHCalibrationChargeCam
2#define MARS_MHCalibrationChargeCam
3
4#ifndef MARS_MHCalibrationCam
5#include "MHCalibrationCam.h"
6#endif
7
8#ifndef MARS_MArrayI
9#include "MArrayI.h"
10#endif
11
12#ifndef MARS_MArrayD
13#include "MArrayD.h"
14#endif
15
16class TH1F;
17class MRawEvtData;
18class MExtractedSignalCam;
19class MCalibrationChargePix;
20class MHCalibrationChargePix;
21
22class MHCalibrationChargeCam : public MHCalibrationCam
23{
24private:
25
26 static const Int_t fgChargeHiGainNbins; //! Nr. bins of HiGain Histograms (now set to: 550 )
27 static const Axis_t fgChargeHiGainFirst; //! First Bin of HiGain Histograms (now set to: -100.5)
28 static const Axis_t fgChargeHiGainLast; //! Last Bin of HiGain Histograms (now set to: 999.5)
29 static const Int_t fgChargeLoGainNbins; //! First Bin of LoGain Histograms (now set to: 325 )
30 static const Axis_t fgChargeLoGainFirst; //! First Bin of LoGain Histograms (now set to: -150.5)
31 static const Axis_t fgChargeLoGainLast; //! Last Bin of LoGain Histograms (now set to: 499.5)
32 static const Float_t fgProbLimit; //! The default for fProbLimit (now set to: 0.00001)
33
34 static const TString gsHistName; //! Default Histogram names
35 static const TString gsHistTitle; //! Default Histogram titles
36 static const TString gsHistXTitle; //! Default Histogram x-axis titles
37 static const TString gsHistYTitle; //! Default Histogram y-axis titles
38
39 static const TString gsAbsHistName; //! Default Histogram names abs.times
40 static const TString gsAbsHistTitle; //! Default Histogram titles abs.times
41 static const TString gsAbsHistXTitle; //! Default Histogram x-axis titles abs.times
42 static const TString gsAbsHistYTitle; //! Default Histogram y-axis titles abs.times
43
44 static const Float_t fgNumHiGainSaturationLimit; //! The default for fNumHiGainSaturationLimit (now at: 0.01)
45 static const Float_t fgNumLoGainSaturationLimit; //! The default for fNumLoGainSaturationLimit (now at: 0.005)
46
47 static const Float_t fgTimeLowerLimit; //! Default for fTimeLowerLimit (now set to: 1.)
48 static const Float_t fgTimeUpperLimit; //! Default for fTimeUpperLimit (now set to: 2.)
49
50 static const Float_t gkHiGainInnerRefLines[7]; //!
51 static const Float_t gkHiGainOuterRefLines[7]; //!
52 static const Float_t gkLoGainInnerRefLines[7]; //!
53 static const Float_t gkLoGainOuterRefLines[7]; //!
54
55 Int_t fLoGainNbins; // Number of LoGain bins
56 Axis_t fLoGainFirst; // Lower histogram limit low gain
57 Axis_t fLoGainLast; // Upper histogram limit low gain
58
59 TString fAbsHistName; // Histogram names abs.times
60 TString fAbsHistTitle; // Histogram titles abs. times
61 TString fAbsHistXTitle; // Histogram x-axis titles abs. times
62 TString fAbsHistYTitle; // Histogram y-axis titles abs. times
63
64 MArrayD fSumhiarea ; //!
65 MArrayD fSumloarea ; //!
66 MArrayD fTimehiarea ; //!
67 MArrayD fTimeloarea ; //!
68 MArrayD fSumhisector; //!
69 MArrayD fSumlosector; //!
70 MArrayD fTimehisector; //!
71 MArrayD fTimelosector; //!
72
73 MArrayI fSathiarea ; //!
74 MArrayI fSatloarea ; //!
75 MArrayI fSathisector; //!
76 MArrayI fSatlosector; //!
77
78 Float_t fTimeLowerLimit; // Limit dist. to first signal slice (in units of FADC slices)
79 Float_t fTimeUpperLimit; // Limit dist. to last signal slice (in units of FADC slices)
80 Byte_t fFirstHiGain; // First used slice High Gain
81 Byte_t fLastHiGain; // Last used slice High Gain
82 Byte_t fFirstLoGain; // First used slice Low Gain
83 Byte_t fLastLoGain; // Last used slice Low Gain
84
85 MRawEvtData *fRawEvt; //! Raw event data
86
87 Bool_t SetupHists(const MParList *pList);
88 Bool_t ReInitHists(MParList *pList);
89 Bool_t FillHists(const MParContainer *par, const Stat_t w=1);
90
91 void InitHiGainArrays( const Int_t npix, const Int_t nareas, const Int_t nsectors );
92 void InitLoGainArrays( const Int_t npix, const Int_t nareas, const Int_t nsectors );
93
94 void FinalizeAbsTimes (MHCalibrationChargePix &hist, MCalibrationChargePix &pix, MBadPixelsPix &bad,
95 Byte_t first, Byte_t last);
96 Bool_t FinalizeHists();
97 void FinalizeBadPixels();
98
99 void DrawDataCheckPixel(MHCalibrationChargePix &pix, const Float_t refline[]);
100 void DisplayRefLines ( const TH1F *hist, const Float_t refline[]) const;
101
102 Int_t ReadEnv ( const TEnv &env, TString prefix, Bool_t print);
103
104public:
105
106 MHCalibrationChargeCam(const char *name=NULL, const char *title=NULL);
107 ~MHCalibrationChargeCam() {}
108
109 // Clone
110 TObject *Clone(const char *name="") const;
111
112 void SetLoGainNbins ( const Int_t i ) { fLoGainNbins = i; }
113 void SetLoGainFirst ( const Axis_t f ) { fLoGainFirst = f; }
114 void SetLoGainLast ( const Axis_t f ) { fLoGainLast = f; }
115
116 void SetTimeLowerLimit ( const Float_t f=fgTimeLowerLimit ) { fTimeLowerLimit = f; }
117 void SetTimeUpperLimit ( const Float_t f=fgTimeUpperLimit ) { fTimeUpperLimit = f; }
118
119 void SetAbsHistName ( const char *name ) { fAbsHistName = name; }
120 void SetAbsHistTitle ( const char *name ) { fAbsHistTitle = name; }
121 void SetAbsHistXTitle( const char *name ) { fAbsHistXTitle = name; }
122 void SetAbsHistYTitle( const char *name ) { fAbsHistYTitle = name; }
123
124 Bool_t GetPixelContent ( Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const { return kTRUE; }
125 void DrawPixelContent( Int_t num ) const;
126
127 // Draw
128 void Draw(const Option_t *opt);
129
130 ClassDef(MHCalibrationChargeCam, 1) // Histogram class for Charge Camera Calibration
131};
132
133#endif
Note: See TracBrowser for help on using the repository browser.