@@ -41,9 +41,28 @@ DaqFakeReader::DaqFakeReader(const edm::ParameterSet& pset)
4141 injected_errors_per_million_events(pset.getUntrackedParameter<unsigned int >(" injectErrPpm" , 0 )),
4242 tcdsFEDID_(pset.getUntrackedParameter<unsigned int >(" tcdsFEDID" , 1024 )),
4343 modulo_error_events(injected_errors_per_million_events ? 1000000 / injected_errors_per_million_events
44- : 0xffffffff ) {
44+ : 0xffffffff ),
45+ subsystems_(pset.getUntrackedParameter<std::vector<std::string>>(" subsystems" )) {
46+ for (auto const & subsystem : subsystems_) {
47+ if (subsystem == " TCDS" )
48+ haveTCDS_ = true ;
49+ else if (subsystem == " SiPixel" )
50+ haveSiPixel_ = true ;
51+ else if (subsystem == " SiStrip" )
52+ haveSiStrip_ = true ;
53+ else if (subsystem == " ECAL" )
54+ haveECAL_ = true ;
55+ else if (subsystem == " HCAL" )
56+ haveHCAL_ = true ;
57+ else if (subsystem == " DT" )
58+ haveDT_ = true ;
59+ else if (subsystem == " CSC" )
60+ haveCSC_ = true ;
61+ else if (subsystem == " RPC" )
62+ haveRPC_ = true ;
63+ }
4564 // mean = pset.getParameter<float>("mean");
46- if (tcdsFEDID_ < FEDNumbering::MINTCDSuTCAFEDID)
65+ if (haveTCDS_ && tcdsFEDID_ < FEDNumbering::MINTCDSuTCAFEDID)
4766 throw cms::Exception (" DaqFakeReader::DaqFakeReader" )
4867 << " TCDS FED ID lower than " << FEDNumbering::MINTCDSuTCAFEDID;
4968 if (fillRandom_) {
@@ -74,17 +93,25 @@ int DaqFakeReader::fillRawData(Event& e, FEDRawDataCollection*& data) {
7493 eventNum++;
7594 // FIXME:
7695
77- fillFEDs (FEDNumbering::MINSiPixelFEDID, FEDNumbering::MAXSiPixelFEDID, eID, *data, meansize, width);
78- fillFEDs (FEDNumbering::MINSiStripFEDID, FEDNumbering::MAXSiStripFEDID, eID, *data, meansize, width);
79- fillFEDs (FEDNumbering::MINDTFEDID, FEDNumbering::MAXDTFEDID, eID, *data, meansize, width);
80- fillFEDs (FEDNumbering::MINCSCFEDID, FEDNumbering::MAXCSCFEDID, eID, *data, meansize, width);
81- fillFEDs (FEDNumbering::MINRPCFEDID, FEDNumbering::MAXRPCFEDID, eID, *data, meansize, width);
82- fillFEDs (FEDNumbering::MINECALFEDID, FEDNumbering::MAXECALFEDID, eID, *data, meansize, width);
83- fillFEDs (FEDNumbering::MINHCALFEDID, FEDNumbering::MAXHCALFEDID, eID, *data, meansize, width);
96+ if (haveSiPixel_)
97+ fillFEDs (FEDNumbering::MINSiPixelFEDID, FEDNumbering::MAXSiPixelFEDID, eID, *data, meansize, width);
98+ if (haveSiStrip_)
99+ fillFEDs (FEDNumbering::MINSiStripFEDID, FEDNumbering::MAXSiStripFEDID, eID, *data, meansize, width);
100+ if (haveECAL_)
101+ fillFEDs (FEDNumbering::MINECALFEDID, FEDNumbering::MAXECALFEDID, eID, *data, meansize, width);
102+ if (haveHCAL_)
103+ fillFEDs (FEDNumbering::MINHCALFEDID, FEDNumbering::MAXHCALFEDID, eID, *data, meansize, width);
104+ if (haveDT_)
105+ fillFEDs (FEDNumbering::MINDTFEDID, FEDNumbering::MAXDTFEDID, eID, *data, meansize, width);
106+ if (haveCSC_)
107+ fillFEDs (FEDNumbering::MINCSCFEDID, FEDNumbering::MAXCSCFEDID, eID, *data, meansize, width);
108+ if (haveRPC_)
109+ fillFEDs (FEDNumbering::MINRPCFEDID, FEDNumbering::MAXRPCFEDID, eID, *data, meansize, width);
84110
85111 timeval now;
86112 gettimeofday (&now, nullptr );
87- fillTCDSFED (eID, *data, ls, &now);
113+ if (haveTCDS_)
114+ fillTCDSFED (eID, *data, ls, &now);
88115 }
89116 return 1 ;
90117}
@@ -195,5 +222,8 @@ void DaqFakeReader::fillDescriptions(edm::ConfigurationDescriptions& description
195222 desc.addUntracked <unsigned int >(" width" , 1024 );
196223 desc.addUntracked <unsigned int >(" injectErrPpm" , 1024 );
197224 desc.addUntracked <unsigned int >(" tcdsFEDID" , 1024 );
225+ desc.addUntracked <std::vector<std::string>>(
226+ " subsystems" ,
227+ std::initializer_list<std::string>({" TCDS" , " SiPixel" , " SiStrip" , " ECAL" , " HCAL" , " DT" , " CSC" , " RPC" }));
198228 descriptions.add (" DaqFakeReader" , desc);
199229}
0 commit comments