87 if (scalel1trigrate != 1.) {
122 std::string lumimethod;
123 int lumichannel = -1;
155 triggerchain.push_back(
"None");
172 bool uselivetrigger =
false;
177 uselivetrigger =
true;
189 std::list<std::pair<unsigned int, unsigned int> > runList;
201 if (
found != std::string::npos) {
212 runList.push_back( std::pair<unsigned int, unsigned int>(
val1,
val2) );
223 unsigned int runtype = 0;
229 std::cout << args_info.
tag_given <<
" TAG file(s) is given..." << std::endl;
231 tagfile.push_back(args_info.
tag_arg[
i]);
263 logger <<
Root::kERROR <<
"Please provide BOTH --root=\"myfile.root\" AND --tree=\"mytreename\" OR --d3pd_dir=\"mydirname\" options " <<
Root::GEndl;
320 std::list<std::pair<unsigned int, unsigned int> >
::iterator itr = runList.begin();
323 for (; itr != runList.end(); ++itr) {
325 if ((itr->first == minrunnum) || (itr->second == maxrunnum)) {
338 lbstart.push_back(minlbstart);
348 lbend.push_back(maxlbend);
366 std::vector< xAOD::LumiBlockRangeContainer* > iovcVec;
367 std::vector< std::vector<std::string> > triggerchainVec;
377 if (lbstart.size() != lbend.size()) {
399 iovc->setStore( iovcAux );
408 for(itstart = lbstart.begin(), itend = lbend.begin();
409 itstart != lbstart.end() && itend != lbend.end(); ++itstart,++itend) {
410 lbstart_val = (*itstart);
411 lbend_val = (*itend);
413 if (lbstart_val > lbend_val) {
428 for(itrun =
runnumber.begin(), itstart = lbstart.begin(), itend = lbend.begin();
429 itrun !=
runnumber.end() && itstart != lbstart.end() && itend != lbend.end();
430 ++itrun, ++itstart, ++itend) {
442 iovcVec.push_back(iovc);
443 triggerchainVec.push_back(triggerchain);
445 for (
unsigned int j=0; j<triggerchain.size(); ++j)
446 metadata[Form(
"TriggerName%d",j)] = TString(triggerchain[j]);
458 std::string connection =
"";
459 std::string
type =
"RootCollection";
463 int n = (*it).find(
".root");
464 std::string tagfilename = (*it).substr(0,
n);
469 if(collection == NULL) {
476 grlcollection =
reader.GetMergedGRLCollection();
478 for (
unsigned int j=0; j<grlcollection.size(); ++j) {
481 if ( grlcollection[j].HasTriggerInfo() ) {
482 triggerchainVec.push_back(grlcollection[j].GetTriggerList());
483 if (!triggerchain.empty())
485 <<
"> already contain trigger names. Cmd-line triggers are ignored!" <<
Root::GEndl;
487 triggerchainVec.push_back(triggerchain) ;
488 for (
unsigned int k=0;
k<triggerchain.size(); ++
k)
489 grlcollection[j].AddMetaData( Form(
"TriggerName%d",
k),TString(triggerchain[
k]) );
506 grlcollection =
reader.GetMergedGRLCollection();
508 for (
unsigned int j=0; j<grlcollection.size(); ++j) {
511 if ( grlcollection[j].HasTriggerInfo() ) {
512 triggerchainVec.push_back(grlcollection[j].GetTriggerList());
513 if (!triggerchain.empty())
515 <<
"> already contain trigger names. Cmd-line triggers are ignored!" <<
Root::GEndl;
517 triggerchainVec.push_back(triggerchain) ;
518 for (
unsigned int k=0;
k<triggerchain.size(); ++
k)
519 grlcollection[j].AddMetaData( Form(
"TriggerName%d",
k),TString(triggerchain[
k]) );
547 for(
int j=0; j<
list->GetEntries();++j) {
548 TObjString* objstr =
dynamic_cast<TObjString*
>(
list->At(j));
549 if (objstr==0)
continue;
550 if ( objstr->GetString().BeginsWith(
"<?xml version=\"1.0\"?") &&
551 objstr->GetString().Contains(
"DOCTYPE LumiRangeCollection") )
552 reader.AddXMLString(objstr->GetString());
560 grlcollection =
reader.GetMergedGRLCollection();
562 for (
unsigned int j=0; j<grlcollection.size(); ++j) {
565 if ( grlcollection[j].HasTriggerInfo() ) {
566 triggerchainVec.push_back(grlcollection[j].GetTriggerList());
567 if (!triggerchain.empty())
569 <<
"> already contain trigger names. Cmd-line triggers are ignored!" <<
Root::GEndl;
571 triggerchainVec.push_back(triggerchain) ;
572 for (
unsigned int k=0;
k<triggerchain.size(); ++
k)
573 grlcollection[j].AddMetaData( Form(
"TriggerName%d",
k),TString(triggerchain[
k]) );
591 TDirectoryFile *
dir = NULL;
593 dir =
dynamic_cast<TDirectoryFile*
>(
file->GetDirectory(d3pddirname.c_str()));
598 TObjString* objstr = 0;
599 std::map<TString,int> keymap;
602 for(
int j=0; j<
list->GetEntries();j++) {
603 if ( keymap.find(
list->At(j)->GetName())==keymap.end() ) { keymap[
list->At(j)->GetName()] = 1; }
604 else { keymap[
list->At(j)->GetName()] = keymap[
list->At(j)->GetName()]+1; }
606 objstr =
dynamic_cast<TObjString*
>(
dir->Get( Form(
"%s;%d",
list->At(j)->GetName(),keymap[
list->At(j)->GetName()]) ));
609 if ( objstr->GetString().BeginsWith(
"<?xml version=\"1.0\"?") &&
610 objstr->GetString().Contains(
"DOCTYPE LumiRangeCollection") ){
611 reader.AddXMLString(objstr->GetString());
627 grlcollection =
reader.GetMergedGRLCollection();
628 for (
unsigned int j=0; j<grlcollection.size(); ++j) {
631 if ( grlcollection[j].HasTriggerInfo() ) {
632 triggerchainVec.push_back(grlcollection[j].GetTriggerList());
633 if (!triggerchain.empty())
635 <<
"> already contain trigger names. Cmd-line triggers are ignored!" <<
Root::GEndl;
637 triggerchainVec.push_back(triggerchain) ;
638 for (
unsigned int k=0;
k<triggerchain.size(); ++
k)
639 grlcollection[j].AddMetaData( Form(
"TriggerName%d",
k),TString(triggerchain[
k]) );
651 if (runtype != 0 && runList.size() > 0) {
653 for (;iovIt != iovcVec.end(); ++iovIt) {
656 while (
it != (*iovIt)->end()) {
658 unsigned int runnum = (*it)->startRunNumber() ;
661 std::list<std::pair<unsigned int, unsigned int> >
::iterator runIt = runList.begin();
662 for (; runIt != runList.end(); ++runIt) {
663 if (runnum < runIt->
first)
continue;
664 if (
runnum > runIt->second)
continue;
670 logger <<
Root::kDEBUG <<
"Skipping run " << (*it)->startRunNumber() <<
" LB [" << (*it)->startLumiBlockNumber() <<
"-" << (*it)->stopLumiBlockNumber() <<
"] due to command-line run range" <<
Root::GEndl;
673 it = (*iovIt)->begin();
687 for (
unsigned int j=0; j<iovcVec.size(); ++j) {
689 triggerchain = triggerchainVec[j];
694 TTree
tree(
"LumiMetaData",
"LumiMetaData");
699 lumicalc.
UseMC(
false);
708 lumicalc.IntegrateLumi(iovc, (*
it));
722 if(!grlcollection.empty()){
723 TString
xmlfile =
"ilumicalc_merged_";
724 if (xmloutfile.empty()) {
725 if (grlcollection.size()==1) {
xmlfile += grlcollection[0].GetSuggestedName() +
".xml"; }
726 else {
xmlfile +=
"grls.xml"; }
727 }
else {
xmlfile = xmloutfile; }