Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

L1t updates 75x #9216

Merged
merged 140 commits into from May 23, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
8b1ec39
fix bugs reading non packeted data
jimbrooke Jan 16, 2015
a51a978
fix unpacking demux to latest format
jimbrooke Jan 16, 2015
0ade700
buffer dump fixes for jan 2015 tests
jimbrooke Feb 2, 2015
5a74405
unpacker fixes for stage2 jan 2015 tests
jimbrooke Feb 2, 2015
739d3e6
add MP output to analyser
jimbrooke Feb 2, 2015
54bb373
add unpacker job for stage 1
jimbrooke Feb 5, 2015
582423b
fix MP jet unpacking indices
jimbrooke Feb 5, 2015
f6f7be0
Merged l1t-devel-CMSSW_7_3_0_pre2 from repository cms-l1t-offline
Xtian9 Feb 7, 2015
ae0d104
Merged l1t-comm-CMSSW_7_3_0_pre2 from repository cms-l1t-offline
Xtian9 Feb 7, 2015
e7ce8da
add emulator utility config
jimbrooke Feb 10, 2015
a95e44e
Merge branch 'l1t-comm-CMSSW_7_3_0_pre2' of github.com:cms-l1t-offlin…
Xtian9 Feb 10, 2015
de80f72
add event display histograms
jimbrooke Feb 15, 2015
5e58364
Merge branch 'l1t-comm-CMSSW_7_3_0_pre2' of github.com:cms-l1t-offlin…
Xtian9 Feb 16, 2015
950ea57
fix packet data loop bug
jimbrooke Feb 20, 2015
47a6919
change warning msgs to debug
jimbrooke Feb 20, 2015
feba60f
change text output category
jimbrooke Feb 20, 2015
ea3d620
improve message logging
jimbrooke Feb 20, 2015
1f70de1
added Andy's corrected bitonic sort
Xtian9 Feb 25, 2015
978bf17
split MP sums by eta pos/neg
Xtian9 Feb 26, 2015
5c5d062
add uGT to buffer dump RAW
jimbrooke Mar 5, 2015
2f4ec67
add GT unpacking placeholder to test job
jimbrooke Mar 5, 2015
f3a913b
added Andy's corrected bitonic sort
Xtian9 Mar 5, 2015
a53f27f
bitonic sort
Xtian9 Mar 5, 2015
ad0a56f
updated demux sum unpacker
Xtian9 Mar 5, 2015
a9921ed
separated MP tower sums by pos/neg eta
Xtian9 Mar 5, 2015
14bc703
Merge branch 'l1t-comm-CMSSW_7_3_0_pre2' of github.com:cms-l1t-offlin…
jimbrooke Mar 5, 2015
bbdb144
Update Stage2Layer2EtSumAlgorithmFirmwareImp1.cc
Xtian9 Mar 6, 2015
4a7a6bc
fix BX range
jimbrooke Mar 10, 2015
ee846f9
Merge branch 'l1t-comm-CMSSW_7_3_0_pre2' of github.com:cms-l1t-offlin…
jimbrooke Mar 10, 2015
17e2639
take stage1 fw version from DB
mulhearn Mar 11, 2015
56414f4
update jet algo and jet sums
Xtian9 Mar 11, 2015
cee84d0
testing
Xtian9 Mar 11, 2015
f22cc98
Merge branch 'l1t-comm-CMSSW_7_3_0_pre2' of github.com:cms-l1t-offlin…
Xtian9 Mar 12, 2015
075561a
use same mask as hardware
Xtian9 Mar 12, 2015
95196df
Update Stage2Layer2JetAlgorithmFirmwareImp1.cc
Xtian9 Mar 12, 2015
7731417
Merged l1t-comm-CMSSW_7_3_0_pre2 from repository cms-l1t-offline
jimbrooke Mar 13, 2015
4bb460c
fix BX range loop
jimbrooke Mar 13, 2015
14de60a
fix FW version for PP versus HI in scripts
mulhearn Mar 25, 2015
fa12c80
Merged l1t-devel-CMSSW_7_4_0_pre8 from repository cms-l1t-offline
mulhearn Mar 25, 2015
83e626d
Merged mulhearn-caloconfig-updates from repository cms-l1t-offline
mulhearn Mar 25, 2015
0b6d36b
fix conflict
jimbrooke Mar 26, 2015
a10225c
Fix the stage1 buffer dump.
matz-e Feb 3, 2015
e96446b
Some stage 1 buffer dump config fixes.
matz-e Feb 3, 2015
087e6b2
bug fix
l-cadamuro Feb 11, 2015
d4f04f8
removed unnecessary include
l-cadamuro Feb 11, 2015
6d9e7a8
Removed dijet phi from EtSum alg.
Feb 6, 2015
9b7b628
Added CORDIC routine for Stage 1
Feb 6, 2015
6e78096
Untested but compiling version of ET Sum alg.
Feb 6, 2015
a24c00e
Region input overflow test
Feb 6, 2015
dfbae05
Contact info in file
Feb 6, 2015
bf6f386
Et Sums output agrees with FPGA simulation
Feb 10, 2015
6cf3194
Some comments and revert of changes to L1TCaloRCTToUpgradeConverter
Feb 11, 2015
5deba78
change egcand indexing after finding bug in input we were sending to …
Feb 12, 2015
a75b01e
add hex option for jet debugging
Feb 16, 2015
da9c4d7
Add LUT for Tau to HFRing scale conversion
apana Feb 17, 2015
836c36d
add files for commissioning tests
jimbrooke Feb 2, 2015
3189174
make the BX handling in the layer2->GT converter more flexible
Feb 20, 2015
2d304c4
fix FWV==2 tau bug; Taus cannot come from HF
Feb 20, 2015
67f1082
make legacy format converter handle cases where BX is larged than 0
Feb 20, 2015
ecd00be
updated etsum interface to take jets as input, switch phi of HT to be…
Feb 23, 2015
3ee79da
add debug info to isoTau code
Feb 23, 2015
760c63b
Update MHT/HT calculation to match firmware
apana Feb 24, 2015
0348ff0
Remove spurious cout; do some code cleanup
apana Feb 24, 2015
eed6a11
add MHToHT calc to HW algo
Feb 25, 2015
b2256be
update to latest packet format
jimbrooke Mar 5, 2015
e7bd51b
update of layer2 and layer1 packer/unpacker
ginnocen Feb 9, 2015
477a8f9
Updated eta boundary for single track trigger
Mar 10, 2015
5dd815b
Update Stage1Layer2EtSumAlgorithmImpHW.cc
Mar 13, 2015
afa49d1
HW jet algorithm should obey jet seed threshold
Mar 16, 2015
9935cee
actually fix HW jet algo
Mar 16, 2015
4b95fec
switch to more realistic jet calibration
Mar 16, 2015
8d93507
turn off verbose output - only Alex needs it
Mar 16, 2015
1f32172
Update HW EG algorithms to match pp algos
apana Mar 17, 2015
8f5e95b
Added JEC LUT for Stage1
mcepeda Mar 18, 2015
524fb50
Mwqade overflow treatment of the MHToHT in V2 the same
mcepeda Mar 18, 2015
c006b15
ISOlut location was messing up crab jobs
Mar 18, 2015
15b6b49
Switch to using FW version 3 for pp
apana Mar 19, 2015
dd3ed2b
fix conflicts
jimbrooke Mar 31, 2015
a98c5cd
Revert "Switch to using FW version 3 for pp"
jimbrooke Mar 31, 2015
0da0af0
Merged l1t-devel-CMSSW_7_5_0_pre1 from repository cms-l1t-offline
jimbrooke Apr 1, 2015
df5a944
add parameter that stage 1 people forgot, thereby fucking up stage 2
jimbrooke Apr 1, 2015
2e453b9
fix ETx and ETy
Xtian9 Apr 1, 2015
35a90b2
fix HTx and HTy
Xtian9 Apr 1, 2015
a263424
Merged l1t-devel-CMSSW_7_5_0_pre1 from repository cms-l1t-offline
apana Apr 6, 2015
d596464
Load caloConfigStage1PP_cfi
apana Apr 6, 2015
2acfa2e
Run Firmware version 3 (HW pp algo) by default)
apana Apr 6, 2015
ec6e956
Add Stage1TauIsolationLUT class
apana Apr 6, 2015
8cd7cc3
Add L1TCaloStage1LutWriter
apana Apr 6, 2015
bbcafca
Update algorithm to use new IsoTau Lut class
apana Apr 6, 2015
48dcb35
Merged l1t-devel-CMSSW_7_5_0_pre1 from repository cms-l1t-offline
blwiner Apr 6, 2015
1ca7e48
update for GT unpackers classes
blwiner Apr 6, 2015
fd94fa3
fix lastbx problem..matches jets now
blwiner Apr 6, 2015
96ca62a
new GT unpackers
blwiner Apr 6, 2015
c4f3185
new GT unpackers
blwiner Apr 6, 2015
046c8d3
new analyzer for packers/unpackers
blwiner Apr 6, 2015
b6e7f30
put slice test menu in release
blwiner Apr 6, 2015
7cce97f
script to analyze Slice Test data with emulation
blwiner Apr 7, 2015
4feedf8
quiet some printout
blwiner Apr 7, 2015
4764d3f
test script for analyzing raw data
blwiner Apr 7, 2015
379bf12
add abstract interface for L1T object unpacking to share code between…
jimbrooke Apr 8, 2015
ae46966
add abstract interface for L1T object unpacking to share code between…
jimbrooke Apr 8, 2015
0d73e18
make L1TObjectCollections working
jimbrooke Apr 8, 2015
1bd1df9
Merge branch 'l1t-devel-CMSSW_7_5_0_pre1' of github.com:cms-l1t-offli…
jimbrooke Apr 8, 2015
1fc2145
propagate L1TObjectCollections to GTCollections
jimbrooke Apr 8, 2015
61d3f88
propagate changes to GTTokens and GTCollections
jimbrooke Apr 8, 2015
48e3c20
add missing collection construction
jimbrooke Apr 8, 2015
d2be4b3
changes for new unpacker collections
blwiner Apr 8, 2015
bba0aff
add GT input unpacking
blwiner Apr 8, 2015
9ea7047
Merged l1t-devel-CMSSW_7_5_0_pre1 from repository cms-l1t-offline
jimbrooke Apr 10, 2015
9b8abb7
add fixed pattern generation config
jimbrooke Apr 11, 2015
a6a7557
add input file option
jimbrooke Apr 11, 2015
aa06f14
generalize HI-style background subtraction
Apr 29, 2015
63ce145
use iso/non-iso egamma collections for an L1 eta cut for HI
May 6, 2015
b46632e
move zero-wall procedure into subtraction from jetfinding
May 6, 2015
909fc64
updated centrality LUT to 5.02TeV version
May 6, 2015
8eab9eb
remove parameter which is no handled by CaloConfigHelper
May 6, 2015
1ee4c17
remove confusing, no-longer-used, python duplicates
May 6, 2015
a57bcd3
remove no-longer-used parameter
May 6, 2015
67ef3f2
clean up useless parameters and HI python snippets
May 6, 2015
9edfa3a
make sure the updated RCT configuration for HI is in the customise st…
May 6, 2015
39864ed
Merged l1t-devel-CMSSW_7_5_0_pre1 from repository cms-l1t-offline
puigh May 7, 2015
31a952b
add guard against overlapping 2x2 jets
May 13, 2015
6b4d54c
Updated menu, xsd file, and classes to include EtSums
puigh May 14, 2015
3e47fc5
Switch use of AK5 jets to AK4 in GenToInputProducer
puigh May 14, 2015
dc854b9
Update GtBoard, TriggerMenu, and Parser to include EtSums
puigh May 14, 2015
1faa5a9
Update input files for 750pre1
puigh May 14, 2015
ac7a610
Include new EnergySumCondition and EnergySumTemplate
puigh May 14, 2015
a91172f
Merge branch 'l1t-devel-CMSSW_7_5_0_pre1' of github.com:cms-l1t-offli…
puigh May 14, 2015
59618bc
Merged l1t-devel-CMSSW_7_5_0_pre1 from repository cms-l1t-offline
May 15, 2015
0bca03a
Changed Eta bound for L1 Single Track trigger to |eta| < 1.044
May 15, 2015
8b5dbca
update GCT JEC HB,HE to 13 TeV. HF remains legacy JEC
jimbrooke May 18, 2015
3a11926
Merge branch 'l1t-devel-CMSSW_7_5_0_pre1' of github.com:cms-l1t-offli…
jimbrooke May 18, 2015
dfcf651
Increase iso bits on calo objects from one to two
puigh May 19, 2015
84b81b7
Include isolationLUT for calo conditions
puigh May 19, 2015
e106716
Change isolation to randomly be either 0 or 1
puigh May 19, 2015
f5ab8db
Merge branch 'l1t-devel-CMSSW_7_5_0_pre1' of github.com:cms-l1t-offli…
puigh May 19, 2015
a960267
Merged l1t-devel-CMSSW_7_5_0_pre1 from repository cms-l1t-offline
mulhearn May 21, 2015
8411ee2
Merged l1t-devel-CMSSW_7_5_0_pre4 from repository cms-l1t-offline
mulhearn May 21, 2015
d50b029
fix failed manual merge
mulhearn May 22, 2015
4dd3c8f
fix clang errors
mulhearn May 22, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions EventFilter/L1TRawToDigi/BuildFile.xml
Expand Up @@ -3,6 +3,7 @@
<use name="DataFormats/L1Trigger"/>
<use name="DataFormats/L1TCalorimeter"/>
<use name="L1Trigger/L1TCalorimeter"/>
<use name="L1Trigger/L1TGlobal"/>
<export>
<lib name="1"/>
</export>
Expand Down
88 changes: 69 additions & 19 deletions EventFilter/L1TRawToDigi/plugins/MP7BufferDumpToRaw.cc
Expand Up @@ -134,8 +134,8 @@ class MP7BufferDumpToRaw : public edm::EDProducer {
MP7BufferDumpToRaw::MP7BufferDumpToRaw(const edm::ParameterSet& iConfig) :
rxFileReader_(iConfig.getUntrackedParameter<std::string>("rxFile", "rx_summary.txt")),
txFileReader_(iConfig.getUntrackedParameter<std::string>("txFile", "tx_summary.txt")),
rxPacketReader_(iConfig.getUntrackedParameter<std::string>("rxFile", "rx_summary.txt")),
txPacketReader_(iConfig.getUntrackedParameter<std::string>("txFile", "tx_summary.txt")),
rxPacketReader_(iConfig.getUntrackedParameter<std::string>("rxFile", "rx_summary.txt"), 1, 0),
txPacketReader_(iConfig.getUntrackedParameter<std::string>("txFile", "tx_summary.txt"), 1, 0),
packetisedData_(iConfig.getUntrackedParameter<bool>("packetisedData", true)),
nFramesPerEvent_(iConfig.getUntrackedParameter<int>("nFramesPerEvent", 6)),
iBoard_(iConfig.getUntrackedParameter<int>("boardOffset", 0)),
Expand Down Expand Up @@ -184,11 +184,40 @@ class MP7BufferDumpToRaw : public edm::EDProducer {
edm::LogError("L1T") << "Wrong number of block specs " << vpset.size();
}

rxBlockLength_.resize(nBoard_);
txBlockLength_.resize(nBoard_);

for (unsigned i=0; i<nBoard_; ++i) {
rxBlockLength_.push_back(vpset.at(i).getUntrackedParameter< std::vector<int> >("rxBlockLength") );
txBlockLength_.push_back(vpset.at(i).getUntrackedParameter< std::vector<int> >("rxBlockLength") );

std::vector<int> rx = vpset.at(i).getUntrackedParameter< std::vector<int> >("rxBlockLength");

rxBlockLength_.at(i).resize(rx.size());

for (unsigned j=0; j<rx.size(); ++j) {
rxBlockLength_.at(i).at(j) = rx.at(j);

if (rx.at(j) != 0) {
// LogDebug("L1T") << "Block readout : board " << i << " Rx link " << j << " size " << rx.at(j);
}
}

std::vector<int> tx = vpset.at(i).getUntrackedParameter< std::vector<int> >("txBlockLength");
txBlockLength_.at(i).resize(tx.size());

for (unsigned j=0; j<tx.size(); ++j) {
txBlockLength_.at(i).at(j) = tx.at(j);

if (tx.at(j) != 0) {
// LogDebug("L1T") << "Block readout : board " << i << " Tx link " << j << " size " << tx.at(j);
}
}

}

LogDebug("L1T") << "Board ID size " << boardId_.size();

LogDebug("L1T") << "Frames per event " << nFramesPerEvent_;

}


