source: trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.h@ 7954

Last change on this file since 7954 was 7189, checked in by tbretz, 19 years ago
*** empty log message ***
File size: 5.0 KB
Line 
1#ifndef MARS_MHCalibrationHiLoCam
2#define MARS_MHCalibrationHiLoCam
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
16#ifndef ROOT_TH2F
17#include <TH2F.h>
18#endif
19
20class MGeomCam;
21class MArrivalTimeCam;
22class MHCalibrationHiLoPix;
23
24class MHCalibrationHiLoCam : public MHCalibrationCam
25{
26private:
27 static const Int_t fgNbins; //! Default number of bins (now set to: 900 )
28 static const Axis_t fgFirst; //! Default lower histogram limit (now set to: -13.5 )
29 static const Axis_t fgLast; //! Default upper histogram limit (now set to: 13.5 )
30 static const Float_t fgProbLimit; //! The default for fProbLimit (now set to: 0.0)
31
32 static const Int_t fgHivsLoNbins; //! Default number of bins (now set to: 900 )
33 static const Axis_t fgHivsLoFirst; //! Default lower histogram limit (now set to: -13.5 )
34 static const Axis_t fgHivsLoLast; //! Default upper histogram limit (now set to: 13.5 )
35
36 static const Axis_t fgLowerFitLimitProfile; //! Default for fLowerFitLimitProfile (now set to: 480. )
37 static const Axis_t fgUpperFitLimitProfile; //! Default for fUpperFitLimitProfile (now set to: 680. )
38
39 static const TString gsHistName; //! Default Histogram names
40 static const TString gsHistTitle; //! Default Histogram titles
41 static const TString gsHistXTitle; //! Default Histogram x-axis titles
42 static const TString gsHistYTitle; //! Default Histogram y-axis titles
43
44 static const TString gsHivsLoHistName; //! Default names hi vs. lo profile
45 static const TString gsHivsLoHistTitle; //! Default titles hi vs. lo profile
46 static const TString gsHivsLoHistXTitle; //! Default x-axis titles hi vs. lo profile
47 static const TString gsHivsLoHistYTitle; //! Default y-axis titles hi vs. lo profile
48
49 TString fHivsLoHistName; // names hi vs. lo profile
50 TString fHivsLoHistTitle; // titles hi vs. lo profile
51 TString fHivsLoHistXTitle; // x-axis titles hi vs. lo profile
52 TString fHivsLoHistYTitle; // y-axis titles hi vs. lo profile
53
54 Int_t fHivsLoNbins; // Number of HivsLo bins
55 Axis_t fHivsLoFirst; // Lower histogram limit low gain
56 Axis_t fHivsLoLast; // Upper histogram limit low gain
57
58 Axis_t fLowerFitLimitProfile; // Lower limit for hi-vs. logain fit
59 Axis_t fUpperFitLimitProfile; // Upper limit for hi-vs. logain fit
60
61 MArrayD fSumareahi ; //
62 MArrayD fSumsectorhi; //
63 MArrayI fNumareahi ; //
64 MArrayI fNumsectorhi; //
65 MArrayD fSumarealo ; //
66 MArrayD fSumsectorlo; //
67 MArrayI fNumarealo ; //
68 MArrayI fNumsectorlo; //
69
70 MArrivalTimeCam *fArrTimes; //! Pointer to arrival times
71
72 TH2F fHivsLoResults; // Results from pol1-fit
73
74 Float_t fUsedLoGainSlices; // Used low-gain FADC slices
75 Bool_t ReInitHists(MParList *pList);
76 Bool_t FillHists(const MParContainer *par, const Stat_t w=1);
77 Bool_t FinalizeHists();
78 void FinalizeBadPixels();
79
80 void InitHiGainArrays( const Int_t npix, const Int_t nareas, const Int_t nsectors );
81 void InitLoGainArrays( const Int_t npix, const Int_t nareas, const Int_t nsectors );
82
83 void FinalizeHivsLo (MHCalibrationHiLoPix &hist);
84
85 void CheckOverflow( MHCalibrationPix &pix);
86
87 Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
88
89public:
90 MHCalibrationHiLoCam(const char *name=NULL, const char *title=NULL);
91
92 // Clone
93 TObject *Clone(const char *name="") const;
94
95 TH2F &GetHivsLoResults() { return fHivsLoResults; }
96
97 void SetHivsLoHistName ( const char *name ) { fHivsLoHistName = name; }
98 void SetHivsLoHistTitle ( const char *name ) { fHivsLoHistTitle = name; }
99 void SetHivsLoHistXTitle ( const char *name ) { fHivsLoHistXTitle = name; }
100 void SetHivsLoHistYTitle ( const char *name ) { fHivsLoHistYTitle = name; }
101
102 void SetHivsLoNbins ( const Int_t i=fgHivsLoNbins ) { fHivsLoNbins = i; }
103 void SetHivsLoFirst ( const Axis_t f=fgHivsLoFirst ) { fHivsLoFirst = f; }
104 void SetHivsLoLast ( const Axis_t f=fgHivsLoLast ) { fHivsLoLast = f; }
105
106 void SetLowerFitLimitProfile( const Axis_t f=fgLowerFitLimitProfile ) { fLowerFitLimitProfile = f; }
107 void SetUpperFitLimitProfile( const Axis_t f=fgUpperFitLimitProfile ) { fUpperFitLimitProfile = f; }
108
109 // Draw
110 void Draw(const Option_t *opt); // *MENU*
111
112 Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const;
113 void DrawPixelContent(Int_t idx) const;
114
115 ClassDef(MHCalibrationHiLoCam, 1) // Histogram class for High Gain vs. Low Gain Calibration
116};
117
118#endif
Note: See TracBrowser for help on using the repository browser.