CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
DataModeScoutingRun3 Class Reference

#include <DAQSourceModelsScoutingRun3.h>

Inheritance diagram for DataModeScoutingRun3:
DataMode

Public Member Functions

bool checksumValid () override
 
bool dataBlockCompleted () const override
 
bool dataBlockInitialized () const override
 
uint64_t dataBlockSize () const override
 
 DataModeScoutingRun3 (DAQSource *daqSource)
 
int dataVersion () const override
 
std::pair< bool, std::vector< std::string > > defineAdditionalFiles (std::string const &primaryName, bool fileListMode) const override
 
void detectVersion (unsigned char *fileBuf, uint32_t fileHeaderOffset) override
 
void fillSDSRawDataCollection (SDSRawDataCollection &rawData, char *buff, size_t len)
 
bool fitToBuffer () const override
 
std::string getChecksumError () const override
 
uint32_t headerSize () const override
 
bool isRealData () const override
 
std::vector< std::shared_ptr< const edm::DaqProvenanceHelper > > & makeDaqProvenanceHelpers () override
 
void makeDataBlockView (unsigned char *addr, size_t maxSize, std::vector< uint64_t > const &fileSizes, size_t fileHeaderSize) override
 
void makeDirectoryEntries (std::vector< std::string > const &baseDirs, std::vector< int > const &numSources, std::string const &runDir) override
 
bool nextEventView () override
 
void readEvent (edm::EventPrincipal &eventPrincipal) override
 
bool requireHeader () const override
 
uint32_t run () const override
 
void setDataBlockInitialized (bool val) override
 
void setTCDSSearchRange (uint16_t MINTCDSuTCAFEDID, uint16_t MAXTCDSuTCAFEDID) override
 
bool versionCheck () const override
 
 ~DataModeScoutingRun3 () override
 
- Public Member Functions inherited from DataMode
 DataMode (DAQSource *daqSource)
 
virtual bool isMultiDir ()
 
void setTesting (bool testing)
 
virtual ~DataMode ()=default
 

Private Member Functions

bool makeEvents ()
 

Private Attributes

bool blockCompleted_ = true
 
std::vector< int > buNumSources_
 
std::vector< std::filesystem::path > buPaths_
 
std::vector< bool > completedBlocks_
 
unsigned int currOrbit_ = 0xFFFFFFFF
 
std::vector< std::shared_ptr< const edm::DaqProvenanceHelper > > daqProvenanceHelpers_
 
unsigned char * dataBlockAddr_ = nullptr
 
std::vector< unsigned char * > dataBlockAddrs_
 
bool dataBlockInitialized_ = false
 
size_t dataBlockMax_ = 0
 
std::vector< unsigned char * > dataBlockMaxAddrs_
 
uint16_t detectedFRDversion_ = 0
 
bool eventCached_ = false
 
std::vector< std::unique_ptr< edm::streamer::FRDEventMsgView > > events_
 
size_t fileHeaderSize_ = 0
 
size_t headerSize_ = 0
 
short numFiles_ = 0
 
std::vector< std::pair< int, int > > sourceValidOrbitPair_
 

Additional Inherited Members

- Protected Attributes inherited from DataMode
DAQSourcedaqSource_
 
bool testing_ = false
 

Detailed Description

Definition at line 20 of file DAQSourceModelsScoutingRun3.h.

Constructor & Destructor Documentation

◆ DataModeScoutingRun3()

DataModeScoutingRun3::DataModeScoutingRun3 ( DAQSource daqSource)
inline

Definition at line 22 of file DAQSourceModelsScoutingRun3.h.

22 : DataMode(daqSource) {}
DataMode(DAQSource *daqSource)

◆ ~DataModeScoutingRun3()

DataModeScoutingRun3::~DataModeScoutingRun3 ( )
inlineoverride

Definition at line 23 of file DAQSourceModelsScoutingRun3.h.

23 {}

Member Function Documentation

◆ checksumValid()

bool DataModeScoutingRun3::checksumValid ( )
overridevirtual

Implements DataMode.

Definition at line 184 of file DAQSourceModelsScoutingRun3.cc.

184 { return true; }

◆ dataBlockCompleted()

bool DataModeScoutingRun3::dataBlockCompleted ( ) const
inlineoverridevirtual

Implements DataMode.

