source: trunk/MagicSoft/Mars/mmuon/MMuonCalibPar.h@ 5175

Last change on this file since 5175 was 5173, checked in by mase, 20 years ago
*** empty log message ***
File size: 4.8 KB
Line 
1#ifndef MARS_MMuonCalibPar
2#define MARS_MMuonCalibPar
3
4#ifndef MARS_MParContainer
5#include "MParContainer.h"
6#endif
7
8#ifndef ROOT_TH1
9#include <TH1.h>
10#endif
11
12class MGeomCam;
13class MCerPhotEvt;
14class MMuonSearchPar;
15
16class MMuonCalibPar : public MParContainer
17{
18private:
19 Float_t fArcLen; // An arc length of a muon along the arc [deg.]
20 Float_t fArcPhi; // A opening angle of a muon arc [deg.]
21 Float_t fArcWid; // A width of a muon [deg.] (1 sigma of gaussian fit)
22 Float_t fChiArcPhi; // A chisquare value of the cosine fit for arc phi
23 Float_t fChiArcWid; // A chisquare value of the cosine fit for arc wid
24 Float_t fMuonSize; // A SIZE of muon which is defined as a SIZE around the estimated circle
25 Float_t fEstImpact; // An estimated impact parameter from the photon distribution along the arc image
26 Bool_t fKeepHist; // A flag to keep histgram
27 Float_t fMargin; // margin to evaluate muons [mm]. The defaut value is 60 mm, corresponding to 0.2 deg. This value can be changed by using the function of SetMargin
28 Bool_t fUseUnmap; // This is a flag to know the Unmapped pixels are used. Refer to the class of MImgCleanStd
29 Float_t fPeakPhi; // The angle which indicates the peak position in the estimated circle
30 Float_t fArcPhiThres; // The threshold value to define arc phi
31 Float_t fArcWidThres; // The threshold value to define arc width
32 Int_t fArcPhiBinNum; // The bin number for the histogram of arc phi. You may change this value. However, if you change this, YOU ALSO HAVE TO CHANGE THE THRESHOLD VALUE TO GET ARC LENGTH.
33 Int_t fArcWidBinNum; // The bin number for the histogram of arc wid
34 Float_t fArcPhiHistStartVal; // The starting value for the histogram of arc phi
35 Float_t fArcPhiHistEndVal; // The end value for the histogram of arc phi
36 Float_t fArcWidHistStartVal; // The starting value for the histogram of arc width
37 Float_t fArcWidHistEndVal; // The end value for the histogram of arc width
38 Float_t fEnableImpactCalc; // If true, the impact calculation will be done, which will consume a lot of time.
39 Float_t fDisablePreCuts; // If true, the pre cuts to select muons for the calibration will be disabled.
40 Float_t fUseCleanForWid; // If true, the only signal after image cleaningwill be used for the histogram of arc width
41
42 TH1F fHistPhi; // Histogram of photon distribution along the arc.
43 TH1F fHistWid; // Histogram of radial photon distribution of the arc.
44
45public:
46 MMuonCalibPar(const char *name=NULL, const char *title=NULL);
47
48 void Reset();
49
50 Float_t GetArcLen() const { return fArcLen; }
51 Float_t GetArcPhi() const { return fArcPhi; }
52 Float_t GetArcWid() const { return fArcWid; }
53 Float_t GetChiArcPhi() const { return fChiArcPhi; }
54 Float_t GetChiArcWid() const { return fChiArcWid; }
55 Float_t GetMargin() const { return fMargin; }
56 Float_t GetMuonSize() const { return fMuonSize; }
57 Float_t GetEstImpact() const { return fEstImpact; }
58 Bool_t IsUseUnmap() const { return fUseUnmap; }
59 Float_t GetPeakPhi() const { return fPeakPhi; }
60 Float_t GetArcPhiThres() const { return fArcPhiThres; }
61 Float_t GetArcWidThres() const { return fArcWidThres; }
62 Float_t GetArcPhiBinNum() const { return fArcPhiBinNum; }
63 Float_t GetArcWidBinNum() const { return fArcWidBinNum; }
64 TH1F &GetHistPhi() { return fHistPhi; }
65 TH1F &GetHistWid() { return fHistWid; }
66
67 void SetMargin(Float_t margin) { fMargin = margin; }
68 void SetArcPhiThres(Float_t thres) { fArcPhiThres = thres; }
69 void SetArcWidThres(Float_t thres) { fArcWidThres = thres; }
70 void SetArcPhiBinNum(Int_t num) { fArcPhiBinNum = num; }
71 void SetArcWidBinNum(Int_t num) { fArcWidBinNum = num; }
72
73 void KeepHist() { fKeepHist = kTRUE; }
74 Bool_t IsKeepHist() { return fKeepHist; }
75
76 void EnableImpactCalc() { fEnableImpactCalc = kTRUE; }
77 Bool_t IsEnableImpactCalc() { return fEnableImpactCalc; }
78 void DisablePreCuts() { fDisablePreCuts = kTRUE; }
79 Bool_t IsDisablePreCuts() { return fDisablePreCuts; }
80 void UseCleanForWid() { fUseCleanForWid = kTRUE; }
81 Bool_t IsUseCleanForWid() { return fUseCleanForWid; }
82
83 void Print(Option_t *opt=NULL) const;
84
85 void FillHist(const MGeomCam &geom, const MCerPhotEvt &evt,
86 const MMuonSearchPar &musearch);
87 void CalcPhi(const MGeomCam &geom, const MCerPhotEvt &evt,
88 const MMuonSearchPar &musearch);
89 void CalcImpact(const MGeomCam &geom, const MMuonSearchPar &musearch,
90 Int_t effbinnum, Float_t startfitval, Float_t endfitval);
91 Float_t CalcWid(const MGeomCam &geom, const MCerPhotEvt &evt,
92 const MMuonSearchPar &musearch);
93 Int_t Calc(const MGeomCam &geom, const MCerPhotEvt &evt,
94 const MMuonSearchPar &musearch);
95
96 ClassDef(MMuonCalibPar, 3) // Container to hold muon calibration parameters
97};
98
99#endif
Note: See TracBrowser for help on using the repository browser.