CMS 3D CMS Logo

CSCTFFileReader Class Reference

#include <IORawData/CSCTFCommissioning/src/CSCTFFileReader.h>

Inheritance diagram for CSCTFFileReader:

DaqBaseReader

List of all members.

Public Member Functions

 CSCTFFileReader (const edm::ParameterSet &pset)
bool fillRawData (edm::EventID &eID, edm::Timestamp &tstamp, FEDRawDataCollection *&data)
 overload to fill the fed collection to be put in the transient event store.
virtual ~CSCTFFileReader ()

Private Attributes

SPReader___ddu


Detailed Description

Definition at line 11 of file CSCTFFileReader.h.


Constructor & Destructor Documentation

CSCTFFileReader::CSCTFFileReader ( const edm::ParameterSet pset  ) 

Definition at line 28 of file CSCTFFileReader.cc.

References ___ddu, GenMuonPlsPt100GeV_cfg::cout, lat::endl(), EgammaValidation_cff::filename, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), and SPReader::openFile().

00028                                                            :DaqBaseReader()
00029 {
00030   // Following code is stolen from IORawData/DTCommissioning
00031   const std::string dataformat = pset.getUntrackedParameter<std::string>("dataFormat","TestBeam");
00032 
00033   if(dataformat == "TestBeam")
00034     {
00035       ___ddu = new FileReaderSP();
00036     }
00037   if(dataformat == "Final")
00038     {
00039       ___ddu = new FileReaderSPNewFormat();
00040     }
00041 
00042   const std::string & filename = pset.getParameter<std::string>("fileName");
00043   std::cout << "Opening File: " << filename << std::endl;
00044   ___ddu->openFile(filename.c_str());
00045 }

CSCTFFileReader::~CSCTFFileReader (  )  [virtual]

Definition at line 47 of file CSCTFFileReader.cc.

References ___ddu.

00048 {
00049   delete ___ddu;
00050 }


Member Function Documentation

bool CSCTFFileReader::fillRawData ( edm::EventID eID,
edm::Timestamp tstamp,
FEDRawDataCollection *&  data 
) [virtual]

overload to fill the fed collection to be put in the transient event store.

NOTE: the FEDRawDataCollection data must be created (with new) withing the method; ownership is passed to the caller.

Implements DaqBaseReader.

Definition at line 52 of file CSCTFFileReader.cc.

References ___ddu, edmNew::copy(), FEDRawData::data(), SPReader::data(), SPReader::dataLength(), FEDRawDataCollection::FEDData(), first, FEDNumbering::getCSCFEDIds(), SPReader::readNextEvent(), and FEDRawData::resize().

00052                                                                                                    {
00053   data = new FEDRawDataCollection();
00054 
00055   // Event buffer and its length
00056   size_t length=0;
00057         
00058   // Read DDU record
00059   ___ddu->readNextEvent();
00060   const unsigned short* dduBuf = reinterpret_cast<unsigned short*>(___ddu->data());
00061   length = ___ddu->dataLength();
00062   
00063   if(!length) {
00064     delete data; data=0;
00065     return false;
00066   }
00067   
00068   int runNumber   = 0; // Unknown at the level of EMu local DAQ
00069   int eventNumber =((dduBuf[2])&0x0FFF) | ((dduBuf[3]&0x0FFF)<<12); // L1A Number
00070   eID = EventID(runNumber,eventNumber);
00071   
00072 
00073   unsigned short dccBuf[200000+4*4];//, *dccHeader=dccBuf, *dccTrailer=dccBuf+4*2+(length/2);
00074   memcpy(dccBuf,dduBuf,length);
00075 
00076   // The FED ID
00077   FEDRawData& fedRawData = data->FEDData( FEDNumbering::getCSCFEDIds().first );
00078   int newlength = 0;
00079   if(length%8)
00080     {
00081       newlength = length + (8-(length%8));
00082     }
00083   else newlength = length;
00084   fedRawData.resize(newlength);
00085 
00086   copy(reinterpret_cast<unsigned char*>(dccBuf),
00087        reinterpret_cast<unsigned char*>(dccBuf)+length, fedRawData.data());
00088 
00089     return true;
00090 }


Member Data Documentation

SPReader* CSCTFFileReader::___ddu [private]

Definition at line 14 of file CSCTFFileReader.h.

Referenced by CSCTFFileReader(), fillRawData(), and ~CSCTFFileReader().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:17:29 2009 for CMSSW by  doxygen 1.5.4