Definition at line 91 of file DAQSourceModelsScoutingRun3.h.

References blockCompleted_.

◆ dataBlockInitialized()

bool DataModeScoutingRun3::dataBlockInitialized ( ) const
inlineoverridevirtual

Implements DataMode.

Definition at line 97 of file DAQSourceModelsScoutingRun3.h.

References dataBlockInitialized_.

◆ dataBlockSize()

uint64_t DataModeScoutingRun3::dataBlockSize ( ) const
inlineoverridevirtual

Implements DataMode.

Definition at line 37 of file DAQSourceModelsScoutingRun3.h.

References events_.

37  {
38  // get event size from the first data source (main)
39  return events_[0]->size();
40  }
std::vector< std::unique_ptr< edm::streamer::FRDEventMsgView > > events_

◆ dataVersion()

int DataModeScoutingRun3::dataVersion ( ) const
inlineoverridevirtual

Implements DataMode.

Definition at line 30 of file DAQSourceModelsScoutingRun3.h.

References detectedFRDversion_.

◆ defineAdditionalFiles()

std::pair< bool, std::vector< std::string > > DataModeScoutingRun3::defineAdditionalFiles ( std::string const &  primaryName,
bool  fileListMode 
) const
overridevirtual

Implements DataMode.

Definition at line 18 of file DAQSourceModelsScoutingRun3.cc.

References SiStripCommissioningSource_FromRAW_cfg::fileListMode, reco_skim_cfg_mod::fullpath, mps_fire::i, dqmiolumiharvest::j, EnsembleCalibrationLA_cfg::path, and to_string().

19  {
20  std::vector<std::string> additionalFiles;
21 
22  if (fileListMode) {
23  // Expected file naming when working in file list mode
24  for (int j = 1; j < buNumSources_[0]; j++) {
25  additionalFiles.push_back(primaryName + "_" + std::to_string(j));
26  }
27  return std::make_pair(true, additionalFiles);
28  }
29 
30  auto fullpath = std::filesystem::path(primaryName);
31  auto fullname = fullpath.filename();
32 
33  for (size_t i = 0; i < buPaths_.size(); i++) {
34  std::filesystem::path newPath = buPaths_[i] / fullname;
35 
36  if (i != 0) {
37  // secondary files from other ramdisks
38  additionalFiles.push_back(newPath.generic_string());
39  }
40 
41  // add extra sources from the same ramdisk
42  for (int j = 1; j < buNumSources_[i]; j++) {
43  additionalFiles.push_back(newPath.generic_string() + "_" + std::to_string(j));
44  }
45  }
46  return std::make_pair(true, additionalFiles);
47 }
std::vector< std::filesystem::path > buPaths_
static std::string to_string(const XMLCh *ch)

◆ detectVersion()

void DataModeScoutingRun3::detectVersion ( unsigned char *  fileBuf,
uint32_t  fileHeaderOffset 
)
inlineoverridevirtual

Implements DataMode.

Definition at line 31 of file DAQSourceModelsScoutingRun3.h.

References detectedFRDversion_.

31  {
32  detectedFRDversion_ = *((uint16_t*)(fileBuf + fileHeaderOffset));
33  }

◆ fillSDSRawDataCollection()

void DataModeScoutingRun3::fillSDSRawDataCollection ( SDSRawDataCollection rawData,
char *  buff,
size_t  len 
)

Definition at line 83 of file DAQSourceModelsScoutingRun3.cc.

References make_classfiles::buff, FEDRawData::data(), l1tstage2_dqm_sourceclient-live_cfg::rawData, FEDRawData::resize(), and objects.autophobj::sourceId.

83  {
84  size_t pos = 0;
85 
86  // get the source ID
87  int sourceId = *((uint32_t*)(buff + pos));
88  pos += 4;
89 
90  // size of the orbit paylod
91  size_t orbitSize = len - pos;
92 
93  // set the size (=orbit size) in the SRDColletion of the current source.
94  // FRD size is expecting 8 bytes words, while scouting is using 4 bytes
95  // words. This could be different for some future sources.
96  FEDRawData& fedData = rawData.FEDData(sourceId);
97  fedData.resize(orbitSize, 4);
98 
99  memcpy(fedData.data(), buff + pos, orbitSize);
100 
101  return;
102 }
void resize(size_t newsize, size_t wordsize=8)
Definition: FEDRawData.cc:28
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:24
buff
***.cc ################

