1 | #ifndef MARS_MMuonSearchPar
|
---|
2 | #define MARS_MMuonSearchPar
|
---|
3 |
|
---|
4 | #ifndef MARS_MParContainer
|
---|
5 | #include "MParContainer.h"
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | #ifndef ROOT_TH1
|
---|
9 | #include <TH1.h>
|
---|
10 | #endif
|
---|
11 |
|
---|
12 | #ifndef ROOT_TArrayI
|
---|
13 | #include <TArrayI.h>
|
---|
14 | #endif
|
---|
15 |
|
---|
16 | class MHillas;
|
---|
17 | class MGeomCam;
|
---|
18 | class MCerPhotEvt;
|
---|
19 |
|
---|
20 | class MMuonSearchPar : public MParContainer
|
---|
21 | {
|
---|
22 | private:
|
---|
23 | Float_t fRadius; // An estimated radius of the muon ring [mm]
|
---|
24 | Float_t fDeviation; // The standard deviation from the estimated ring [mm]
|
---|
25 | Float_t fCenterX; // An estimated center position in X of the muon ring [mm]
|
---|
26 | Float_t fCenterY; // An estimated center position in Y of the muon ring [mm]
|
---|
27 | Bool_t fNoMuon; // if the radius is estimated above 600 mm (2 deg.), assumed it's not muon. Later on, at the stage of MMuonCalibParCalc, this flag will be changed if the task judge the event as no muon.
|
---|
28 |
|
---|
29 | public:
|
---|
30 | MMuonSearchPar(const char *name=NULL, const char *title=NULL);
|
---|
31 |
|
---|
32 | void Reset();
|
---|
33 |
|
---|
34 | Float_t GetRadius() const { return fRadius; }
|
---|
35 | Float_t GetDeviation() const { return fDeviation; }
|
---|
36 | Float_t GetCenterX() const { return fCenterX; }
|
---|
37 | Float_t GetCenterY() const { return fCenterY; }
|
---|
38 | Bool_t IsNoMuon() const { return fNoMuon; }
|
---|
39 | void SetNoMuon() { fNoMuon = kTRUE; }
|
---|
40 |
|
---|
41 | void Print(Option_t *opt=NULL) const;
|
---|
42 | void Print(const MGeomCam &geom, Option_t *opt=NULL) const;
|
---|
43 | void CalcTempCenter(const MHillas &hillas, Float_t *xtmp1,
|
---|
44 | Float_t *ytmp1, Float_t *xtmp2, Float_t *ytmp2);
|
---|
45 | Bool_t CalcRadius(const MGeomCam &geom, const MCerPhotEvt &evt, Float_t x,
|
---|
46 | Float_t y, Float_t *r, Float_t *sigma);
|
---|
47 | void CalcMinimumDeviation(const MGeomCam &geom, const MCerPhotEvt &evt,
|
---|
48 | Float_t x, Float_t y, Float_t xcog,
|
---|
49 | Float_t ycog, Float_t sigma, Float_t *opt_rad,
|
---|
50 | Float_t *new_sigma, Float_t *newx, Float_t *newy);
|
---|
51 | void Calc(const MGeomCam &geom, const MCerPhotEvt &evt,
|
---|
52 | const MHillas &hillas);
|
---|
53 |
|
---|
54 | ClassDef(MMuonSearchPar, 1) // Container to hold muon search parameters
|
---|
55 | };
|
---|
56 |
|
---|
57 | #endif
|
---|