source: trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h@ 3630

Last change on this file since 3630 was 3629, checked in by gaug, 21 years ago
*** empty log message ***
File size: 3.1 KB
Line 
1#ifndef MARS_MHCalibrationCam
2#define MARS_MHCalibrationCam
3
4#ifndef ROOT_TObjArray
5#include <TObjArray.h>
6#endif
7
8#ifndef ROOT_TArrayI
9#include <TArrayI.h>
10#endif
11
12#ifndef ROOT_TArrayF
13#include <TArrayF.h>
14#endif
15
16#ifndef MARS_MH
17#include "MH.h"
18#endif
19#ifndef MARS_MCamEvent
20#include "MCamEvent.h"
21#endif
22
23class TText;
24class TArrayI;
25class TArrayF;
26class MHGausEvents;
27class MHCalibrationCam : public MH, public MCamEvent
28{
29
30protected:
31
32 static const Int_t fgPulserFrequency; // The default for fPulserFrequency
33 Int_t fPulserFrequency; // Light pulser frequency
34
35 TObjArray *fHiGainArray; //-> Array of calibration pixels, one per pixel
36 TObjArray *fLoGainArray; //-> Array of calibration pixels, one per pixel
37 TObjArray *fAverageHiGainAreas; //-> Array of calibration pixels, one per pixel area
38 TObjArray *fAverageLoGainAreas; //-> Array of calibration pixels, one per pixel area
39 TObjArray *fAverageHiGainSectors; //-> Array of calibration pixels, one per camera sector
40 TObjArray *fAverageLoGainSectors; //-> Array of calibration pixels, one per camera sector
41
42 TArrayI fAverageAreaNum; // Number of pixels in average pixels per area
43 TArrayI fAverageAreaSat; // Number of saturated slices in average pixels per area
44 TArrayF fAverageAreaSigma; // Re-normalized sigmas in average pixels per area
45 TArrayF fAverageAreaSigmaErr; // Errors of Re-normalized sigmas in average pixels per area
46 TArrayF fAverageAreaRelSigma; // Re-normalized relative sigmas in average pixels per area
47 TArrayF fAverageAreaRelSigmaErr; // Errors of Re-normalized relative sigmas in average pixels per area
48 TArrayI fAverageSectorNum; // Number of pixels in average pixels per sector
49
50 void DrawAverageSigma(Bool_t sat, Bool_t inner,
51 Float_t sigma, Float_t sigmaerr,
52 Float_t relsigma, Float_t relsigmaerr) const;
53
54public:
55
56 MHCalibrationCam(const char *name=NULL, const char *title=NULL);
57 ~MHCalibrationCam();
58
59 void SetPulserFrequency(const Int_t f=fgPulserFrequency) { fPulserFrequency = f; }
60
61 MHGausEvents &operator[](UInt_t i);
62 const MHGausEvents &operator[](UInt_t i) const;
63
64 MHGausEvents &operator()(UInt_t i);
65 const MHGausEvents &operator()(UInt_t i) const;
66
67 MHGausEvents &GetAverageHiGainArea(UInt_t i);
68 const MHGausEvents &GetAverageHiGainArea(UInt_t i) const;
69
70 MHGausEvents &GetAverageLoGainArea(UInt_t i);
71 const MHGausEvents &GetAverageLoGainArea(UInt_t i) const;
72
73 MHGausEvents &GetAverageHiGainSector(UInt_t i);
74 const MHGausEvents &GetAverageHiGainSector(UInt_t i) const;
75
76 MHGausEvents &GetAverageLoGainSector(UInt_t i);
77 const MHGausEvents &GetAverageLoGainSector(UInt_t i) const;
78
79 // Clone
80 TObject *Clone(const char *) const;
81
82 // Draw
83 virtual void Draw(const Option_t *opt);
84
85 virtual Bool_t GetPixelContent ( Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const;
86 virtual void DrawPixelContent( Int_t num ) const;
87
88 ClassDef(MHCalibrationCam, 1) // Base Histogram class for camera calibration
89};
90
91#endif
92
93
94
95
96
97
98
99
100
Note: See TracBrowser for help on using the repository browser.