Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • converters/root2lhco.cpp

    rc3547ed r2971ebb  
    107107//------------------------------------------------------------------------------
    108108
    109 LHCOWriter::LHCOWriter(ExRootTreeReader *treeReader, FILE *outputFile, string jetBranchName) :
     109LHCOWriter::LHCOWriter(ExRootTreeReader *treeReader, FILE *outputFile, string JetBranchName) :
    110110  fTriggerWord(0), fEventNumber(1), fTreeReader(0), fOutputFile(0),
    111111  fBranchEvent(0), fBranchTrack(0), fBranchTower(0), fBranchPhoton(0),
     
    128128  fBranchMuon = fTreeReader->UseBranch("Muon");
    129129  // reconstructed jets
    130   fBranchJet = fTreeReader->UseBranch(jetBranchName.c_str());
     130  fBranchJet = fTreeReader->UseBranch(JetBranchName.c_str());
    131131  // missing transverse energy
    132132  fBranchMissingET = fTreeReader->UseBranch("MissingET");
     
    436436//---------------------------------------------------------------------------
    437437
    438 vector<string> ArgSplitter(char *arg)
    439 {
    440   string s = arg;
    441   string delimiter = "=";
    442   vector<string> result;
    443   size_t first = 0, last = 0;
    444 
    445   while((last = s.find(delimiter, first)) != string::npos)
    446   {
    447     result.push_back(s.substr(first, last - first));
    448     first = last + delimiter.length();
    449   }
    450 
    451   result.push_back(s.substr(first, last));
    452 
    453   return result;
    454 }
    455 
    456 //---------------------------------------------------------------------------
     438pair<string,string> stringToOption(string s) {
     439
     440        string delimiter = "=";
     441
     442        vector<string> vs;
     443        pair<string,string> res;
     444
     445        size_t pos = 0;
     446        string token;
     447        while ((pos = s.find(delimiter)) != std::string::npos) {
     448            token = s.substr(0, pos);
     449            //cout << token << std::endl;
     450                        vs.push_back(token);
     451            s.erase(0, pos + delimiter.length());
     452        }
     453
     454        //std::cout << s << std::endl;
     455        vs.push_back(s);
     456
     457        if (vs.size()==2){
     458                res.first=vs[0];
     459                res.second=vs[1];
     460        }
     461
     462        return res;
     463
     464}
     465
    457466
    458467int main(int argc, char *argv[])
    459468{
    460   int i, j;
    461469  char appName[] = "root2lhco";
    462470  stringstream message;
     
    466474  ExRootTreeReader *treeReader = 0;
    467475  Long64_t entry, allEntries;
    468   string jetBranchName = "Jet";
    469   vector<string> result;
     476  string  JetBranchName="Jet";
    470477
    471478  if(argc < 2 || argc > 4)
    472479  {
    473     cerr << " Usage: " << appName << " input_file" << " [output_file] [--jet-branch=Jet]" << endl;
     480    cerr << " Usage: " << appName << " input_file" << " [output_file]  [--jet-branch=Jet]" << endl;
    474481    cerr << " input_file - input file in ROOT format," << endl;
    475482    cerr << " output_file - output file in LHCO format," << endl;
    476483    cerr << " with no output_file, or when output_file is -, write to standard output." << endl;
     484    cerr << " in order to specify the jet-branch name the output_file cannot be omitted." << endl;
    477485    return 1;
    478486  }
    479487
    480   i = 2;
    481   while(i < argc)
    482   {
    483     result = ArgSplitter(argv[i]);
    484 
    485     if(result.size() == 2 && result[0] == "--jet-branch")
    486     {
    487       jetBranchName = result[1];
    488       for(j = i + 1; j < argc; ++j) argv[j - 1] = argv[j];
    489       --argc;
    490     }
    491     else
    492     {
    493       ++i;
    494     }
    495   }
    496   cerr << "** Using the jet branch named " << jetBranchName << endl;
     488  for(int iarg=3; iarg< argc    ; iarg++){
     489
     490                string argument=argv[iarg];
     491                pair<string,string> option;
     492                option=stringToOption(argument);
     493
     494                if ( option.first == "--jet-branch" ) {
     495      JetBranchName = option.second;
     496      cout << " Using the jet branch named " << JetBranchName << endl;
     497    }
     498        }
     499  cout << " Using the default jet branch named " << JetBranchName << endl;
     500
    497501
    498502  signal(SIGINT, SignalHandler);
     
    535539    {
    536540      // Create LHC Olympics converter:
    537       writer = new LHCOWriter(treeReader, outputFile, jetBranchName);
     541      writer = new LHCOWriter(treeReader, outputFile, JetBranchName);
    538542
    539543      ExRootProgressBar progressBar(allEntries - 1);
Note: See TracChangeset for help on using the changeset viewer.