Expand Down Expand Up @@ -217,9 +246,7 @@ MP7BufferDumpToRaw::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)
// create AMC formatted data
if (mux_) {
std::vector<Block> blocks = getBlocks(iBoard_);
formatAMC(amc13, blocks, boardId_.at(iBoard_));
iBoard_++; //advance to next AMC for next event...
iBoard_ = iBoard_ % nBoard_;
formatAMC(amc13, blocks, iBoard_);
}
else {
for (unsigned iBoard=0; iBoard<nBoard_; ++iBoard) {
Expand All @@ -240,6 +267,12 @@ MP7BufferDumpToRaw::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)

// put the collection in the event
iEvent.put(raw_coll);

//advance to next AMC for next event, if required...
if (mux_) {
iBoard_++;
iBoard_ = iBoard_ % nBoard_;
}

}

Expand All @@ -249,13 +282,13 @@ std::vector<Block>
MP7BufferDumpToRaw::getBlocks(int iBoard)
{

LogDebug("L1T") << "Getting blocks from board " << iBoard;
LogDebug("L1T") << "Getting blocks from board " << iBoard << ", " << rxBlockLength_.at(iBoard).size() << " Rx links, " << txBlockLength_.at(iBoard).size() << " Tx links";

std::vector<Block> blocks;

// Rx blocks first
for (unsigned link=0; link<rxBlockLength_.at(iBoard).size(); ++link) {

unsigned id = link*2;
unsigned size = rxBlockLength_.at(iBoard).at(link);

Expand All @@ -277,15 +310,16 @@ MP7BufferDumpToRaw::getBlocks(int iBoard)
}
}
else {

for (unsigned iFrame=rxIndex_.at(iBoard); iFrame<rxIndex_.at(iBoard)+size; ++iFrame) {
uint64_t d = rxFileReader_.get(iBoard).link(link).at(iFrame);
// LogDebug("L1T") << "Frame " << iFrame << " : " << std::hex << d;
LogDebug("L1T") << "Frame " << iFrame << " : " << std::hex << d;
if ((d & 0x100000000) > 0) data.push_back( d & 0xffffffff );
}
rxIndex_.at(iBoard) += nFramesPerEvent_;

}

