//____________________________________________________________________________ /*! \class genie::GSyst \brief A class to evaluate the systematic weights using the GENIE class GReWeight \author Carla Distefano LNS-INFN, Catania \created May 14, 2015 \cpright Copyright (c) 2015-2019, The KM3NeT Collaboration For the full text of the license see $GSEAGEN/LICENSE */ //____________________________________________________________________________ #ifndef _SEASYST_H_ #define _SEASYST_H_ #include #include #include #include #include #include #include #include #ifdef _GENIEVERSIONGTEQ3__ #include "Framework/EventGen/EventRecord.h" #include "Framework/Utils/StringUtils.h" #include "RwFramework/GReWeightI.h" #include "RwFramework/GSystSet.h" #include "RwFramework/GSyst.h" #include "RwFramework/GReWeight.h" #include "RwCalculators/GReWeightNuXSecNCEL.h" #include "RwCalculators/GReWeightNuXSecCCQE.h" #include "RwCalculators/GReWeightNuXSecCCRES.h" #include "RwCalculators/GReWeightNuXSecCOH.h" #include "RwCalculators/GReWeightNonResonanceBkg.h" #include "RwCalculators/GReWeightFGM.h" #include "RwCalculators/GReWeightDISNuclMod.h" #include "RwCalculators/GReWeightResonanceDecay.h" #include "RwCalculators/GReWeightFZone.h" #include "RwCalculators/GReWeightINuke.h" #include "RwCalculators/GReWeightAGKY.h" #include "RwCalculators/GReWeightNuXSecCCQEvec.h" #include "RwCalculators/GReWeightNuXSecNCRES.h" #include "RwCalculators/GReWeightNuXSecDIS.h" #else #include "EVGCore/EventRecord.h" #include "Utils/StringUtils.h" #include "ReWeight/GReWeightI.h" #include "ReWeight/GSystSet.h" #include "ReWeight/GSyst.h" #include "ReWeight/GReWeight.h" #include "ReWeight/GReWeightNuXSecNCEL.h" #include "ReWeight/GReWeightNuXSecCCQE.h" #include "ReWeight/GReWeightNuXSecCCRES.h" #include "ReWeight/GReWeightNuXSecCOH.h" #include "ReWeight/GReWeightNonResonanceBkg.h" #include "ReWeight/GReWeightFGM.h" #include "ReWeight/GReWeightDISNuclMod.h" #include "ReWeight/GReWeightResonanceDecay.h" #include "ReWeight/GReWeightFZone.h" #include "ReWeight/GReWeightINuke.h" #include "ReWeight/GReWeightAGKY.h" #include "ReWeight/GReWeightNuXSecCCQEvec.h" #include "ReWeight/GReWeightNuXSecNCRES.h" #include "ReWeight/GReWeightNuXSecDIS.h" #endif #include "SeaNuDrivers/GSeaSystParam.h" using namespace std; using namespace genie; //using namespace genie::rew; class StrParamWeight : public TObject { public: string name; vector wght; StrParamWeight(){}; ~StrParamWeight(){}; ClassDef(StrParamWeight,1); }; class SystWeights : public TObject { public: vector WList; vector WParam; SystWeights(){}; ~SystWeights(){}; ClassDef(SystWeights,1); }; struct ListParam {string name; GSyst_t param; double tweaking_value;}; struct SystList {unsigned npar; vector params; GReWeight * ReWeight;}; struct SystParam {string name; GSyst_t param; unsigned ntwk; vector tweaking_value; vector ReWeight;}; namespace genie { class GSeaSyst { public : GSeaSyst(); ~GSeaSyst(); SystWeights ComputeWeights(EventRecord * event); SystInput GetSystInput(){return fSystInput;}; protected: vector fSystList; vector fSystParam; SystInput fSystInput; void ReadParamListFile(string filename); void SetSystParamList(void); ListParam SetParam(string name, double tweaking_value); SystParam SetParam(string name, int ntwk); void Configure(void); void BuildSystInput(void); }; } // genie namespace #endif // _SEASYST_H_