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;
      } 
    }