LogDebug("L1T") << "AMC " << iBoard << " block " << id << ", size " << data.size();
LogDebug("L1T") << "Board " << iBoard << " block " << id << ", size " << data.size();

Block block(id, data);
blocks.push_back(block);
Expand All @@ -300,37 +334,52 @@ MP7BufferDumpToRaw::getBlocks(int iBoard)

if (size==0) continue;

LogDebug("L1T") << "Block " << id << " expecting size " << size;

std::vector<uint32_t> data;
if (packetisedData_) {

const PacketData& p = txPacketReader_.get(iBoard);
PacketData::const_iterator itr = p.begin();
for (unsigned i=0; i<txIndex_.at(iBoard); i++) itr++;
for (unsigned iFrame=itr->first_; iFrame<itr->last_; ++iFrame) {

LogDebug("L1T") << "Found packet [" << itr->first_ << ", " << itr->last_ << "]";
LogDebug("L1T") << "Link " << link << " has " << itr->links_.find(link)->second.size() << " frames";

for (unsigned iFrame=0; iFrame<itr->links_.find(link)->second.size(); ++iFrame) {
uint64_t d = itr->links_.find(link)->second.at(iFrame);
data.push_back(d);
}

}
else {

for (unsigned iFrame=txIndex_.at(iBoard); iFrame<txIndex_.at(iBoard)+size; ++iFrame) {
uint64_t d = txFileReader_.get(iBoard).link(link).at(iFrame);
// LogDebug("L1T") << "Frame " << iFrame << " : " << std::hex << d;
LogDebug("L1T") << "Frame " << iFrame << " : " << std::hex << d;
if ((d & 0x100000000) > 0) data.push_back( d & 0xffffffff );
}
txIndex_.at(iBoard) += nFramesPerEvent_;

}

LogDebug("L1T") << "AMC " << iBoard << " block " << id << ", size " << data.size();
LogDebug("L1T") << "Board " << iBoard << " block " << id << ", size " << data.size();

Block block(id, data);

blocks.push_back(block);

}