◆ fitToBuffer()

bool DataModeScoutingRun3::fitToBuffer ( ) const
inlineoverridevirtual

Implements DataMode.

Definition at line 95 of file DAQSourceModelsScoutingRun3.h.

95 { return true; }

◆ getChecksumError()

std::string DataModeScoutingRun3::getChecksumError ( ) const
overridevirtual

◆ headerSize()

uint32_t DataModeScoutingRun3::headerSize ( ) const
inlineoverridevirtual

Implements DataMode.

Definition at line 34 of file DAQSourceModelsScoutingRun3.h.

References detectedFRDversion_, and edm::streamer::FRDHeaderVersionSize.

constexpr std::array< uint32, FRDHeaderMaxVersion+1 > FRDHeaderVersionSize

◆ isRealData()

bool DataModeScoutingRun3::isRealData ( ) const
inlineoverridevirtual

Implements DataMode.

Definition at line 81 of file DAQSourceModelsScoutingRun3.h.

References cms::cuda::assert(), and events_.

81  {
82  assert(!events_.empty());
83  return events_[0]->isRealData();
84  }
assert(be >=bs)
std::vector< std::unique_ptr< edm::streamer::FRDEventMsgView > > events_

◆ makeDaqProvenanceHelpers()

std::vector< std::shared_ptr< const edm::DaqProvenanceHelper > > & DataModeScoutingRun3::makeDaqProvenanceHelpers ( )
overridevirtual

Implements DataMode.

Definition at line 104 of file DAQSourceModelsScoutingRun3.cc.

104  {
105  //set SRD data collection
106  daqProvenanceHelpers_.clear();
107  daqProvenanceHelpers_.emplace_back(std::make_shared<const edm::DaqProvenanceHelper>(
108  edm::TypeID(typeid(SDSRawDataCollection)), "SDSRawDataCollection", "SDSRawDataCollection", "DAQSource"));
109  return daqProvenanceHelpers_;
110 }
std::vector< std::shared_ptr< const edm::DaqProvenanceHelper > > daqProvenanceHelpers_

◆ makeDataBlockView()

void DataModeScoutingRun3::makeDataBlockView ( unsigned char *  addr,
size_t  maxSize,
std::vector< uint64_t > const &  fileSizes,
size_t  fileHeaderSize 
)
inlineoverridevirtual

Implements DataMode.

Definition at line 42 of file DAQSourceModelsScoutingRun3.h.

References generateTowerEtThresholdLUT::addr, cms::cuda::assert(), blockCompleted_, completedBlocks_, dataBlockAddrs_, dataBlockMax_, dataBlockMaxAddrs_, eventCached_, fileHeaderSize_, mps_fire::i, makeEvents(), reco_skim_cfg_mod::maxSize, numFiles_, mps_fire::result, setDataBlockInitialized(), and sourceValidOrbitPair_.

45  {
46  fileHeaderSize_ = fileHeaderSize;
47  numFiles_ = fileSizes.size();
48 
49  // initalize vectors keeping tracks of valid orbits and completed blocks
50  sourceValidOrbitPair_.clear();
51  completedBlocks_.clear();
52  for (unsigned int i = 0; i < fileSizes.size(); i++) {
53  completedBlocks_.push_back(false);
54  }
55 
56  //add offset address for each file payload
57  dataBlockAddrs_.clear();
58  dataBlockAddrs_.push_back(addr);
59  dataBlockMaxAddrs_.clear();
60  dataBlockMaxAddrs_.push_back(addr + fileSizes[0] - fileHeaderSize);
61  auto fileAddr = addr;
62  for (unsigned int i = 1; i < fileSizes.size(); i++) {
63  fileAddr += fileSizes[i - 1];
64  dataBlockAddrs_.push_back(fileAddr);
65  dataBlockMaxAddrs_.push_back(fileAddr + fileSizes[i] - fileHeaderSize);
66  }
67 
69  blockCompleted_ = false;
70  //set event cached as we set initial address here
71  bool result = makeEvents();
72  assert(result);
73  eventCached_ = true;
75  }
std::vector< std::pair< int, int > > sourceValidOrbitPair_
std::vector< bool > completedBlocks_
std::vector< unsigned char * > dataBlockAddrs_
assert(be >=bs)
std::vector< unsigned char * > dataBlockMaxAddrs_
void setDataBlockInitialized(bool val) override

