Skip to content

Commit 96d364e

Browse files
authored
Merge pull request #49200 from AdrianoDee/fix_hit_track_writing
Fix Hit and Track SoA Writing to File
2 parents 3f4df1a + 095c9bb commit 96d364e

16 files changed

+217
-16
lines changed
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "DataFormats/Portable/interface/PortableHostCollectionReadRules.h"
22
#include "DataFormats/TrackSoA/interface/TracksHost.h"
33

4-
using namespace reco;
5-
SET_PORTABLEHOSTMULTICOLLECTION_READ_RULES(TracksHost);
4+
SET_PORTABLEHOSTMULTICOLLECTION_READ_RULES(reco::TracksHost);

DataFormats/TrackSoA/test/TestReadHostTrackSoA.cc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,20 @@ namespace edmtest {
2323

2424
private:
2525
edm::EDGetTokenT<::reco::TracksHost> getToken_;
26+
const unsigned int trackSize_;
2627
};
2728

2829
TestReadHostTrackSoA::TestReadHostTrackSoA(edm::ParameterSet const& iPSet)
29-
: getToken_(consumes(iPSet.getParameter<edm::InputTag>("input"))) {}
30+
: getToken_(consumes(iPSet.getParameter<edm::InputTag>("input"))),
31+
trackSize_(iPSet.getParameter<unsigned int>("trackSize")) {}
3032

