#ifndef MARS_MCT1SupercutsCalc #define MARS_MCT1SupercutsCalc #ifndef MARS_MFilter #include "MFilter.h" #endif #ifndef ROOT_TArrayD #include #endif class MParList; class MHillas; class MHillasSrc; class MMcEvt; class MCerPhotEvt; class MGeomCam; class MHadronness; class MHMatrix; class MCT1SupercutsCalc : public MTask { private: MHillas *fHil; MHillasSrc *fHilSrc; MMcEvt *fMcEvt; MHadronness *fHadronness; //! output container for hadronness TString fHadronnessName; // name of container to store hadronness TString fHilName; TString fHilSrcName; Double_t fMm2Deg; Int_t fMap[7]; MHMatrix *fMatrix; //--------------------------------- // cut parameters TArrayD fLengthUp; TArrayD fLengthLo; TArrayD fWidthUp; TArrayD fWidthLo; TArrayD fDistUp; TArrayD fDistLo; TArrayD fAsymUp; TArrayD fAsymLo; TArrayD fAlphaUp; //--------------------------------- void InitParams(); Int_t PreProcess(MParList *pList); Int_t Process(); void Set(TArrayD &a, const TArrayD &b) { if (a.GetSize()==b.GetSize()) a=b; } Double_t GetVal(Int_t i) const; Double_t CtsMCut( #if ROOT_VERSION_CODE > ROOT_VERSION(3,05,00) const #endif TArrayD &a, Double_t ls, Double_t ct, Double_t ls2, Double_t dd2); public: MCT1SupercutsCalc(const char *hilname="MHillas", const char *hilsrcname="MHillasSrc", const char *name=NULL, const char *title=NULL); void SetHadronnessName(const TString name) { fHadronnessName = name; } TString GetHadronnessName() const { return fHadronnessName; } void InitMapping(MHMatrix *mat); void StopMapping() { InitMapping(NULL); } void SetLengthUp(const TArrayD &d) { Set(fLengthUp, d); } void SetLengthLo(const TArrayD &d) { Set(fLengthLo, d); } void SetWidthUp (const TArrayD &d) { Set(fWidthUp, d); } void SetWidthLo (const TArrayD &d) { Set(fWidthLo, d); } void SetDistUp (const TArrayD &d) { Set(fDistUp, d); } void SetDistLo (const TArrayD &d) { Set(fDistLo, d); } void SetAsymUp (const TArrayD &d) { Set(fAsymUp, d); } void SetAsymLo (const TArrayD &d) { Set(fAsymLo, d); } void SetAlphaUp (const TArrayD &d) { Set(fAlphaUp, d); } const TArrayD &GetLengthUp() const { return fLengthUp; } const TArrayD &GetLengthLo() const { return fLengthLo; } const TArrayD &GetWidthUp() const { return fWidthUp; } const TArrayD &GetWithLo() const { return fWidthLo; } const TArrayD &GetDistUp() const { return fDistUp; } const TArrayD &GetDistLo() const { return fDistLo; } const TArrayD &GetAsymUp() const { return fAsymUp; } const TArrayD &GetAsymLo() const { return fAsymLo; } const TArrayD &GetAlphaUp() const { return fAlphaUp; } ClassDef(MCT1SupercutsCalc, 0) // A class to evaluate the Supercuts }; #endif