if (packetisedData_) {
rxIndex_.at(iBoard)++;
txIndex_.at(iBoard)++;
}
else {
rxIndex_.at(iBoard) += nFramesPerEvent_;
txIndex_.at(iBoard) += nFramesPerEvent_;
}

LogDebug("L1T") << "AMC " << iBoard << ", read " << blocks.size() << " blocks";
LogDebug("L1T") << "Board " << iBoard << ", read " << blocks.size() << " blocks";

return blocks;

Expand Down Expand Up @@ -373,6 +422,7 @@ MP7BufferDumpToRaw::formatAMC(amc13::Packet& amc13, const std::vector<Block>& bl
}

LogDebug("L1T") << "Creating AMC packet " << iBoard;
// LogDebug("L1T") << iBoard << ", " << boardId_.at(iBoard) << ", " << load64.size();

amc13.add(iBoard, boardId_.at(iBoard), load64);

Expand Down
15 changes: 15 additions & 0 deletions EventFilter/L1TRawToDigi/python/gtStage2Digis_cfi.py
@@ -0,0 +1,15 @@
import FWCore.ParameterSet.Config as cms

gtStage2Digis = cms.EDProducer(
"L1TRawToDigi",
Setup = cms.string("stage2::GTSetup"),
InputLabel = cms.InputTag("rawDataCollector"),
FedIds = cms.vint32( 1404 ),
FWId = cms.untracked.int32(2),
lenSlinkHeader = cms.untracked.int32(8),
lenSlinkTrailer = cms.untracked.int32(8),
lenAMCHeader = cms.untracked.int32(8),
lenAMCTrailer = cms.untracked.int32(0),
lenAMC13Header = cms.untracked.int32(8),
lenAMC13Trailer = cms.untracked.int32(8)
)
Expand Up @@ -66,7 +66,7 @@
0,0,0,0, # q13 52-55
0,0,0,0, # q14 56-59
0,0,0,0, # q15 60-63
0,0,6,0, # q16 64-67
0,0,0,0, # q16 64-67
0,0,0,0) # q17 68-71
)
)
Expand Down
74 changes: 74 additions & 0 deletions EventFilter/L1TRawToDigi/python/stage2GTMP7BufferRaw_cfi.py
@@ -0,0 +1,74 @@
import FWCore.ParameterSet.Config as cms