3133
void TestReadHostTrackSoA::analyze(edm::StreamID, edm::Event const& iEvent, edm::EventSetup const&) const {
3234
auto const& tracks = iEvent.get(getToken_);
3335
auto tracksView = tracks.view();
3436

37+
assert(tracksView.metadata().size() == int(trackSize_));
38+
assert(tracksView.nTracks() == int(trackSize_));
39+
3540
for (int i = 0; i < tracksView.metadata().size(); ++i) {
3641
if (tracksView[i].eta() != float(i)) {
3742
throw cms::Exception("TestReadHostTrackSoA Failure") << "TestReadHostTrackSoA::analyze, entry. i = " << i;
@@ -42,6 +47,7 @@ namespace edmtest {
4247
void TestReadHostTrackSoA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
4348
edm::ParameterSetDescription desc;
4449
desc.add<edm::InputTag>("input");
50+
desc.add<unsigned int>("trackSize", 1000);
4551
descriptions.addDefault(desc);
4652
}
4753
} // namespace edmtest

DataFormats/TrackSoA/test/TestWriteHostTrackSoA.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ namespace edmtest {
2323
static void fillDescriptions(edm::ConfigurationDescriptions&);
2424

2525
private:
26-
unsigned int trackSize_;
26+
const unsigned int trackSize_;
2727
edm::EDPutTokenT<::reco::TracksHost> putToken_;
2828
};
2929

@@ -36,6 +36,7 @@ namespace edmtest {
3636
for (unsigned int i = 0; i < trackSize_; ++i) {
3737
tracksView[i].eta() = float(i);
3838
}
39+
tracksView.nTracks() = trackSize_;
3940
iEvent.emplace(putToken_, std::move(tracks));
4041
}
4142

DataFormats/TrackSoA/test/testReadHostTrackSoA.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring("file:"+sys.argv[1]))
77

88
process.testReadHostTrackSoA = cms.EDAnalyzer("TestReadHostTrackSoA",
9-
input = cms.InputTag("trackSoA", "", "WRITE")
9+
input = cms.InputTag("trackSoA", "", "WRITE"),
10+
trackSize = cms.uint32(2708)
1011
)
1112

1213
process.out = cms.OutputModule("PoolOutputModule",

DataFormats/TrackSoA/test/testWriteHostTrackSoA.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,3 @@
1717

1818
process.path = cms.Path(process.trackSoA)
1919
process.endPath = cms.EndPath(process.out)
20-
21-
'testTrackSoAWriter.root'
22-
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "DataFormats/Portable/interface/PortableHostCollectionReadRules.h"
22
#include "DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsHost.h"
33

4-
using namespace reco;
5-
SET_PORTABLEHOSTMULTICOLLECTION_READ_RULES(HitPortableCollectionHost);
4+
SET_PORTABLEHOSTMULTICOLLECTION_READ_RULES(reco::HitPortableCollectionHost);

DataFormats/TrackingRecHitSoA/test/TestReadHostHitSoA.cc

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,23 @@ namespace edmtest {
2727

2828
private:
2929
edm::EDGetTokenT<HitsOnHost> getToken_;
30+
const unsigned int hitSize_;
31+
const unsigned int offsetBPIX2_;
3032
};
3133

3234
TestReadHostHitSoA::TestReadHostHitSoA(edm::ParameterSet const& iPSet)
33-
: getToken_(consumes(iPSet.getParameter<edm::InputTag>("input"))) {}
35+
: getToken_(consumes(iPSet.getParameter<edm::InputTag>("input"))),
36+
hitSize_(iPSet.getParameter<unsigned int>("hitSize")),
37+
offsetBPIX2_(iPSet.getParameter<unsigned int>("offsetBPIX2")) {}
3438

3539
void TestReadHostHitSoA::analyze(edm::StreamID, edm::Event const& iEvent, edm::EventSetup const&) const {
3640
auto const& hits = iEvent.get(getToken_);
3741
auto hitsView = hits.view();
3842

43+
std::cout << "hitsView.metadata().size() = " << hitsView.metadata().size() << std::endl;
44+
assert(hitsView.metadata().size() == int(hitSize_));
45+
assert(hitsView.offsetBPIX2() == int(offsetBPIX2_));
46+
3947
for (int i = 0; i < hitsView.metadata().size(); ++i) {
4048
if (hitsView[i].xGlobal() != float(i)) {
4149
throw cms::Exception("TestWriteHostHitSoA Failure") << "TestReadHostHitSoA::analyze, entry. i = " << i;
@@ -46,6 +54,8 @@ namespace edmtest {
4654
void TestReadHostHitSoA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
4755
edm::ParameterSetDescription desc;
4856
desc.add<edm::InputTag>("input");
57+
desc.add<unsigned int>("hitSize", 1000);
58+
desc.add<unsigned int>("offsetBPIX2", 50);
4959
descriptions.addDefault(desc);
5060
}
5161
} // namespace edmtest

DataFormats/TrackingRecHitSoA/test/TestWriteHostHitSoA.cc

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,30 @@ namespace edmtest {
2525
using HitsOnHost = ::reco::TrackingRecHitHost;
2626

2727
private:
28-
unsigned int hitSize_;
28+
const unsigned int hitSize_;
29+
const unsigned int offsetBPIX2_;
2930
edm::EDPutTokenT<HitsOnHost> putToken_;
3031
};
3132

3233
TestWriteHostHitSoA::TestWriteHostHitSoA(edm::ParameterSet const& iPSet)
33-
: hitSize_(iPSet.getParameter<unsigned int>("hitSize")), putToken_(produces()) {}
34+
: hitSize_(iPSet.getParameter<unsigned int>("hitSize")),
35+
offsetBPIX2_(iPSet.getParameter<unsigned int>("offsetBPIX2")),
36+
putToken_(produces()) {}
3437

3538
void TestWriteHostHitSoA::produce(edm::StreamID, edm::Event& iEvent, edm::EventSetup const&) const {
3639
HitsOnHost hits(cms::alpakatools::host(), hitSize_, 100);
3740
auto hitsView = hits.view();
3841
for (unsigned int i = 0; i < hitSize_; ++i) {
3942
hitsView[i].xGlobal() = float(i);
4043
}
44+
hitsView.offsetBPIX2() = offsetBPIX2_;
4145
iEvent.emplace(putToken_, std::move(hits));
4246
}
4347

4448
void TestWriteHostHitSoA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
4549
edm::ParameterSetDescription desc;
4650
desc.add<unsigned int>("hitSize", 1000);
51+
desc.add<unsigned int>("offsetBPIX2", 50);
4752
descriptions.addDefault(desc);
4853
}
4954
} // namespace edmtest

DataFormats/TrackingRecHitSoA/test/testReadHostHitSoA.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring("file:"+sys.argv[1]))
77

88
process.testReadHostHitSoA = cms.EDAnalyzer("TestReadHostHitSoA",
9-
input = cms.InputTag("hitSoA", "", "WRITE")
9+
input = cms.InputTag("hitSoA", "", "WRITE"),
10+
hitSize = cms.uint32(2708)
1011
)
1112

1213
process.out = cms.OutputModule("PoolOutputModule",

DataFormats/TrackingRecHitSoA/test/testWriteHostHitSoA.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
process.maxEvents.input = 5
99

1010
process.hitSoA = cms.EDProducer("TestWriteHostHitSoA",
11-
hitSize = cms.uint32(2708)
11+
hitSize = cms.uint32(2708),
1212
)
1313

1414
process.out = cms.OutputModule("PoolOutputModule",
15-
fileName = cms.untracked.string(sys.argv[1])
15+
fileName = cms.untracked.string(sys.argv[1]),
1616
)
1717

1818
process.path = cms.Path(process.hitSoA)

0 commit comments

Comments
 (0)