15                                {
   16 
   18  string outFile;
   19 
   20  try {
   21 
   23 
   26 
   27    zap(argc,argv);
   28  }
   29  catch(const exception &error) {
   30    ERROR(error.what() << endl);
 
   31  }
   32 
   34  map_type zmap;
   35 
   36  for(vector<string>::const_iterator i = inputFiles.begin(); i != inputFiles.end(); ++i){
   37    cout << " Now processing: " << *i << endl;
   38    TFile in(i->c_str() , "read");
   39 
   40    TIter iter(in.GetListOfKeys());
   41 
   42    for(TKey *key; (
key = (TKey*) iter.Next()) != NULL; ){
 
   43 
   44      TH1* h = 
dynamic_cast<TH1*
>(
key->ReadObj());
 
   45 
   46      if( h != NULL){
   47 
   48        map_type::iterator p = zmap.find(h->GetName());
   49 
   50        if (p == zmap.end()){
   51 
   52          p = zmap.insert( make_pair( h->GetName(), (TH1*) h->Clone() )).first;
   53          
   54        } else {
   55 
   56          p->second->Add(h);
   57        }
   58      }
   59    }
   60 
   61    for (map_type::iterator i = zmap.begin(); i != zmap.end(); ++i) {
   62      i->second->SetDirectory(0);
   63    }
   64 
   65    in.Close();
   66  }
   67 
   68  TFile output(outFile.c_str() , "recreate") ;
   69  for (map_type::iterator i = zmap.begin(); i != zmap.end(); ++i) {
   70    
   71    TH1D* hist = (TH1D*) i->second;
   72    hist->Write();
   73  } 
   74  output.Close();
   75}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Utility class to parse command line options.
 
std::map< int, buffer_type > map_type
identifier -> hits