1  #ifndef MARS_MHSingleMuon


2  #define MARS_MHSingleMuon


3 


4  #ifndef MARS_MH


5  #include "MH.h"


6  #endif


7  #ifndef ROOT_TProfile


8  #include <TProfile.h>


9  #endif


10 


11  class MSignalCam;


12  class MMuonSearchPar;


13  class MMuonCalibPar;


14  class MMuonSetup;


15  class MGeomCam;


16 


17  class MHSingleMuon : public MH


18  {


19  private:


20  MSignalCam *fSignalCam; //!


21  MMuonSearchPar *fMuonSearchPar; //!


22  MGeomCam *fGeomCam; //!


23 


24  Double_t fMargin; //!


25 


26  TProfile fHistPhi; // Histogram of photon distribution along the arc.


27  TProfile fHistWidth; // Histogram of radial photon distribution of the arc.


28  TH1F fHistTime; // Histogram of arrival time distribution along the arc.


29 


30  Double_t fRelTimeMean; // Result of the gaus fit to the arrival time


31  Double_t fRelTimeSigma; // Result of the gaus fit to the arrival time


32 


33  Bool_t FindRangeAboveThreshold(const TProfile &h, Float_t thres, Int_t &first, Int_t &last) const;


34 


35  public:


36  MHSingleMuon(const char *name=NULL, const char *title=NULL);


37 


38  Bool_t SetupFill(const MParList *plist);


39  Bool_t Fill(const MParContainer *par, const Stat_t w=1);


40 


41  Bool_t CalcPhi(Double_t, Double_t &, Double_t &) const;


42  Bool_t CalcWidth(Double_t, Double_t &, Double_t &);


43 


44  const TProfile &GetHistPhi() const { return fHistPhi; }


45  const TH1F &GetHistTime() const { return fHistTime; }


46  const TProfile &GetHistWidth() const { return fHistWidth; }


47 


48  Double_t GetRelTimeMean() const { return fRelTimeMean; }


49  Double_t GetRelTimeSigma() const { return fRelTimeSigma; }


50 


51  Float_t CalcSize() const;


52 


53  void Draw(Option_t *o="");


54  void Paint(Option_t *o="");


55 


56  ClassDef(MHSingleMuon, 2)


57  };


58 


59  #endif

