67 dataToken_=consumes<FEDRawDataCollection>(dataLabel);
68 produces<int>(
"nibble" ).setBranchAlias(
"nibble");
69 produces<int64_t>(
"triggerCount" ).setBranchAlias(
"triggerCount");
70 produces<BSTRecord>(
"bstRecord" ).setBranchAlias(
"bstRecord" );
92 int triggerCount = -99;
96 if(tcdsData.
size()>0){
99 triggerCount = (int64_t)tcdsRecord.getHeader().getData().header.triggerCount;
100 uint64_t gpsh = tcdsRecord.getBST().getBST().bst.gpstimehigh;
101 uint32_t gpsl = tcdsRecord.getBST().getBST().bst.gpstimelow;
102 unsigned long long gpstime =
static_cast<unsigned long long>((gpsh << 32) + gpsl);
103 unsigned char bstMaster =
static_cast<unsigned char>(tcdsRecord.getBST().getBST().bst.bstMaster_bireserved16 >> 8);
104 uint32_t turnCountHigh = tcdsRecord.getBST().getBST().bst.turnCountHigh;
105 uint16_t turnCountLow = tcdsRecord.getBST().getBST().bst.turnCountLow;
106 unsigned int turnCount =
static_cast<unsigned int>((turnCountHigh << 16) + turnCountLow);
107 uint32_t lhcFillHigh = tcdsRecord.getBST().getBST().bst.lhcFillHigh;
108 uint16_t lhcFillLow = tcdsRecord.getBST().getBST().bst.lhcFillLow;
109 unsigned int lhcFill =
static_cast<unsigned int>((lhcFillHigh << 16) + lhcFillLow);
110 unsigned short beamMode =
static_cast<unsigned short>(tcdsRecord.getBST().getBST().bst.beamMode);
111 unsigned char particleType1 =
static_cast<unsigned char>(tcdsRecord.getBST().getBST().bst.particleTypes & 0xFF);
112 unsigned char particleType2 =
static_cast<unsigned char>(tcdsRecord.getBST().getBST().bst.particleTypes >> 8);
113 unsigned short beamMomentum =
static_cast<unsigned short>(tcdsRecord.getBST().getBST().bst.beamMomentum);
114 unsigned int intensityBeam1 =
static_cast<unsigned int>(tcdsRecord.getBST().getBST().bst.intensityBeam1);
115 unsigned int intensityBeam2 =
static_cast<unsigned int>(tcdsRecord.getBST().getBST().bst.intensityBeam2);
116 bstRecord.
set(gpstime, bstMaster, turnCount, lhcFill, beamMode, particleType1, particleType2, beamMomentum, intensityBeam1, intensityBeam2);
127 iEvent.
put(std::make_unique<int>(nibble),
"nibble");
128 iEvent.
put(std::make_unique<int64_t>(triggerCount),
"triggerCount");
129 iEvent.
put(std::make_unique<BSTRecord>(bstRecord),
"bstRecord");
140 descriptions.
add(
"tcdsRawToDigi", desc);
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
virtual void produce(edm::Event &, const edm::EventSetup &) override
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
void set(unsigned long long gpstime, unsigned char bstMaster, unsigned int turnCount, unsigned int lhcFill, unsigned short beamMode, unsigned char particleBeam1, unsigned char particleBeam2, unsigned short beamMomentum, unsigned int intensityBeam1, unsigned int intensityBeam2)
size_t size() const
Lenght of the data buffer in bytes.
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
ParameterDescriptionBase * add(U const &iLabel, T const &value)
TcdsRawToDigi(const edm::ParameterSet &)
edm::EDGetTokenT< FEDRawDataCollection > dataToken_
unsigned long long uint64_t
void add(std::string const &label, ParameterSetDescription const &psetDescription)
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.