17 std::ifstream orgJSON;
18 std::string command(
"printf ${CMSSW_BASE}/src/babymaker/data/");
19 std::string fullpath =
execute(command.c_str());
20 if(input ==
"golden"){
21 fullpath +=
"json/golden_Cert_246908-258714_13TeV_PromptReco_Collisions15_25ns_JSON.json";
22 }
else if(input ==
"nonblind"){
23 fullpath +=
"json/golden_Cert_271036-274240_13TeV_PromptReco_Collisions16_JSON.json";
24 }
else if(input ==
"json2p6"){
25 fullpath +=
"json/golden_Cert_271036-274443_13TeV_PromptReco_Collisions16.json";
29 orgJSON.open(fullpath.c_str());
30 std::vector<int> VRunLumi;
31 if(orgJSON.is_open()){
35 while(!orgJSON.eof()){
36 char next = orgJSON.peek();
37 if( next ==
'1' || next ==
'2' || next ==
'3' ||
38 next ==
'4' || next ==
'5' || next ==
'6' ||
39 next ==
'7' || next ==
'8' || next ==
'9' ||
42 VRunLumi.push_back(inInt);
45 getline(orgJSON,str,
' ');
53 std::cout<<
"Invalid JSON File:"<<fullpath<<
"!\n";
56 if(VRunLumi.size() == 0){
57 std::cout<<
"No Lumiblock found in JSON file\n";
59 std::vector< std::vector<int> > VVRunLumi;
60 for(
unsigned int i = 0; i+2 < VRunLumi.size();){
61 if(VRunLumi[i] > 130000){
62 std::vector<int> RunLumi;
63 RunLumi.push_back(VRunLumi[i]);
64 while(VRunLumi[i+1] < 130000 && i+1 < VRunLumi.size()){
65 RunLumi.push_back(VRunLumi[i+1]);
68 VVRunLumi.push_back(RunLumi);
75 bool inJSON(std::vector< std::vector<int> > VVRunLumi,
int Run,
int LS){
81 for(
unsigned int i = 0; i < VVRunLumi.size();++i){
82 if(Run == VVRunLumi[i][0]){
83 for(
unsigned int j = 1; j+1 < VVRunLumi[i].size();j=j+2){
84 if(LS >= VVRunLumi[i][j] && LS <= VVRunLumi[i][j+1]){
95 for(
unsigned int i = 0; i < VVRunLumi.size();++i){
96 std::cout<<
"Run:"<<VVRunLumi[i][0]<<
" LS: ";
97 for(
unsigned int j = 1; j+1 < VVRunLumi[i].size();j=j+2){
98 std::cout<<VVRunLumi[i][j]<<
"-"<<VVRunLumi[i][j+1]<<
" ";
100 std::cout<<std::endl;
105 for(
unsigned int i = 0; i < VVRunLumi.size();++i){
106 for(
unsigned int j = 1; j+1 < VVRunLumi[i].size();j=j+2){
107 if(VVRunLumi[i][j] == VVRunLumi[i][j+1]){
108 std::cout<<VVRunLumi[i][0]<<
" "<<VVRunLumi[i][j]<<std::endl;
111 for(
int k=VVRunLumi[i][j];k<=VVRunLumi[i][j+1];++k){
112 std::cout<<VVRunLumi[i][0]<<
" "<<k<<std::endl;
116 std::cout<<std::endl;
void CheckVRunLumi(std::vector< std::vector< int > > VVRunLumi)
std::vector< std::vector< int > > MakeVRunLumi(std::string input)
void CheckVRunLumi2(std::vector< std::vector< int > > VVRunLumi)
bool inJSON(std::vector< std::vector< int > > VVRunLumi, int Run, int LS)
std::string execute(const std::string &cmd)