59 if(m_columnLengths.size() != m_columnNames.size()) {
61 <<
"Length of PatternFileColumns does not match length of PatternFileLenghts, " <<
62 m_columnNames.size() <<
" vs " << m_columnLengths.size() << std::endl;
66 <<
"\nL1 GCT record: " 68 <<
"\nL1 GMT record: " 71 << m_gtTag << std::endl;
100 TResult (TRecord::*rawFunctionPtr)()
const,
102 uint32_t (*packingFunction)(uint32_t) =
nullptr)
109 throw cms::Exception(__func__) <<
"Failed to extract record of type " <<
typeid(TRecord).
name() <<
110 " labeled " << label <<
", instance " <<
instance;
116 for(
typename std::vector<TRecord>::const_iterator it = handle->begin(); it != handle->end(); ++it) {
119 uint32_t
value = ((*it).*rawFunctionPtr)();
120 if(packingFunction !=
nullptr) {
121 value = packingFunction(value);
124 line.
push(prefix, value);
130 static std::vector<uint32_t>
chopWords(
const std::vector<bool>& aWord) {
131 std::vector<uint32_t>
result;
133 result.resize((aWord.size()+31)/32, 0);
135 for(
unsigned i = 0 ;
i < aWord.size(); ++
i) {
136 result[
i/32] |= aWord[
i] << (
i%32);
147 std::vector<uint32_t> resultWords =
chopWords(input);
151 for(
unsigned i = resultWords.size() ;
i > 0; --
i) {
152 line.
push(prefix, resultWords[
i-1]);
160 uint32_t invertMask = 0x0000FF00;
161 uint32_t toKeep = rawData & (~invertMask);
162 return toKeep | (~rawData & invertMask);
175 throw cms::Exception(__func__) <<
"Failed to extract GT readout record labeled " 182 const std::vector<L1GtFdlWord>& fdlWords = handle->
gtFdlVector();
183 for(std::vector<L1GtFdlWord>::const_iterator it = fdlWords.begin();
184 it != fdlWords.end() ; ++it) {
186 int bx = it->bxInEvent();
195 line.
push(
"gtFinalOr", it->finalOR());
205 for(L1GtPatternMap::LineMap::iterator it = allPatterns.
begin();
206 it != allPatterns.
end(); ++it) {
208 uint32_t counts = it->second.get(
"hfBitCounts1");
209 uint32_t sums = it->second.get(
"hfRingEtSums1");
213 uint32_t hfPsbValue = (counts & 0xFFF) |
221 it->second.push(resultName, hfPsbValue);
235 const unsigned int eventNumber = iEvent.
id().
event();
237 LogTrace(
"L1GtPatternGenerator") <<
"\n\nL1GtPatternGenerator::analyze: Run: " << runNumber <<
" LS: " << lsNumber <<
" Event: " 238 << eventNumber <<
"\n\n" << std::endl;
274 m_writer->writePatterns(allPatterns);
void analyze(const edm::Event &, const edm::EventSetup &) override
analyze each event
uint32_t raw() const
get the data
T getParameter(std::string const &) const
EventNumber_t event() const
L1GtPatternLine & getLine(int eventNr, int bxNr)
uint16_t raw() const
get the data
LineMap::const_iterator begin() const
edm::InputTag m_dtTag
input tags for regional muon data
uint16_t raw() const
get the raw data
static PFTauRenderPlugin instance
std::vector< uint32_t > m_columnDefaults
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
unsigned long long EventNumber_t
edm::LuminosityBlockNumber_t luminosityBlock() const
unsigned phi() const
get the Et
std::vector< uint32_t > m_columnLengths
edm::InputTag m_gmtTag
input tag for GMT data
static std::string const input
static void extractRecordData(const edm::Event &iEvent, L1GtPatternMap &allPatterns, const std::string &label, const std::string &instance, TResult(TRecord::*rawFunctionPtr)() const, const std::string &prefix, uint32_t(*packingFunction)(uint32_t)=0)
void beginJob() override
analyze
void extractGlobalTriggerData(const edm::Event &iEvent, L1GtPatternMap &patterns)
std::unique_ptr< L1GtPatternWriter > m_writer
unsigned getDataWord() const
get muon data word
std::string m_header
formatting instructions
std::string m_fileName
output file name
std::ofstream m_fileStream
unsigned getDataWord() const
return data word
LineMap::const_iterator end() const
edm::InputTag m_gctTag
input tag for GCT data
static void extractGlobalTriggerWord(const std::vector< bool > input, L1GtPatternLine &line, const std::string &prefix)
void packHfRecords(const std::string &resultName, L1GtPatternMap &allPatterns)
edm::InputTag m_gtTag
input tag for GT data
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
~L1GtPatternGenerator() override
void push(const std::string &prefix, boost::uint32_t value)
unsigned et() const
get the magnitude
L1GtPatternGenerator(const edm::ParameterSet &)
uint16_t raw() const
get the data
uint16_t raw() const
get the raw data
void endJob() override
end of job
uint16_t raw() const
the raw data
static uint32_t packRegionalMuons(uint32_t rawValue)
static std::vector< uint32_t > chopWords(const std::vector< bool > &aWord)
uint16_t raw() const
get the raw data
std::vector< std::string > m_columnNames