stage2GTRaw = cms.EDProducer(
"MP7BufferDumpToRaw",
rxFile = cms.untracked.string("gt_rx_summary.txt"),
txFile = cms.untracked.string("gt_tx_summary.txt"),

# input file type
packetisedData = cms.untracked.bool(False),

# parameters for non-packetised data
nFramesPerEvent = cms.untracked.int32(6),
nFramesOffset = cms.untracked.vuint32(0),
nFramesLatency = cms.untracked.vuint32(0),

# DAQ parameters
fedId = cms.untracked.int32(1404),
eventType = cms.untracked.int32(238),
fwVersion = cms.untracked.int32(255),
lenSlinkHeader = cms.untracked.int32(8), # length in 8 bit words !
lenSlinkTrailer = cms.untracked.int32(8),

# readout parameters
boardId = cms.untracked.vint32( 0 ),
mux = cms.untracked.bool(False),
muxOffset = cms.untracked.int32(0),

# these parameters specify the amount of data from each link to be
# recorded in the FEDRawData object
# if insufficient data is read from any channel to produce the
# record, module will pad with zeros
blocks = cms.untracked.VPSet(
cms.untracked.PSet(
rxBlockLength = cms.untracked.vint32(0,0,0,0, # q0 0-3
0,0,6,6, # q1 4-7
0,0,6,0, # q2 8-11
0,0,0,0, # q3 12-15
0,0,0,0, # q4 16-19
0,0,0,0, # q5 20-23
0,0,0,0, # q6 24-27
0,0,0,0, # q7 28-31
0,0,0,0, # q8 32-35
0,0,0,0, # q9 36-39
0,0,0,0, # q10 40-43
0,0,0,0, # q11 44-47
0,0,0,0, # q12 48-51
0,0,0,0, # q13 52-55
0,0,0,0, # q14 56-59
0,0,0,0, # q15 60-63
0,0,0,0, # q16 64-67
0,0,0,0), # q17 68-71

txBlockLength = cms.untracked.vint32(6,6,6,0, # q0 0-3
0,0,0,0, # q1 4-7
0,0,0,0, # q2 8-11
0,0,0,0, # q3 12-15
0,0,0,0, # q4 16-19
0,0,0,0, # q5 20-23
0,0,0,0, # q6 24-27
0,0,0,0, # q7 28-31
0,0,0,0, # q8 32-35
0,0,0,0, # q9 36-39
0,0,0,0, # q10 40-43
0,0,0,0, # q11 44-47
0,0,0,0, # q12 48-51
0,0,0,0, # q13 52-55
0,0,0,0, # q14 56-59
0,0,0,0, # q15 60-63
0,0,0,0, # q16 64-67
0,0,0,0) # q17 68-71
)
)

)
5 changes: 4 additions & 1 deletion EventFilter/L1TRawToDigi/python/stage2MP7BufferRaw_cff.py
Expand Up @@ -2,15 +2,18 @@

