33 #ifndef G4FFGDEBUGGINGMACROS_HH 
   34 #define G4FFGDEBUGGINGMACROS_HH 
   43     #define G4FFG_FUNCTION_SIGNATURE__ G4String(__func__) + "()" 
   44 #elif defined(_MSC_VER) 
   46     #define G4FFG_FUNCTION_SIGNATURE__ G4String(__FUNCTION__) + "()" 
   48     #define G4FFG_FUNCTION_SIGNATURE__ "a function" 
   52 #if defined(G4DEBUG_VERBOSE) 
   56     extern G4long G4FFGDEBUG_RECURSIVE_REPRESSION;
 
   60     extern G4long G4FFGDEBUG_RECURSIVE_REPRESSION_COUNTER;
 
   64     extern G4long G4FFGDEBUG_DATA_STRUCTURE_REPRESSION;
 
   68     extern G4long G4FFGDEBUG_DATA_STRUCTURE_REPRESSION_COUNTER;
 
   75     #define G4FFG_FUNCTIONENTER__ \ 
   76     if((Verbosity_ & G4FFGEnumerations::DEBUG) && !(Verbosity_ & G4FFGEnumerations::REPRESS_FUNCTION_ENTER_LEAVE_MESSAGES)) \ 
   79         G4cout << "Entering ";\ 
   90     #define G4FFG_SAMPLING_FUNCTIONENTER__ \ 
   91     if(!(Verbosity_ & G4FFGEnumerations::REPRESS_RANDOM_SAMPLING_MESSAGES)) \ 
   93         G4FFG_FUNCTIONENTER__ \ 
  101     #define G4FFG_RECURSIVE_FUNCTIONENTER__ \ 
  102     if(Verbosity_ & G4FFGEnumerations::REPRESS_RECURSIVE_DEBUG_MESSAGES)\ 
  104         if(G4FFGDEBUG_RECURSIVE_REPRESSION == 0) \ 
  106             G4FFG_FUNCTIONENTER__ \ 
  109             G4FFGDEBUG_RECURSIVE_REPRESSION_COUNTER++; \ 
  111         G4FFGDEBUG_RECURSIVE_REPRESSION++; \ 
  114         G4FFG_FUNCTIONENTER__ \ 
  122     #define G4FFG_DATA_FUNCTIONENTER__ \ 
  123     if(Verbosity_ & G4FFGEnumerations::REPRESS_DATA_STRUCTURE_DEBUG_MESSAGES)\ 
  125         if(G4FFGDEBUG_RECURSIVE_REPRESSION == 0) \ 
  127             G4FFG_FUNCTIONENTER__ \ 
  130             G4FFGDEBUG_DATA_STRUCTURE_REPRESSION_COUNTER++; \ 
  132         G4FFGDEBUG_RECURSIVE_REPRESSION++; \ 
  135         G4FFG_FUNCTIONENTER__ \ 
  144     #define G4FFG_FUNCTIONLEAVE__ \ 
  146     if((Verbosity_ & G4FFGEnumerations::DEBUG) && !(Verbosity_ & G4FFGEnumerations::REPRESS_FUNCTION_ENTER_LEAVE_MESSAGES)) \ 
  149         G4cout << "Leaving ";\ 
  159     #define G4FFG_SAMPLING_FUNCTIONLEAVE__ \ 
  160     if(!(Verbosity_ & G4FFGEnumerations::REPRESS_RANDOM_SAMPLING_MESSAGES)) \ 
  162         G4FFG_FUNCTIONLEAVE__ \ 
  170     #define G4FFG_RECURSIVE_FUNCTIONLEAVE__ \ 
  171     if(Verbosity_ & G4FFGEnumerations::REPRESS_RECURSIVE_DEBUG_MESSAGES)\ 
  173         G4FFGDEBUG_RECURSIVE_REPRESSION--; \ 
  174         if(G4FFGDEBUG_RECURSIVE_REPRESSION == 0) \ 
  176             if(G4FFGDEBUG_RECURSIVE_REPRESSION_COUNTER > 0) \ 
  179                 G4cout << "==== " << G4FFGDEBUG_RECURSIVE_REPRESSION_COUNTER  * 2 << " recursive function messages suppressed ====" << G4endl;  \ 
  180                 G4FFGDEBUG_RECURSIVE_REPRESSION_COUNTER = 0; \ 
  182             G4FFG_FUNCTIONLEAVE__ \ 
  186         G4FFG_FUNCTIONLEAVE__ \ 
  194     #define G4FFG_DATA_FUNCTIONLEAVE__ \ 
  195     if(Verbosity_ & G4FFGEnumerations::REPRESS_DATA_STRUCTURE_DEBUG_MESSAGES)\ 
  197         G4FFGDEBUG_RECURSIVE_REPRESSION--; \ 
  198         if(G4FFGDEBUG_RECURSIVE_REPRESSION == 0) \ 
  200             if(G4FFGDEBUG_DATA_STRUCTURE_REPRESSION_COUNTER > 0) \ 
  203                 G4cout << "==== " << G4FFGDEBUG_DATA_STRUCTURE_REPRESSION_COUNTER * 2 << " data structure function messages suppressed ====" << G4endl;  \ 
  204                 G4FFGDEBUG_DATA_STRUCTURE_REPRESSION_COUNTER = 0; \ 
  206             G4FFG_FUNCTIONLEAVE__ \ 
  210         G4FFG_FUNCTIONLEAVE__ \ 
  215     #define G4FFG_FUNCTIONENTER__ G4FFG_DEPTH++; 
  216     #define G4FFG_SAMPLING_FUNCTIONENTER__ 
  217     #define G4FFG_RECURSIVE_FUNCTIONENTER__ 
  218     #define G4FFG_DATA_FUNCTIONENTER__ 
  219     #define G4FFG_FUNCTIONLEAVE__ G4FFG_DEPTH--; 
  220     #define G4FFG_SAMPLING_FUNCTIONLEAVE__ 
  221     #define G4FFG_RECURSIVE_FUNCTIONLEAVE__ 
  222     #define G4FFG_DATA_FUNCTIONLEAVE__