◆ makeDirectoryEntries()

void DataModeScoutingRun3::makeDirectoryEntries ( std::vector< std::string > const &  baseDirs,
std::vector< int > const &  numSources,
std::string const &  runDir 
)
overridevirtual

Implements DataMode.

Definition at line 5 of file DAQSourceModelsScoutingRun3.cc.

References ALCARECODTCalibSynchDQM_cff::baseDir, and EnsembleCalibrationLA_cfg::path.

7  {
8  std::filesystem::path runDirP(runDir);
9  for (auto& baseDir : baseDirs) {
11  buPaths_.emplace_back(baseDirP / runDirP);
12  }
13 
14  // store the number of sources in each BU
15  buNumSources_ = numSources;
16 }
std::vector< std::filesystem::path > buPaths_

◆ makeEvents()

bool DataModeScoutingRun3::makeEvents ( )
private

Definition at line 126 of file DAQSourceModelsScoutingRun3.cc.

References cms::cuda::assert(), edmPickEvents::event, and mps_fire::i.

Referenced by makeDataBlockView().

126  {
127  // clear events and reset current orbit
128  events_.clear();
129  sourceValidOrbitPair_.clear();
130  currOrbit_ = 0xFFFFFFFF; // max uint
132 
133  // create current "events" (= orbits) list from each data source,
134  // check if one dataBlock terminated earlier than others.
135  for (int i = 0; i < numFiles_; i++) {
137  completedBlocks_[i] = true;
138  continue;
139  }
140 
141  // event contains data, add it to the events list
142  events_.emplace_back(std::make_unique<FRDEventMsgView>(dataBlockAddrs_[i]));
143  if (dataBlockAddrs_[i] + events_.back()->size() > dataBlockMaxAddrs_[i])
144  throw cms::Exception("DAQSource::getNextEvent")
145  << " event id:" << events_.back()->event() << " lumi:" << events_.back()->lumi()
146  << " run:" << events_.back()->run() << " of size:" << events_.back()->size()
147  << " bytes does not fit into the buffer or has corrupted header";
148 
149  // find the minimum orbit for the current event between all files
150  if ((events_.back()->event() < currOrbit_) && (!completedBlocks_[i])) {
151  currOrbit_ = events_.back()->event();
152  }
153  }
154 
155  // mark valid orbits from each data source
156  // e.g. find when orbit is missing from one source
157  bool allBlocksCompleted = true;
158  int evt_idx = 0;
159  for (int i = 0; i < numFiles_; i++) {
160  if (completedBlocks_[i]) {
161  continue;
162  }
163 
164  if (events_[evt_idx]->event() != currOrbit_) {
165  // current source (=i-th source) doesn't contain the expected orbit.
166  // skip it, and move to the next orbit
167  } else {
168  // add a pair <current surce index, event index>
169  // evt_idx can be different from variable i, as some data blocks can be
170  // completed before others
171  sourceValidOrbitPair_.emplace_back(std::make_pair(i, evt_idx));
172  allBlocksCompleted = false;
173  }
174 
175  evt_idx++;
176  }
177 
178  if (allBlocksCompleted) {
179  blockCompleted_ = true;
180  }
181  return !allBlocksCompleted;
182 }
std::vector< std::pair< int, int > > sourceValidOrbitPair_
std::vector< bool > completedBlocks_
std::vector< unsigned char * > dataBlockAddrs_
assert(be >=bs)
std::vector< unsigned char * > dataBlockMaxAddrs_
std::vector< std::unique_ptr< edm::streamer::FRDEventMsgView > > events_

◆ nextEventView()

bool DataModeScoutingRun3::nextEventView ( )
overridevirtual

Implements DataMode.

Definition at line 112 of file DAQSourceModelsScoutingRun3.cc.

112  {
113  blockCompleted_ = false;
114  if (eventCached_)
115  return true;
116 
117  // move the data block address only for the sources processed
118  // un the previous event by adding the last event size
119  for (const auto& pair : sourceValidOrbitPair_) {
120  dataBlockAddrs_[pair.first] += events_[pair.second]->size();
121  }
122 
123  return makeEvents();
124 }
std::vector< std::pair< int, int > > sourceValidOrbitPair_
std::vector< unsigned char * > dataBlockAddrs_
std::vector< std::unique_ptr< edm::streamer::FRDEventMsgView > > events_

