1 | /***********************************************************************
|
---|
2 | ** **
|
---|
3 | ** /----------------------------------------------\ **
|
---|
4 | ** | Delphes, a framework for the fast simulation | **
|
---|
5 | ** | of a generic collider experiment | **
|
---|
6 | ** \----------------------------------------------/ **
|
---|
7 | ** **
|
---|
8 | ** **
|
---|
9 | ** This package uses: **
|
---|
10 | ** ------------------ **
|
---|
11 | ** FastJet algorithm: Phys. Lett. B641 (2006) [hep-ph/0512210] **
|
---|
12 | ** Hector: JINST 2:P09005 (2007) [physics.acc-ph:0707.1198v2] **
|
---|
13 | ** FROG: [hep-ex/0901.2718v1] **
|
---|
14 | ** **
|
---|
15 | ** ------------------------------------------------------------------ **
|
---|
16 | ** **
|
---|
17 | ** Main authors: **
|
---|
18 | ** ------------- **
|
---|
19 | ** **
|
---|
20 | ** Severine Ovyn Xavier Rouby **
|
---|
21 | ** severine.ovyn@uclouvain.be xavier.rouby@cern **
|
---|
22 | ** **
|
---|
23 | ** Center for Particle Physics and Phenomenology (CP3) **
|
---|
24 | ** Universite catholique de Louvain (UCL) **
|
---|
25 | ** Louvain-la-Neuve, Belgium **
|
---|
26 | ** **
|
---|
27 | ** Copyright (C) 2008-2009, **
|
---|
28 | ** All rights reserved. **
|
---|
29 | ** **
|
---|
30 | ***********************************************************************/
|
---|
31 |
|
---|
32 | #include "LHCOConverter.h"
|
---|
33 | #include <iostream>
|
---|
34 | #include <string>
|
---|
35 | #include <fstream>
|
---|
36 | #include <sstream>
|
---|
37 | using namespace std;
|
---|
38 |
|
---|
39 |
|
---|
40 | //------------------------------------------------------------------------------
|
---|
41 | extern const float UNDEFINED;
|
---|
42 |
|
---|
43 | LHCOConverter::LHCOConverter(const string& inputroot, const string& inputlog):
|
---|
44 | inputfilename_(inputroot), inputlogname_(inputlog), outputfilename_(inputroot), valid_(true) {
|
---|
45 | if (inputfilename_ == "") {valid_ = false;}
|
---|
46 | else {
|
---|
47 | const unsigned int r_find = outputfilename_.rfind(".root");
|
---|
48 | if(r_find > outputfilename_.size()) {
|
---|
49 | cout << "ERROR: the extension of the input file is not '.root'. Exiting...\n"; valid_=false;
|
---|
50 | }
|
---|
51 | outputfilename_.replace(r_find,5,".lhco");
|
---|
52 | ofstream outfile( outputfilename_.c_str());
|
---|
53 | outfile.close();
|
---|
54 | cout << "INFO: " << outputfilename_ << " has been created\n";
|
---|
55 | }
|
---|
56 | }
|
---|
57 |
|
---|
58 | void LHCOConverter::CopyRunLogFile() {
|
---|
59 | if(!valid_) {cout << "Nothing done\n"; return; }
|
---|
60 | if(inputlogname_ == "") {
|
---|
61 | // re-creates the logrun file name from the rootfile name
|
---|
62 | inputlogname_ = inputfilename_;
|
---|
63 | const unsigned int r_find = inputlogname_.rfind(".root");
|
---|
64 | inputlogname_.replace(r_find,5,"_run.log");
|
---|
65 | }
|
---|
66 | ifstream infile( inputlogname_.c_str() );
|
---|
67 | if (!infile.good()) { cout << "Warning: no input logfile found\n"; return; }
|
---|
68 |
|
---|
69 | ofstream outfile( outputfilename_.c_str(),ios_base::app);
|
---|
70 |
|
---|
71 | // else, if find is found
|
---|
72 | string linereader;
|
---|
73 | while ( getline(infile,linereader) ) {
|
---|
74 | outfile << "## " << linereader << endl;
|
---|
75 | }
|
---|
76 | outfile << "##" << endl;
|
---|
77 | infile.close();
|
---|
78 | outfile.close();
|
---|
79 | }
|
---|
80 |
|
---|
81 | void LHCOConverter::ConvertExRootAnalysisToLHCO() {
|
---|
82 | if(!valid_) {cout << "Nothing done\n"; return; }
|
---|
83 | cout << "Creating " << outputfilename_ << endl;
|
---|
84 |
|
---|
85 | }
|
---|