//____________________________________________________________________________ /*! \class genie::flux::GSaeGeometry \brief A geometry driver for an under-water neutrino telescope \author Carla Distefano LNS-INFN, Catania \created September 13, 2012 \cpright Copyright (c) 2012-2019, The KM3NeT Collaboration For the full text of the license see $GSEAGEN/LICENSE */ //____________________________________________________________________________ #ifndef _GSEAGEOMETRY__ #define _GSEAGEOMETRY__ #include #include #include #include #include #include #include #include #include #include #include #include "SeaEvent/GBinParam.h" #include "SeaNuDrivers/GPEarth.h" using namespace std; using namespace genie; namespace genie { namespace geometry { class GSeaGeometry { public : GSeaGeometry(GenParam * GenPar); ~GSeaGeometry(); double GetRangeSW(double); double GetRangeSR(double); void BuildGeometryMuon(double EneMax, string filename); #ifdef _HETAU_ENABLED__ void BuildGeometryTauShower(double EneMax, string filename); void BuildGeometryTauTrack(double EneMax, string filename); #endif void BuildGeometryElectron(string filename); double GetRT(){return fRT;} double GetRL(){return fRL;} double GetX0(){return fX0;} double GetY0(){return fY0;} double GetZ0(){return fZ0;} double GetRVol(){return fRVol;} double GetHSeaWater(){return fHSeaWater;} double GetHRock(){return fHRock;} double GetSeaCenter(){return fSeaCenter;} double GetRockCenter(){return fRockCenter;} TGraph GetRangeSW(){return fRangeSW;} TGraph GetRangeSR(){return fRangeSR;} double GetSeaBottomRadius(){return fPEarth->GetSeaBottomRadius();}; void CalcRadii (void); protected: GenParam * fGenPar; double fRT; double fRL; double fRTPlus; double fX0,fY0,fZ0; double fRVol; double fHSeaWater; double fHRock; double fSeaCenter; double fRockCenter; TGraph fRangeSW; TGraph fRangeSR; TGeoManager * fGeoManager; TGeoMaterial * fMatVacuum; TGeoMixture * fMixSeawater; TGeoMixture * fMixRock; TGeoMedium * fVacuum; TGeoMedium * fSeaWater; TGeoMedium * fRock; GPEarth * fPEarth; bool LoadMuonRange (void); #ifdef _HETAU_ENABLED__ bool LoadTauRange (void); #endif void DefineMedia (void); void BuildGeometry (string filename); }; } // geometry namespace } // genie namespace #endif // _GSEAGEOMETRY__