◆ readEvent()

void DataModeScoutingRun3::readEvent ( edm::EventPrincipal eventPrincipal)
overridevirtual

Implements DataMode.

Definition at line 49 of file DAQSourceModelsScoutingRun3.cc.

References cms::cuda::assert(), printConversionInfo::aux, eostools::move(), edm::EventAuxiliary::PhysicsTrigger, edm::EventPrincipal::put(), l1tstage2_dqm_sourceclient-live_cfg::rawData, and hcalRecHitTable_cff::time.

49  {
50  assert(!events_.empty());
51 
53  timeval stv;
54  gettimeofday(&stv, nullptr);
55  time = stv.tv_sec;
56  time = (time << 32) + stv.tv_usec;
57  edm::Timestamp tstamp(time);
58 
59  // set provenance helpers
60  uint32_t hdrEventID = currOrbit_;
63  eventID, daqSource_->processGUID(), tstamp, events_[0]->isRealData(), edm::EventAuxiliary::PhysicsTrigger);
64 
65  aux.setProcessHistoryID(daqSource_->processHistoryID());
66  daqSource_->makeEventWrapper(eventPrincipal, aux);
67 
68  // create scouting raw data collection
69  std::unique_ptr<SDSRawDataCollection> rawData(new SDSRawDataCollection);
70 
71  // Fill the ScoutingRawDataCollection with valid orbit data from the multiple sources
72  for (const auto& pair : sourceValidOrbitPair_) {
73  fillSDSRawDataCollection(*rawData, (char*)events_[pair.second]->payload(), events_[pair.second]->eventSize());
74  }
75 
76  std::unique_ptr<edm::WrapperBase> edp(new edm::Wrapper<SDSRawDataCollection>(std::move(rawData)));
77  eventPrincipal.put(
78  daqProvenanceHelpers_[0]->branchDescription(), std::move(edp), daqProvenanceHelpers_[0]->dummyProvenance());
79 
80  eventCached_ = false;
81 }
std::vector< std::pair< int, int > > sourceValidOrbitPair_
void fillSDSRawDataCollection(SDSRawDataCollection &rawData, char *buff, size_t len)
assert(be >=bs)
int currentLumiSection() const
Definition: DAQSource.h:52
void put(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp, ProductProvenance const &productProvenance) const
std::vector< std::unique_ptr< edm::streamer::FRDEventMsgView > > events_
std::string const & processGUID() const
Accessor for global process identifier.
Definition: InputSource.h:226
void makeEventWrapper(edm::EventPrincipal &eventPrincipal, edm::EventAuxiliary &aux)
Definition: DAQSource.h:54
edm::ProcessHistoryID & processHistoryID()
Definition: DAQSource.h:59
unsigned long long TimeValue_t
Definition: Timestamp.h:21
DAQSource * daqSource_
int eventRunNumber() const
Definition: DAQSource.h:53
std::vector< std::shared_ptr< const edm::DaqProvenanceHelper > > daqProvenanceHelpers_
def move(src, dest)
Definition: eostools.py:511

◆ requireHeader()

bool DataModeScoutingRun3::requireHeader ( ) const
inlineoverridevirtual

Implements DataMode.

Definition at line 93 of file DAQSourceModelsScoutingRun3.h.

93 { return true; }

◆ run()

uint32_t DataModeScoutingRun3::run ( ) const
inlineoverridevirtual

Implements DataMode.

Definition at line 86 of file DAQSourceModelsScoutingRun3.h.

References cms::cuda::assert(), and events_.

Referenced by Types.EventID::cppID(), and Types.LuminosityBlockID::cppID().

86  {
87  assert(!events_.empty());
88  return events_[0]->run();
89  }
assert(be >=bs)
std::vector< std::unique_ptr< edm::streamer::FRDEventMsgView > > events_

◆ setDataBlockInitialized()

void DataModeScoutingRun3::setDataBlockInitialized ( bool  val)
inlineoverridevirtual

◆ setTCDSSearchRange()

