13 #include "MockDataDAQ/DCMSimulator.h" 14 #include "MockDataDAQ/GlobalEventTime.h" 15 #include "MockDataDAQ/Configuration.h" 18 #include "DAQDataFormats/FEBSimulator.h" 19 #include "DAQDataFormats/RawMicroSlice.h" 29 fDiblockNumber(diblock)
32 , fOutputMicroslicesFile(NULL)
33 , fOutputMillislicesFile(NULL)
52 std::stringstream final_file_name_microslices_addition;
64 std::stringstream final_file_name_millislices_addition;
94 const uint32_t simulated_time_stamp,
95 const uint32_t pulse_height){
97 std::vector <uint32_t>
data;
98 data.push_back(pulse_height);
106 const uint32_t simulated_time_stamp,
107 const std::vector<uint32_t>&
data){
120 const uint32_t simulated_hit_time_in_event = simulated_time_stamp + uint32_t(global_event_time->
getGlobalEventTime());
125 feb_simulator->generateNanoSlice(pixel, simulated_hit_time_in_event, data);
131 const uint32_t microslice_number = simulated_time_stamp / config->
getMicrosliceDT();
146 const uint32_t number_of_created_microslices_in_event =
fMicroSlice.size();
149 for(uint32_t i_microslice = number_of_created_microslices_in_event; i_microslice <=microslice_number; i_microslice++){
172 microslice->
setTime(microslice_time_in_event);
185 for(uint32_t imicro = 0; imicro <
fMicroSlice.size(); imicro++){
200 for(uint32_t imicro = 0; imicro <
fMicroSlice.size(); imicro++){
unsigned long long getGlobalEventTime() const
GetGlobal Time.
bool generateNanoSlice(const daqchannelmap::dchan, const uint32_t time_stamp, const uint32_t pulse_height)
Generate NanoSlice with a given pixel, TimeStamp and PulseHeight.
diblock
print "ROW IS " print row
bool isProducingMilliSlices() const
bool writeMicroSlices()
Write all MicroSlices into the output file.
uint32_t pixel_t
Type for physical pixel on APD.
boost::shared_ptr< daqdataformats::RawMicroSlice > RawMicroSlice_shrptr
Shared pointer.
bool writeMilliSlices()
Write MilliSlice into the output file.
const daqchannelmap::DAQChannelMap * Map() const
FILE * openFile(const std::string file_name) const
Open file for binary write access.
const XML_Char const XML_Char * data
uint32_t fDiblockNumber
Diblock number.
static Configuration * getInstance()
Method to obtain the class instance.
daqdataformats::RawMicroSlice * createMicroSlice(const uint32_t microslice_number)
Create a MicroSlice and put it in the vector.
~DCMSimulator()
Destructor.
Something conflicts with RandomNumberGenerator. Keep DAQSimulator.h include below Art Framework inclu...
bool fillMicroSlice(const uint32_t microslice_number, daqdataformats::RawNanoSlice *)
Fill MicroSlice with a given NanoSlice.
int getDetector() const
Get Detector ID.
uint32_t feb_t
Type for DCM link port. Counts from 0.
DCMSimulator(const daqchannelmap::diblock_t, const daqchannelmap::dcm_id_t)
Constructor.
FILE * fOutputMicroslicesFile
Output file with hte microslices from this DCM.
bool writeToFile(FILE *, const daqdataformats::RawDAQData &) const
Utility method of writing DAQ data into a file.
uint32_t dcm_id_t
Type for DCM number, counts from 1.
pixel_t getPixel(dchan daqchan) const
Decode the pixel id from a dchan.
daqdataformats::version_t getNanoSliceVersion() const
Get NanoSlice version.
std::string getFullFileName(const std::string addition_to_file_name) const
daqdataformats::FEBSimulator * getFEBSimulator(const daqchannelmap::feb_t)
Get the instance of the FEB Simulator for a given link ID on this DCM.
std::vector< daqdataformats::FEBSimulator * > fFrontEndBoards
All 64 FEBs on the DCM.
FILE * fOutputMillislicesFile
bool writeDAQSimulatorVersionIntoFile(FILE *) const
Write Global DAQSimulator version into the input file.
uint32_t diblock_t
Type for diblocks and blocks.
static GlobalEventTime * getInstance()
Method to obtain the class instance.
uint32_t getMicrosliceDT() const
MicroSlice DT.
uint32_t fDCMNumber
DCM number in the diblock.
std::vector< RawMicroSlice_shrptr > fMicroSlice
Vector of all Microslices in the event.
uint32_t dchan
< DAQ Channel Map Package
daqdataformats::RawMilliSlice fMilliSlice
There is going to be 1 Millislice per event.
daqdataformats::RawMilliSlice * fillMilliSlice()
Fill MilliSlices out.
bool nextEvent()
Advance to next event. Advancing MilliSlice. Clearing MicroSlice vector.
feb_t getFEB(dchan daqchan) const
Decode the feb id from a dchan.