from EventFilter.L1TRawToDigi.stage2MP7BufferRaw_cfi import *
from EventFilter.L1TRawToDigi.stage2DemuxMP7BufferRaw_cfi import *
from EventFilter.L1TRawToDigi.stage2GTMP7BufferRaw_cfi import *
from EventFilter.RawDataCollector.rawDataCollector_cfi import *

rawDataCollector.RawCollectionList = cms.VInputTag(
cms.InputTag('stage2MPRaw'),
cms.InputTag('stage2DemuxRaw')
cms.InputTag('stage2DemuxRaw'),
cms.InputTag('stage2GTRaw')
)

stage2MP7BufferRaw = cms.Sequence(
stage2MPRaw
+stage2DemuxRaw
+stage2GTRaw
+rawDataCollector
)
1 change: 1 addition & 0 deletions EventFilter/L1TRawToDigi/src/Block.cc
Expand Up @@ -49,6 +49,7 @@ namespace l1t {
MP7Payload::getHeader()
{
LogTrace("L1T") << "Getting header from " << std::hex << *data_;

return BlockHeader(data_++);
}

Expand Down
Expand Up @@ -7,14 +7,15 @@
#include "DataFormats/L1Trigger/interface/Jet.h"
#include "DataFormats/L1Trigger/interface/Tau.h"

#include "EventFilter/L1TRawToDigi/interface/UnpackerCollections.h"
//#include "EventFilter/L1TRawToDigi/interface/UnpackerCollections.h"
#include "L1TObjectCollections.h"

namespace l1t {
namespace stage2 {
class CaloCollections : public UnpackerCollections {
class CaloCollections : public L1TObjectCollections {
public:
CaloCollections(edm::Event& e) :
UnpackerCollections(e),
L1TObjectCollections(e),
towers_(new CaloTowerBxCollection()),
egammas_(new EGammaBxCollection()),
etsums_(new EtSumBxCollection()),
Expand All @@ -26,10 +27,10 @@ namespace l1t {
virtual ~CaloCollections();

inline CaloTowerBxCollection* getTowers() { return towers_.get(); };
inline EGammaBxCollection* getEGammas() { return egammas_.get(); };
inline EtSumBxCollection* getEtSums() { return etsums_.get(); };
inline JetBxCollection* getJets() { return jets_.get(); };
inline TauBxCollection* getTaus() { return taus_.get(); };
inline EGammaBxCollection* getEGammas() override { return egammas_.get(); };
inline EtSumBxCollection* getEtSums() override { return etsums_.get(); };
inline JetBxCollection* getJets() override { return jets_.get(); };
inline TauBxCollection* getTaus() override { return taus_.get(); };

inline EtSumBxCollection* getMPEtSums() { return mp_etsums_.get(); };
inline JetBxCollection* getMPJets() { return mp_jets_.get(); };
Expand Down
Expand Up @@ -59,10 +59,9 @@ namespace l1t {

UnpackerMap res;
if (fed == 1366) {
res[1] = egamma_unp;
res[3] = etsum_unp;
res[5] = jet_unp;
res[7] = tau_unp;
res[13] = jet_unp;
res[15] = jet_unp;
res[21] = etsum_unp;
} else if (fed == 1360) {
res[1] = mp_unp;
res[3] = mp_unp;
Expand Down
Expand Up @@ -29,9 +29,9 @@ namespace stage2 {
int firstBX = -(std::ceil((double)nBX/2.)-1);
int lastBX;
if (nBX % 2 == 0) {
lastBX = std::ceil((double)nBX/2.)+1;
} else {
lastBX = std::ceil((double)nBX/2.);
} else {
lastBX = std::ceil((double)nBX/2.)-1;
}

auto res_ = static_cast<CaloCollections*>(coll)->getTowers();
Expand All @@ -49,7 +49,7 @@ namespace stage2 {
unsigned link_phi = (link % 2 == 0) ? link : (link -1);

// Loop over multiple BX and fill towers collection
for (int bx=firstBX; bx<lastBX; bx++){
for (int bx=firstBX; bx<=lastBX; bx++){

for (unsigned frame=1; frame<42 && frame<(block.header().getSize()+1); frame++){

Expand Down