24int main(
int argc, 
char **argv)
 
   37    JParser<> zap(
"Example program to test policy method for missing module data.");
 
   39    zap[
'a'] = 
make_field(detectorFile, 
"Detector file");
 
   40    zap[
'P'] = 
make_field(P,            
"Survival probability");
 
   41    zap[
'N'] = 
make_field(size,         
"Minimal size")           =  1;
 
   47  catch(
const exception &error) {
 
   48    FATAL(error.what() << endl);
 
   51  gRandom->SetSeed(seed);
 
   53  if (P <= 0.0 || P > 1.0) {
 
   54    FATAL(
"Invalid probability " << P << endl);
 
   78  for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
   79    strings[module->getString()].count += 1;
 
   84  for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
   85    if (gRandom->Rndm() <= P || strings[module->getString()].count == 1)
 
   86      buffer.insert(module->getID());
 
   88      strings[module->getString()].count -= 1;
 
   91  DEBUG(
"Number of modules " << buffer.size() << 
"/" << 
detector.size() << endl);
 
   94  const JPolicy policy(router, buffer.begin(), buffer.end(), size);
 
   96  for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
   98    const int id = 
module->getID();
 
  100    if (
debug >= debug_t || buffer.count(
id) == 0) {
 
  102      cout << 
"module: " << setw(10) << 
id    << 
' ' 
  103           << getLabel(module->getLocation()) << 
' ' 
  104           << buffer.count(
id)                << flush;
 
  106      if (buffer.count(
id) == 0) {
 
  110        if (module->getFloor() != 0) {
 
  112          const JPolicy::mapped_type result = policy.at(
id);
 
  114          for (JPolicy::mapped_type::const_iterator i = result.begin(); i != result.end(); ++i) {
 
  120          cout << 
' ' << 
"skip";
 
  127    if (module->getFloor() != 0) {
 
  128      ASSERT(buffer.count(
id) != 0 || !policy.at(
id).empty(), 
"Test policy module at " << module->getLocation());