void DataModeScoutingRun3::setTCDSSearchRange ( uint16_t  MINTCDSuTCAFEDID,
uint16_t  MAXTCDSuTCAFEDID 
)
inlineoverridevirtual

Implements DataMode.

Definition at line 101 of file DAQSourceModelsScoutingRun3.h.

101 { return; }

◆ versionCheck()

bool DataModeScoutingRun3::versionCheck ( ) const
inlineoverridevirtual

Member Data Documentation

◆ blockCompleted_

bool DataModeScoutingRun3::blockCompleted_ = true
private

Definition at line 123 of file DAQSourceModelsScoutingRun3.h.

Referenced by dataBlockCompleted(), and makeDataBlockView().

◆ buNumSources_

std::vector<int> DataModeScoutingRun3::buNumSources_
private

Definition at line 126 of file DAQSourceModelsScoutingRun3.h.

◆ buPaths_

std::vector<std::filesystem::path> DataModeScoutingRun3::buPaths_
private

Definition at line 125 of file DAQSourceModelsScoutingRun3.h.

◆ completedBlocks_

std::vector<bool> DataModeScoutingRun3::completedBlocks_
private

Definition at line 132 of file DAQSourceModelsScoutingRun3.h.

Referenced by makeDataBlockView().

◆ currOrbit_

unsigned int DataModeScoutingRun3::currOrbit_ = 0xFFFFFFFF
private

Definition at line 130 of file DAQSourceModelsScoutingRun3.h.

◆ daqProvenanceHelpers_

std::vector<std::shared_ptr<const edm::DaqProvenanceHelper> > DataModeScoutingRun3::daqProvenanceHelpers_
private

Definition at line 112 of file DAQSourceModelsScoutingRun3.h.

◆ dataBlockAddr_

unsigned char* DataModeScoutingRun3::dataBlockAddr_ = nullptr
private

Definition at line 117 of file DAQSourceModelsScoutingRun3.h.

◆ dataBlockAddrs_

std::vector<unsigned char*> DataModeScoutingRun3::dataBlockAddrs_
private

Definition at line 118 of file DAQSourceModelsScoutingRun3.h.

Referenced by makeDataBlockView().

◆ dataBlockInitialized_

bool DataModeScoutingRun3::dataBlockInitialized_ = false
private

Definition at line 122 of file DAQSourceModelsScoutingRun3.h.

Referenced by dataBlockInitialized(), and setDataBlockInitialized().

◆ dataBlockMax_

size_t DataModeScoutingRun3::dataBlockMax_ = 0
private

Definition at line 120 of file DAQSourceModelsScoutingRun3.h.

Referenced by makeDataBlockView().

◆ dataBlockMaxAddrs_

std::vector<unsigned char*> DataModeScoutingRun3::dataBlockMaxAddrs_
private

Definition at line 119 of file DAQSourceModelsScoutingRun3.h.

Referenced by makeDataBlockView().

◆ detectedFRDversion_

uint16_t DataModeScoutingRun3::detectedFRDversion_ = 0
private

◆ eventCached_

bool DataModeScoutingRun3::eventCached_ = false
private

Definition at line 124 of file DAQSourceModelsScoutingRun3.h.

Referenced by makeDataBlockView().

◆ events_

std::vector<std::unique_ptr<edm::streamer::FRDEventMsgView> > DataModeScoutingRun3::events_
private

Definition at line 116 of file DAQSourceModelsScoutingRun3.h.

Referenced by dataBlockSize(), isRealData(), and run().

◆ fileHeaderSize_

size_t DataModeScoutingRun3::fileHeaderSize_ = 0
private

Definition at line 114 of file DAQSourceModelsScoutingRun3.h.

Referenced by makeDataBlockView().

◆ headerSize_

size_t DataModeScoutingRun3::headerSize_ = 0
private

Definition at line 115 of file DAQSourceModelsScoutingRun3.h.

◆ numFiles_

short DataModeScoutingRun3::numFiles_ = 0
private

Definition at line 121 of file DAQSourceModelsScoutingRun3.h.

Referenced by makeDataBlockView().

◆ sourceValidOrbitPair_

std::vector<std::pair<int, int> > DataModeScoutingRun3::sourceValidOrbitPair_
private

Definition at line 129 of file DAQSourceModelsScoutingRun3.h.

Referenced by makeDataBlockView().