diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSPCAEnergyParametrization.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSPCAEnergyParametrization.h index f1aa99a8d758efe8c8d160376e55cd5fbf9294f7..650c56dbfbe9bb8e8ae9bdc97440a6a62f904b5d 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSPCAEnergyParametrization.h +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSPCAEnergyParametrization.h @@ -19,6 +19,13 @@ class TH1; class TFCSPCAEnergyParametrization:public TFCSEnergyParametrization { public: + enum FCSReturnCodePCA { + //Assuming an extrem h_totalE_ratio histogram that would cause a retry in 50% of the cases, + //returning FCSRetry+20 will cause an accidental WARNING for every 2^10=1024 simulated particles and + //an accidental FATAL for every 2^20, which should be safe even for largest scale productions + FCSRetryPCA=FCSRetry+20 + }; + TFCSPCAEnergyParametrization(const char* name=nullptr, const char* title=nullptr); virtual FCSReturnCode simulate(TFCSSimulationState& simulstate,const TFCSTruthState* truth, const TFCSExtrapolationState* extrapol) const override; diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSPCAEnergyParametrization.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSPCAEnergyParametrization.cxx index a23eb156b233fd0ccc9b9d9be1558d0de5797f45..7b150648010db765d9c49757f0d3724e9998cba3 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSPCAEnergyParametrization.cxx +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSPCAEnergyParametrization.cxx @@ -188,7 +188,7 @@ FCSReturnCode TFCSPCAEnergyParametrization::simulate(TFCSSimulationState& simuls delete [] input_data; delete [] simdata; - return FCSRetry; + return (FCSReturnCode)FCSRetryPCA; } }