| 1 | #ifndef MARS_MMuonSearchPar | 
|---|
| 2 | #define MARS_MMuonSearchPar | 
|---|
| 3 |  | 
|---|
| 4 | #ifndef MARS_MParContainer | 
|---|
| 5 | #include "MParContainer.h" | 
|---|
| 6 | #endif | 
|---|
| 7 |  | 
|---|
| 8 | #ifndef MARS_MArrayF | 
|---|
| 9 | #include "MArrayF.h" | 
|---|
| 10 | #endif | 
|---|
| 11 |  | 
|---|
| 12 | class MHillas; | 
|---|
| 13 | class MGeomCam; | 
|---|
| 14 | class MSignalCam; | 
|---|
| 15 |  | 
|---|
| 16 | class MMuonSearchPar : public MParContainer | 
|---|
| 17 | { | 
|---|
| 18 | private: | 
|---|
| 19 | Float_t fRadius;    // An estimated radius of the muon ring [mm] | 
|---|
| 20 | Float_t fDeviation; // The standard deviation from the estimated ring [mm] | 
|---|
| 21 | Float_t fCenterX;   // An estimated center position in X of the muon ring [mm] | 
|---|
| 22 | Float_t fCenterY;   // An estimated center position in Y of the muon ring [mm] | 
|---|
| 23 | Float_t fTime;      // Mean arrival time of core pixels | 
|---|
| 24 | Float_t fTimeRms;   // Rms of arrival time of core pixels | 
|---|
| 25 |  | 
|---|
| 26 | MArrayF fSignal;    //! Temporary storage for signal | 
|---|
| 27 | MArrayF fX;         //! Temporary storage for pixels X-position | 
|---|
| 28 | MArrayF fY;         //! Temporary storage for pixels Y-position | 
|---|
| 29 |  | 
|---|
| 30 | static void fcn(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag); | 
|---|
| 31 | Double_t Fcn(Double_t *par) const; | 
|---|
| 32 |  | 
|---|
| 33 | public: | 
|---|
| 34 | MMuonSearchPar(const char *name=NULL, const char *title=NULL); | 
|---|
| 35 |  | 
|---|
| 36 | // MParContainer | 
|---|
| 37 | void Reset(); | 
|---|
| 38 |  | 
|---|
| 39 | // Getter | 
|---|
| 40 | Float_t GetRadius()    const { return fRadius; } | 
|---|
| 41 | Float_t GetDeviation() const { return fDeviation; } | 
|---|
| 42 | Float_t GetCenterX()   const { return fCenterX; } | 
|---|
| 43 | Float_t GetCenterY()   const { return fCenterY; } | 
|---|
| 44 | Float_t GetDist()      const { return TMath::Hypot(fCenterX, fCenterY); } | 
|---|
| 45 | Float_t GetTime()      const { return fTime; } | 
|---|
| 46 | Float_t GetTimeRms()   const { return fTimeRms; } | 
|---|
| 47 |  | 
|---|
| 48 | // MMuonSearchPar | 
|---|
| 49 | void   CalcMinimumDeviation(const MGeomCam &geom, const MSignalCam &evt, | 
|---|
| 50 | Double_t &x, Double_t &y, Double_t &sigma, Double_t &rad); | 
|---|
| 51 |  | 
|---|
| 52 | void   Calc(const MGeomCam &geom, const MSignalCam &evt, | 
|---|
| 53 | const MHillas &hillas); | 
|---|
| 54 |  | 
|---|
| 55 | // TObject | 
|---|
| 56 | void   Paint(Option_t *opt=""); | 
|---|
| 57 | void   Print(Option_t *opt=NULL) const; | 
|---|
| 58 | void   Print(const MGeomCam &geom, Option_t *opt=NULL) const; | 
|---|
| 59 |  | 
|---|
| 60 | ClassDef(MMuonSearchPar, 2) // Container to hold muon search parameters | 
|---|
| 61 | }; | 
|---|
| 62 |  | 
|---|
| 63 | #endif | 
|---|