Skip to content
Snippets Groups Projects
Commit 65af4865 authored by gerbaudo's avatar gerbaudo
Browse files

Fill the sim/hdw/simNotHdw/hdwNotSim counters for hdw bits from Daq Rob

Details:
This will allow us to make the hdw-sim comparison plots also for the
bits sent over the DAQ ROB.

Note that for the simulation histogram the entries will not be the
same as for the ROIB existing histo (prescaled filling).
parent 6d4590e9
No related merge requests found
......@@ -104,6 +104,10 @@ TrigL1TopoROBMonitor::TrigL1TopoROBMonitor(const std::string& name, ISvcLocator*
m_histTopoHdwNotSimOverflow(0),
m_histTopoProblems(0),
m_histInputLinkCRCfromROIConv(0),
m_histTopoDaqRobSimResult(0),
m_histTopoDaqRobHdwResult(0),
m_histTopoDaqRobSimNotHdwResult(0),
m_histTopoDaqRobHdwNotSimResult(0),
m_setTopoSimResult(false),
m_firstEvent(true)
{
......@@ -300,6 +304,10 @@ StatusCode TrigL1TopoROBMonitor::beginRun() {
unsigned int nProblems=m_problems.size();
CHECK( bookAndRegisterHist(rootHistSvc, m_histTopoProblems, "Problems", "Counts of various problems", nProblems, 0, nProblems) ) ;
CHECK( bookAndRegisterHist(rootHistSvc, m_histInputLinkCRCfromROIConv, "InputLinkCRCs","CRC flags for input links, from ROI via converter", 5, 0, 5) );
CHECK( bookAndRegisterHist(rootHistSvc, m_histTopoDaqRobSimResult, "SimDaqRobResults", "L1Topo simulation accepts, events with no overflows (DAQ ROB)", m_nTopoCTPOutputs, 0, m_nTopoCTPOutputs) );
CHECK( bookAndRegisterHist(rootHistSvc, m_histTopoDaqRobHdwResult, "HdwDaqRobResults", "L1Topo hardware accepts, events with no overflows (DAQ ROB)", m_nTopoCTPOutputs, 0, m_nTopoCTPOutputs) ) ;
CHECK( bookAndRegisterHist(rootHistSvc, m_histTopoDaqRobSimNotHdwResult, "SimNotHdwDaqRobResult", "L1Topo events with simulation accept and hardware fail, events with no overflows (DAQ ROB)", m_nTopoCTPOutputs, 0, m_nTopoCTPOutputs) );
CHECK( bookAndRegisterHist(rootHistSvc, m_histTopoDaqRobHdwNotSimResult, "HdwNotSimDaqRobResult", "L1Topo events with hardware accept and simulation fail, events with no overflows (DAQ ROB)", m_nTopoCTPOutputs, 0, m_nTopoCTPOutputs) );
// Next, apply x-bin labels to some histograms
......@@ -366,6 +374,10 @@ StatusCode TrigL1TopoROBMonitor::beginRun() {
m_histTopoCtpSimHdwEventComparison->GetXaxis()->SetBinLabel(binIndex+1,label.c_str());
m_histTopoCtpHdwEventComparison->GetXaxis()->SetBinLabel(binIndex+1,label.c_str());
m_histTopoDaqRobEventComparison->GetXaxis()->SetBinLabel(binIndex+1,label.c_str());
m_histTopoDaqRobSimResult->GetXaxis()->SetBinLabel(binIndex+1,label.c_str());
m_histTopoDaqRobHdwResult->GetXaxis()->SetBinLabel(binIndex+1,label.c_str());
m_histTopoDaqRobSimNotHdwResult->GetXaxis()->SetBinLabel(binIndex+1,label.c_str());
m_histTopoDaqRobHdwNotSimResult->GetXaxis()->SetBinLabel(binIndex+1,label.c_str());
}
}
......@@ -675,6 +687,18 @@ StatusCode TrigL1TopoROBMonitor::doCnvMon(bool prescalForDAQROBAccess) {
compBitSets("L1Topo hardware", "L1Topo DAQ ROB",
m_triggerBits, m_triggerBitsDaqRob,
m_histTopoDaqRobEventComparison);
if(m_overflowBitsDaqRob.none()){
for (unsigned int i=0; i< m_nTopoCTPOutputs; ++i){
m_histTopoHdwResult->Fill(i,m_triggerBitsDaqRob.test(i));
}
for (unsigned int i=0; i< m_nTopoCTPOutputs; ++i){
m_histTopoSimResult->Fill(i,m_topoSimResult.test(i));
}
for (unsigned int i=0; i< m_nTopoCTPOutputs; ++i){
m_histTopoSimNotHdwResult->Fill(i, m_topoSimResult.test(i) and not m_triggerBitsDaqRob.test(i));
m_histTopoHdwNotSimResult->Fill(i, m_triggerBitsDaqRob.test(i) and not m_topoSimResult.test(i));
}
} // if(overflow.none)
} // if(prescalForDAQROBAccess)
else {
ATH_MSG_DEBUG( "L1Topo DAQ ROB access via converter skipped due to prescale" );
......
......@@ -99,6 +99,10 @@ class TrigL1TopoROBMonitor:public AthAlgorithm {
TH1F* m_histInputLinkCRCfromROIConv;
TH1F* m_histTopoSimOverfl;
TH1F* m_histTopoHdwOverfl;
TH1F* m_histTopoDaqRobSimResult;
TH1F* m_histTopoDaqRobHdwResult;
TH1F* m_histTopoDaqRobSimNotHdwResult;
TH1F* m_histTopoDaqRobHdwNotSimResult;
std::bitset<m_nTopoCTPOutputs> m_triggerBits; //! trigger bits sent to CTP
std::bitset<m_nTopoCTPOutputs> m_overflowBits; //! overflow bits corresponding to CTP output
std::bitset<m_nTopoCTPOutputs> m_topoSimResult; //! simulation of CTP output
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment