320 IOVTime((*it)->stopRunNumber(),(*it)->stopLumiBlockNumber()));
323 std::string onlfolder;
324 std::string oflfolder;
328 onlfolder =
"/TRIGGER/LUMI/OnlPrefLumi";
329 oflfolder =
"/TRIGGER/OFLLUMI/OflPrefLumi";
333 onlfolder =
"/TRIGGER/LUMI/LBLESTONL";
334 oflfolder =
"/TRIGGER/OFLLUMI/LBLESTOFL";
341 m_lumi_database = m_lumionl + m_data_db;
342 m_parlumiestfolder = onlfolder;
344 m_lumi_database = m_lumioff + m_data_db;
345 m_parlumiestfolder = oflfolder;
348 m_trig_database = m_trigger + m_data_db;
349 m_lar_database = m_laroff + m_data_db;
350 m_bs_database = m_bsonl + m_data_db;
356 cq_lumi =
new CoolQuery(m_lumi_database, triggerchain);
362 cq_trigger =
new CoolQuery(m_trig_database, triggerchain);
371 cq_lar =
new CoolQuery(m_lar_database, triggerchain);
381 cq_bs =
new CoolQuery(m_bs_database, triggerchain);
400 m_totalPrescaleWLiveTime = 0.;
401 m_totalPrescale = 0.;
402 m_lumiWOPrescale = 0.;
410 m_livetime_l1acc = 0;
415 m_livtrig_totall1acc = 0;
421 m_livetime_beforeprescale = 0;
422 m_livetime_afterprescale = 0;
424 m_beforeprescale = 0;
425 m_totall1befpresc = 0;
431 m_totalgoodblock = 0;
434 m_clumiblocknbrend =0;
436 m_lbcollectionname =
"LumiBlocks";
437 m_triggerchain = triggerchain;
441 m_l1ratediveffxsec = 0.;
442 m_total_l1ratediveffxsec = 0.;
443 m_total_l1ratediveffxsecRun = 0.;
444 m_l1ratediveffxsec_recorded = 0.;
445 m_total_l1ratediveffxsec_recorded = 0.;
446 m_total_l1ratediveffxsecRun_recorded = 0.;
453 bool firstL1Missing =
true;
454 bool firstHLTMissing =
true;
456 std::set<cool::ValidityKey> lbrunset;
460 if (m_collsgrl!=0) {
delete m_collsgrl; m_collsgrl=0; }
461 if (m_makecollList) {
463 m_collsgrl->SetVersion(
"30");
464 m_collsgrl->AddMetaData(
"Query",
"Generated by LumiCalculator");
469 if (m_triglevel == 0){
471 if (triggerchain ==
"None") {
474 m_logger <<
Root::kWARNING <<
"Invalid trigger: [" << triggerchain <<
"] - will proceed with no trigger defined!" <<
Root::GEndl;
480 int reti = regcomp(&
regex,
"_[[:digit:]]?b[[:digit:]]+_", REG_EXTENDED);
483 reti = regexec(&
regex, triggerchain.c_str(), 0, NULL, 0);
484 if ( !reti && !m_usebs) {
485 m_logger <<
Root::kWARNING <<
"Trigger: [" << triggerchain <<
"] appears to be a b-jet trigger, but online beamspot validity not included in livefraction!" <<
Root::GEndl;
491 if (m_lumimethod !=
"") {
494 m_Lumiid = m_lumichannel;
508 std::map<cool::ValidityKey, CoolQuery::LumiFolderData> LumiDataMap;
511 std::map<cool::ValidityKey, cool::UInt63> L1starttime_map;
512 std::map<cool::ValidityKey, cool::UInt63> L1endtime_map;
515 std::map<cool::ValidityKey, CoolQuery::L1CountFolderData> Livetime_map;
516 std::map<cool::ValidityKey, CoolQuery::L1CountFolderData> L1accept_map;
520 IOVTime((*it)->stopRunNumber(),(*it)->stopLumiBlockNumber()));
531 m_t_totalgoodblock = 0;
532 m_t_totalbadblock = 0;
533 m_t_totall1befpresc = 0;
534 m_t_totalPrescaleWLiveTime = 0.;
535 m_t_totalPrescale = 0.;
536 m_t_lumiWOPrescale = 0. ;
544 if(m_lbstart_prev == m_lbstart && m_lbstop_prev == m_lbstop && m_runnbr_prev == m_runnbr){
545 m_logger <<
Root::kWARNING <<
"Skipping multiply stored IOVRange: [" << m_lbstart <<
"-" << m_lbstop <<
"]" <<
Root::GEndl;
550 if ( m_runnbr!=m_runnbr_prev ) {
552 if (m_runnbr < m_minrun) m_minrun = m_runnbr;
553 if (m_runnbr > m_maxrun) m_maxrun = m_runnbr;
556 m_total_l1ratediveffxsecRun=0.;
557 m_total_l1ratediveffxsecRun_recorded=0.;
568 m_triggerlowerchains.clear();
570 m_L1triggerchains.clear();
573 std::string lowerch =
"";
576 if(m_triglevel == 3){
577 m_L3id = cq_trigger->
getHLTChannelId(triggerchain, m_parhltmenufolder);
581 m_triggerlowerchains.push_back(lowerch);
587 m_triggerlowerchains.push_back(lowerch);
589 m_L1id = cq_trigger->
getL1ChannelId(lowerch, m_parlvl1menufolder );
592 }
else if(m_triglevel == 2){
594 m_triggerlowerchains.push_back(lowerch);
595 m_L2id = cq_trigger->
getHLTChannelId(triggerchain, m_parhltmenufolder);
598 ParseL1Trigger(lowerch, cq_trigger);
600 }
else if(m_triglevel == 1){
602 ParseL1Trigger(triggerchain, cq_trigger);
605 if (firstL1Missing && (!m_L1Valid && m_triglevel > 0)) {
606 firstL1Missing =
false;
610 if (firstHLTMissing && ((!m_L2Valid && m_triglevel > 1) || (!m_L3Valid && m_triglevel > 2)) ) {
611 firstHLTMissing =
false;
618 if(m_uselivetrigger){
619 m_LiveL1id = cq_trigger->
getL1ChannelId(m_livetrigger, m_parlvl1menufolder);
624 m_LiveValid = m_L1Valid;
628 if (m_uselivetrigger)
629 m_logger <<
Root::kWARNING <<
"Runnumber: [" << m_runnbr <<
"] can't find livefraction trigger [" << m_livetrigger <<
"]! Livefraction won't be calculated!" <<
Root::GEndl;
631 m_logger <<
Root::kWARNING <<
"Runnumber: [" << m_runnbr <<
"] can't find trigger [" << triggerchain <<
"]! Livefraction won't be calculated!" <<
Root::GEndl;
640 Livetime_map.clear();
641 L1accept_map.clear();
647 if (m_L1Valid && m_triglevel >= 1)
651 L1starttime_map.clear();
652 L1endtime_map.clear();
661 cool::ValidityKey runstarttime = L1starttime_map.begin()->second;
662 cool::ValidityKey runendtime = L1endtime_map.rbegin()->second;
664 cq_lar->
setIOV(runstarttime, runendtime);
665 LArObj = cq_lar->
getIOVData<cool::UInt32>(
"EventVeto", m_parlareventvetofolder, 0, m_lartag);
674 BSObj = cq_bs->
getIOVData<cool::Int32>(
"status", m_paronlbeamspotfolder, 0, m_bstag);
681 LumiDataMap = cq_lumi->
getLumiFolderData(m_parlumiestfolder, m_lumitag, m_Lumiid);
686 m_lbstart_prev = m_lbstart;
687 m_lbstop_prev = m_lbstop;
688 m_runnbr_prev = m_runnbr;
695 m_logger <<
Root::kINFO <<
"Beginning calculation for ";
696 if (m_triglevel > 0) {
697 m_logger <<
Root::kINFO <<
"Trigger " << m_triggerchain;
698 if(m_triggerlowerchains.size() > 0){
706 m_logger <<
Root::kINFO <<
"Run " << m_runnbr <<
" LB [" << m_lbstart <<
"-" << m_lbstop <<
"]" <<
Root::GEndl;
718 if (m_L1idList.size() <= 1) {
719 L1preObj = cq_trigger->
getIOVData<cool::Int32>(
"Lvl1Prescale", m_parlvl1prescalesfolder, m_L1id);
727 L1preObj = cq_trigger->
getIOVData<cool::Int32>(
"Lvl1Prescale", m_parlvl1prescalesfolder, m_L1idList[0]);
730 std::list< std::pair<IOVRange, cool::Int32> >
::iterator it;
732 m_logger <<
Root::kINFO << std::setw(10) << std::left << m_L1triggerchains[0];
733 for(
it = L1preObj.
data.begin();
it != L1preObj.
data.end(); ++
it) {
734 m_logger <<
Root::kINFO << std::setw(1) << std::left <<
"[" <<
it->first.start().event() <<
"," <<
it->first.stop().event()-1 <<
"]:" ;
737 m_logger <<
it->second <<
", ";
739 m_logger << (0xFFFFFF /
float(0x1000000 -
it->second)) <<
", ";
744 for (
unsigned int iid=1; iid < m_L1idList.size(); iid++) {
745 L1preOther = cq_trigger->
getIOVData<cool::Int32>(
"Lvl1Prescale", m_parlvl1prescalesfolder, m_L1idList[iid]);
748 m_logger <<
Root::kINFO << std::setw(10) << std::left << m_L1triggerchains[iid];
749 for(
it = L1preOther.
data.begin();
it != L1preOther.
data.end(); ++
it) {
750 m_logger <<
Root::kINFO << std::setw(1) << std::left <<
"[" <<
it->first.start().event() <<
"," <<
it->first.stop().event()-1 <<
"]:" ;
753 m_logger <<
it->second <<
", ";
755 m_logger << (0xFFFFFF /
float(0x1000000 -
it->second)) <<
", ";
761 std::list< std::pair<IOVRange, cool::Int32> >
::iterator it2;
762 for(
it1 = L1preObj.
data.begin(), it2 = L1preOther.
data.begin();
it1 != L1preObj.
data.end(); ++
it1, ++it2) {
765 if ((it2->second > 0) && (
it1->second > it2->second)) {
767 if ((
it1->second > 1) && (it2->second > 1)) {
768 m_logger <<
Root::kWARNING <<
"L1 Prescales combined with both triggers prescaled for Run " << m_runnbr <<
"!" <<
Root::GEndl;
770 it1->second = it2->second;
777 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"L1 Pre:";
778 for(
it = L1preObj.
data.begin();
it != L1preObj.
data.end(); ++
it) {
779 m_logger <<
Root::kINFO << std::setw(1) << std::left <<
"[" <<
it->first.start().event() <<
"," <<
it->first.stop().event()-1 <<
"]:" ;
782 m_logger <<
it->second <<
", ";
784 m_logger << (0xFFFFFF /
float(0x1000000 -
it->second)) <<
", ";
794 L2preObj = cq_trigger->
getIOVData<cool::Float>(
"Prescale", m_parhltprescalesfolder, 20000 + m_L2id);
797 L2preObj = cq_trigger->
getIOVData<cool::Float>(
"Prescale", m_parhltprescalesfolder, 2*m_L2id);
802 L3preObj = cq_trigger->
getIOVData<cool::Float>(
"Prescale", m_parhltprescalesfolder, 2*m_L3id+1);
806 L1starttime_map.clear();
807 L1endtime_map.clear();
812 if (L1starttime_map.begin()->first > iovr->
start().
re_time() || L1starttime_map.rbegin()->first < iovr->
stop().
re_time()) {
813 m_lbstart = (L1starttime_map.begin()->first & 0xFFFFFFFF);
814 m_lbstop = (L1starttime_map.rbegin()->first & 0xFFFFFFFF);
815 m_logger <<
Root::kINFO <<
"Restricting to valid ATLAS lumi block range [" << m_lbstart <<
"-" << m_lbstop <<
"]" <<
Root::GEndl;
825 int firstMissing = -1;
826 int lastMissing = -1;
828 for (cool::ValidityKey currentVK = L1starttime_map.begin()->first; currentVK <= L1starttime_map.rbegin()->first; currentVK++) {
834 m_clumiblocknbr = curIOV.
event();
835 m_clumiblocknbrend = curIOV.
event()+1;
838 if (lbrunset.count(curIOV.
re_time()) != 0) {
842 lbrunset.insert(curIOV.
re_time());
846 m_totalgoodblock += 1;
847 m_t_totalgoodblock += 1;
853 if (itOL == LumiDataMap.end()) {
858 if (firstMissing < 0) {
860 firstMissing = curIOV.
event();
861 lastMissing = firstMissing;
862 }
else if (
int(curIOV.
event()) == (lastMissing+1)) {
864 lastMissing = curIOV.
event();
867 if (firstMissing == lastMissing) {
868 m_logger <<
Root::kWARNING <<
"Luminosity info not found for Run " << m_runnbr <<
" LB " << firstMissing <<
" !" <<
Root::GEndl;
870 m_logger <<
Root::kWARNING <<
"Luminosity info not found for Run " << m_runnbr <<
" LB [" << firstMissing <<
"-" << lastMissing <<
"] !" <<
Root::GEndl;
872 firstMissing = curIOV.
event();
873 lastMissing = firstMissing;
877 if (currentVK == L1starttime_map.rbegin()->first) {
878 if (firstMissing == lastMissing) {
879 m_logger <<
Root::kWARNING <<
"Luminosity info not found for Run " << m_runnbr <<
" LB " << firstMissing <<
" !" <<
Root::GEndl;
881 m_logger <<
Root::kWARNING <<
"Luminosity info not found for Run " << m_runnbr <<
" LB [" << firstMissing <<
"-" << lastMissing <<
"] !" <<
Root::GEndl;
893 if (firstMissing >= 0) {
894 if (firstMissing == lastMissing) {
895 m_logger <<
Root::kWARNING <<
"Luminosity info not found for Run " << m_runnbr <<
" LB " << firstMissing <<
" !" <<
Root::GEndl;
897 m_logger <<
Root::kWARNING <<
"Luminosity info not found for Run " << m_runnbr <<
" LB [" << firstMissing <<
"-" << lastMissing <<
"] !" <<
Root::GEndl;
908 m_instLumi = (itOL->second).LBAvInstLumi;
909 m_AvEvtsPerBX = (itOL->second).LBAvEvtsPerBX;
910 m_Valid = (itOL->second).Valid;
915 m_beforeprescale = 0.;
916 m_afterprescale = 0.;
926 if(m_L1Valid && m_triglevel > 0) {
931 m_l1prescale = L1preObj.
getValue(curIOV);
933 m_l1prescale = 0xFFFFFF /
float(0x1000000 - L1preObj.
getValue(curIOV));
936 m_l1prescale = L1preObj.
getValue(curIOV);
939 if (m_triglevel >=2) {
943 m_l2prescale = L2preObj.
getValue(curIOV);
953 if(m_triglevel == 3){
957 m_l3prescale = L3preObj.
getValue(curIOV);
973 m_livetime_l1acc = l1count.
L1Accept;
974 if(m_livetime_afterprescale > 0.){
975 m_livefrac = m_livetime_l1acc/(
float)m_livetime_afterprescale;
981 if (m_runnbr == 286367) {
985 if (m_runnbr == 281385) {
986 if (m_clumiblocknbr <= 196) {
988 }
else if (m_clumiblocknbr <= 374) {
994 if(m_livetime_beforeprescale > 0 && m_livetime_afterprescale <= 0 ){
995 std::string ttrig =
"";
996 ttrig = triggerchain;
997 if(m_uselivetrigger)ttrig = m_livetrigger;
998 m_logger <<
Root::kWARNING <<
"L1 counts after prescale (before veto) are 0.0 for trigger " << ttrig <<
"! Livefraction set to zero!" <<
Root::GEndl;
999 m_logger <<
Root::kWARNING <<
"Try using a high rate L1 trigger for livetime calculation: --livetrigger=<high rate L1 trigger> " <<
Root::GEndl;
1000 m_logger <<
Root::kINFO << m_runnbr <<
"[" << m_clumiblocknbr <<
"]: L1Acc: " << m_l1acc <<
", AfterPrescale: " << m_afterprescale <<
", L1Presc: " << m_l1prescale <<
Root::GEndl;
1006 cool::ValidityKey lbstarttime = L1starttime_map.find(currentVK)->second;
1007 cool::ValidityKey lbendtime = L1endtime_map.find(currentVK)->second;
1017 std::list<std::pair<IOVRange, cool::UInt32> > larlist;
1020 for (
std::list<std::pair<IOVRange, cool::UInt32> >::
iterator it = larlist.begin();
it != larlist.end(); ++
it) {
1021 if (
it->second == 0)
continue;
1022 float dtime = (
it->first.stop().re_time() -
it->first.start().re_time())/1.E9;
1024 if (m_verbose ==
true) {
1025 m_logger <<
Root::kINFO <<
"Found LAr veto from " <<
it->first.start().re_time() <<
" to " <<
it->first.stop().re_time() <<
" = " << dtime <<
" seconds" <<
Root::GEndl;
1045 if(m_verbose ==
true){
1046 m_logger <<
Root::kINFO << m_runnbr <<
"[" << m_clumiblocknbr <<
"]: Online beamspot invalid with Lumi=" << m_instLumi <<
" 10^30 cm-2 s-1" <<
Root::GEndl;
1053 l1count = L1accept_map.find(currentVK)->second;
1055 m_beforeprescaleof =
false;
1057 m_afterprescaleof =
false;
1061 m_deltaT = (lbendtime-lbstarttime)/1.E9;
1062 m_lbstarttime = lbstarttime/1.E9;
1063 m_lbendtime = lbendtime/1.E9;
1065 if (m_deltaT > 0.) m_larfrac = 1.-m_lartime/m_deltaT;
1068 if(m_onlinelumi ==
true){
1071 cool::UInt32 tempValid = (m_Valid & 1023);
1073 if(tempValid == 10){
1075 if((m_Valid >> 22) == 301
1076 || (m_Valid >> 22) == 302
1077 || (m_Valid >> 22) == 101
1078 || (m_Valid >> 22) == 102
1079 || (m_Valid >> 22) == 103
1080 || (m_Valid >> 22) == 104
1084 m_Valid = tempValid;
1087 m_Valid = tempValid;
1097 if(m_verbose ==
true){
1098 m_logger <<
Root::kINFO << m_runnbr <<
"[" << m_clumiblocknbr <<
"]: L1Acc: " << m_l1acc;
1099 if(m_uselivetrigger) m_logger <<
", Livetime trigger L1Acc: " << m_livetime_l1acc;
1100 m_logger <<
", InstLumi: " << m_instLumi <<
", deltaT: " << m_deltaT <<
", AvEvtsPerBX: " << m_AvEvtsPerBX <<
", BeforePrescale: " << m_beforeprescale <<
", AfterPrescale: " << m_afterprescale;
1101 if (m_uselivetrigger) m_logger <<
", Livetime trigger BeforePrescale: " << m_livetime_beforeprescale <<
" Livetime trigger AfterPrescale: " << m_livetime_afterprescale;
1103 m_logger <<
", Livefrac: " << m_livefrac <<
", L1Presc: " << m_l1prescale <<
", HLTPresc: " << m_l2prescale <<
", Valid: " << m_Valid;
1105 m_logger <<
", Livefrac: " << m_livefrac <<
", L1Presc: " << m_l1prescale <<
", L2Presc: " << m_l2prescale <<
", L3Presc: " << m_l3prescale <<
", Valid: " << m_Valid;
1107 if (m_uselar) m_logger <<
", LAr ready fraction: " << m_larfrac;
1113 if(m_Valid%10 != 0){
1117 m_totalbadblock += 1;
1118 m_t_totalbadblock += 1;
1119 m_logger <<
Root::kWARNING <<
"Skipping lumiblock " << m_runnbr <<
"[" << m_clumiblocknbr <<
"] with invalid inst. lumi. (valid=" << m_Valid <<
")!" <<
Root::GEndl;
1121 }
else if ((m_triglevel > 0) && (m_l1prescale < 0. || m_l2prescale < 0. || m_l3prescale < 0.)) {
1124 m_totalbadblock += 1;
1125 m_t_totalbadblock += 1;
1126 m_logger <<
Root::kWARNING <<
"Lumiblock " << m_runnbr <<
"[" << m_clumiblocknbr <<
"] has a disabled or incorrectly specified trigger.! " <<
Root::GEndl;
1135 m_totalDelL += (m_deltaT*m_instLumi);
1136 m_t_totalDelL += (m_deltaT*m_instLumi);
1137 m_t_deltaT += m_deltaT;
1140 m_totall1acc += m_l1acc;
1141 m_livtrig_totall1acc += m_livetime_l1acc;
1142 m_t_l1acc += m_l1acc;
1143 m_totall1befpresc += m_beforeprescale;
1144 m_t_totall1befpresc += m_beforeprescale;
1145 m_totall2acc += m_l2acc;
1146 m_t_l2acc += m_l2acc;
1147 m_totall3acc += m_l3acc;
1148 m_t_l3acc += m_l3acc;
1149 m_livetime = m_livefrac*m_deltaT;
1150 m_totaltime += m_livetime;
1151 m_t_totaltime += m_livetime;
1153 double totalPrescale = m_l1prescale * m_l2prescale * m_l3prescale;
1156 if (m_l1prescale < 0. ) totalPrescale = 0.;
1157 if (m_l2prescale < 0. ) totalPrescale = 0.;
1158 if (m_l3prescale < 0. ) totalPrescale = 0.;
1161 if (m_triglevel == 0) totalPrescale = 1.;
1165 m_lumiWOPrescale += m_livetime*m_instLumi ;
1166 m_t_lumiWOPrescale += m_livetime*m_instLumi ;
1168 m_lumiLAr += m_livetime*m_larfrac*m_instLumi;
1169 m_t_lumiLAr += m_livetime*m_larfrac*m_instLumi;
1171 if (totalPrescale > 0.) {
1172 m_totalPrescaleWLiveTime += m_livetime/totalPrescale;
1173 m_t_totalPrescaleWLiveTime += m_livetime/totalPrescale;
1174 m_totalPrescale += 1./totalPrescale;
1175 m_t_totalPrescale += 1./totalPrescale;
1176 m_intLumi = m_larfrac * m_livetime * m_instLumi/totalPrescale;
1180 m_totalL += m_intLumi;
1181 m_t_totalL += m_intLumi;
1182 m_totalLRun += m_intLumi;
1186 m_l1rate = ( m_livetime>0 ? m_l1acc / m_livetime : 0. );
1187 m_l2rate = ( m_livetime>0 ? m_l2acc / m_livetime : 0. );
1188 m_l3rate = ( m_livetime>0 ? m_l3acc / m_livetime : 0. );
1191 m_l1ratediveffxsec = (
float)m_afterprescale/( m_deltaT*m_effxsec );
1192 m_total_l1ratediveffxsec += (
float)m_afterprescale / m_effxsec ;
1193 m_total_l1ratediveffxsecRun += (
float)m_afterprescale / m_effxsec ;
1196 m_l1ratediveffxsec_recorded = (
float)m_l1acc /( m_deltaT*m_effxsec );
1197 m_total_l1ratediveffxsec_recorded += (
float)m_l1acc / m_effxsec ;
1198 m_total_l1ratediveffxsecRun_recorded += (
float)m_l1acc / m_effxsec ;
1200 if (m_collsgrl!=0) {
1201 if ( m_l1rate>=m_mintrigrate )
1202 m_collsgrl->AddRunLumiBlock(m_runnbr,m_clumiblocknbr);
1207 m_logger <<
Root::kINFO <<
"L1rate a/ prescale: " << m_afterprescale <<
", Delivered LumiFromL1rate (/ub): " << m_l1ratediveffxsec <<
", Delivered TotalLumiFromL1rate (/ub): " << m_total_l1ratediveffxsec
1211 if(m_LumiTree != 0)m_LumiTree->Fill();
1216 m_logger <<
Root::kINFO<< std::setw(10) << std::right <<
"Run" << std::setw(10) << std::right <<
"L1-Acc" << std::setw(10) << std::right <<
"L2-Acc" << std::setw(10) << std::right <<
"L3-Acc" << std::setw(10) << std::right <<
"LiveTime" << std::setw(18) << std::right <<
"IntL rec.(ub^-1)" << std::setw(18) << std::right <<
"IntL del.(ub^-1)" <<
Root::GEndl;
1217 m_logger <<
Root::kINFO<< std::setw(10) << std::right << m_runnbr << std::setw(10) << std::right << m_t_l1acc << std::setw(10) << std::right << m_t_l2acc << std::setw(10) << std::right << m_t_l3acc << std::setw(10) << std::right << m_t_totaltime << std::setw(18) << std::right << m_t_totalL << std::setw(18) << std::right << m_t_totalDelL <<
Root::GEndl;
1220 m_logger <<
Root::kINFO<< std::setw(10) << std::left <<
"L1/2/3 accept: " << std::setw(10) << std::left << m_t_l1acc << std::setw(10) << std::left << m_t_l2acc << std::setw(10) << std::left << m_t_l3acc <<
Root::GEndl;
1221 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"L1BeforePresc: " << std::setw(10) << std::left << m_t_totall1befpresc <<
Root::GEndl;
1223 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"Prescale Weighted Livetime: " << m_t_totalPrescaleWLiveTime <<
Root::GEndl;
1224 m_logger <<
Root::kINFO<< std::setw(10) << std::left <<
"Good LBs : " << m_t_totalgoodblock - m_t_totalbadblock <<
Root::GEndl;
1225 m_logger <<
Root::kINFO<< std::setw(10) << std::left <<
"Bad LBs : " << m_t_totalbadblock <<
Root::GEndl;
1227 if ( m_effxsec==1.0 ) {
1228 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"IntL delivered (ub^-1) : " << m_t_totalDelL <<
Root::GEndl;
1229 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"IntL after livefraction (ub^-1): " << m_t_lumiWOPrescale <<
Root::GEndl;
1231 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"IntL after LAr fraction (ub^-1): " << m_t_lumiLAr <<
Root::GEndl;
1232 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"IntL recorded after prescale (ub^-1) : " << m_t_totalL <<
Root::GEndl;
1234 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"IntL delived (ub^-1) : " << m_total_l1ratediveffxsec <<
Root::GEndl;
1235 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"IntL recorded (ub^-1) : " << m_total_l1ratediveffxsec_recorded <<
Root::GEndl;
1239 if(m_triglevel >= 1){
1241 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"L1 Prescales: ";
1243 std::list< std::pair<IOVRange, cool::Int32> >
::iterator it;
1244 for(
it = L1preObj.
data.begin();
it != L1preObj.
data.end(); ++
it) {
1245 m_logger <<
Root::kINFO << std::setw(1) << std::left <<
"[" <<
it->first.start().event() <<
"," <<
it->first.stop().event()-1 <<
"]:" ;
1248 m_logger <<
it->second <<
", ";
1250 m_logger << (0xFFFFFF /
float(0x1000000 -
it->second)) <<
", ";
1252 m_logger <<
it->second <<
", ";
1258 if(m_triglevel >= 2){
1261 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"HLT Prescales: ";
1264 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"L2 Prescales: ";
1267 std::list< std::pair<IOVRange, cool::Float> >
::iterator it;
1268 for(
it = L2preObj.
data.begin();
it != L2preObj.
data.end(); ++
it) {
1269 m_logger <<
Root::kINFO << std::setw(1) << std::left <<
"[" <<
it->first.start().event() <<
"," <<
it->first.stop().event()-1 <<
"]:" <<
it->second <<
", ";
1274 if(m_triglevel == 3){
1276 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"L3 Prescales: ";
1278 std::list< std::pair<IOVRange, cool::Float> >
::iterator it;
1279 for(
it = L3preObj.
data.begin();
it != L3preObj.
data.end(); ++
it) {
1280 m_logger <<
Root::kINFO << std::setw(1) << std::left <<
"[" <<
it->first.start().event() <<
"," <<
it->first.stop().event()-1 <<
"]:" <<
it->second <<
", ";
1293 m_logger <<
Root::kINFO<< std::setw(10) << std::right <<
"Total" << std::setw(10) << std::right <<
"L1-Acc" << std::setw(10) << std::right <<
"L2-Acc" << std::setw(10) << std::right <<
"L3-Acc" <<
1294 std::setw(10) << std::right <<
"LiveTime" << std::setw(18) << std::right <<
"IntL rec.(ub^-1)" << std::setw(18) << std::right <<
"IntL del.(ub^-1)" <<
Root::GEndl;
1295 m_logger <<
Root::kINFO<< std::setw(10) << std::right <<
"" << std::setw(10) << std::right << m_totall1acc << std::setw(10) << std::right << m_totall2acc << std::setw(10) << std::right
1296 << m_totall3acc << std::setw(10) << std::right << m_totaltime << std::setw(18) << std::right << m_totalL << std::setw(18) << std::right << m_totalDelL <<
Root::GEndl;
1297 m_logger <<
Root::kINFO<< std::setw(10) << std::left <<
"Total L1/2/3 accept: " << std::setw(10) << std::left << m_totall1acc << std::setw(10) << std::left << m_totall2acc << std::setw(10)
1299 if(m_uselivetrigger)m_logger <<
Root::kINFO<< std::setw(10) << std::left <<
"Total L1 livetime trigger accept: " << std::setw(10) << std::left << m_livtrig_totall1acc <<
Root::GEndl;
1301 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"First Run: " << std::setw(10) << std::left << m_minrun <<
Root::GEndl;
1302 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"Last Run: " << std::setw(10) << std::left << m_maxrun <<
Root::GEndl;
1303 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"Total L1BeforePresc: " << std::setw(10) << std::left << m_totall1befpresc <<
Root::GEndl;
1304 m_logger <<
Root::kINFO<< std::setw(10) << std::left <<
"Total Livetime : " << m_totaltime <<
Root::GEndl;
1305 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"Total prescale weighted Livetime: " << m_totalPrescaleWLiveTime <<
Root::GEndl;
1306 m_logger <<
Root::kINFO<< std::setw(10) << std::left <<
"Total Good LBs : " << m_totalgoodblock - m_totalbadblock <<
Root::GEndl;
1307 m_logger <<
Root::kINFO<< std::setw(10) << std::left <<
"Total Bad LBs : " << m_totalbadblock <<
Root::GEndl;
1308 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"Total IntL delivered (ub^-1) : " << m_totalDelL <<
Root::GEndl;
1309 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"Total IntL after livefraction (ub^-1): " << m_lumiWOPrescale <<
Root::GEndl;
1311 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"Total IntL after LAr fraction (ub^-1): " << m_lumiLAr <<
Root::GEndl;
1312 m_logger <<
Root::kINFO << std::setw(10) << std::left <<
"Total IntL recorded (ub^-1) : " << m_totalL <<
Root::GEndl;
1316 if(m_makecollList ==
true){
1318 if (m_collsgrl!=0) {
1319 TString collisionsxml =
"collisions_" + m_collsgrl->GetSuggestedName() +
".xml";
1321 writer.SetGoodRunsList( *m_collsgrl );
1322 writer.SetFilename( collisionsxml.Data() );
1325 delete m_collsgrl; m_collsgrl=0;
1331 if(m_makePlots ==
true) { this->
MakePlots(triggerchain); }