Skip to content

Commit c1f23fb

Browse files
authored
Merge pull request #48514 from MartinKlevs/updated_MTDTrackQualityMVA_BDT
MTD reconstruction: updated MTD track quality BDT
2 parents ea6908c + 509d009 commit c1f23fb

File tree

4 files changed

+318
-223
lines changed

4 files changed

+318
-223
lines changed

RecoMTD/TimingIDTools/interface/MTDTrackQualityMVA.h

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,23 @@
1010
#include "CommonTools/MVAUtils/interface/TMVAEvaluator.h"
1111

1212
#define MTDTRACKQUALITYMVA_VARS(MTDBDTVAR) \
13-
MTDBDTVAR(pt) \
14-
MTDBDTVAR(eta) \
15-
MTDBDTVAR(phi) \
16-
MTDBDTVAR(chi2) \
17-
MTDBDTVAR(ndof) \
18-
MTDBDTVAR(numberOfValidHits) \
19-
MTDBDTVAR(numberOfValidPixelBarrelHits) \
20-
MTDBDTVAR(numberOfValidPixelEndcapHits) \
21-
MTDBDTVAR(btlMatchChi2) \
22-
MTDBDTVAR(btlMatchTimeChi2) \
23-
MTDBDTVAR(etlMatchChi2) \
24-
MTDBDTVAR(etlMatchTimeChi2) \
25-
MTDBDTVAR(mtdt) \
26-
MTDBDTVAR(path_len)
13+
MTDBDTVAR(Track_pt) \
14+
MTDBDTVAR(Track_eta) \
15+
MTDBDTVAR(Track_phi) \
16+
MTDBDTVAR(Track_dz) \
17+
MTDBDTVAR(Track_dxy) \
18+
MTDBDTVAR(Track_chi2) \
19+
MTDBDTVAR(Track_ndof) \
20+
MTDBDTVAR(Track_npixBarrelValidHits) \
21+
MTDBDTVAR(Track_npixEndcapValidHits) \
22+
MTDBDTVAR(Track_BTLchi2) \
23+
MTDBDTVAR(Track_BTLtime_chi2) \
24+
MTDBDTVAR(Track_ETLchi2) \
25+
MTDBDTVAR(Track_ETLtime_chi2) \
26+
MTDBDTVAR(Track_Tmtd) \
27+
MTDBDTVAR(Track_sigmaTmtd) \
28+
MTDBDTVAR(Track_length) \
29+
MTDBDTVAR(Track_lHitPos)
2730

2831
#define MTDBDTVAR_ENUM(ENUM) ENUM,
2932
#define MTDBDTVAR_STRING(STRING) #STRING,
@@ -38,14 +41,17 @@ class MTDTrackQualityMVA {
3841
//---getters---
3942
// 4D
4043
float operator()(const reco::TrackRef& trk,
44+
const reco::BeamSpot& beamspot,
4145
const edm::ValueMap<int>& npixBarrels,
4246
const edm::ValueMap<int>& npixEndcaps,
4347
const edm::ValueMap<float>& btl_chi2s,
4448
const edm::ValueMap<float>& btl_time_chi2s,
4549
const edm::ValueMap<float>& etl_chi2s,
4650
const edm::ValueMap<float>& etl_time_chi2s,
4751
const edm::ValueMap<float>& tmtds,
48-
const edm::ValueMap<float>& trk_lengths) const;
52+
const edm::ValueMap<float>& sigmatmtds,
53+
const edm::ValueMap<float>& trk_lengths,
54+
const edm::ValueMap<float>& trk_lhitpos) const;
4955

5056
private:
5157
std::vector<std::string> vars_, spec_vars_;

RecoMTD/TimingIDTools/plugins/MTDTrackQualityMVAProducer.cc

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,31 +37,37 @@ class MTDTrackQualityMVAProducer : public edm::stream::EDProducer<> {
3737

3838
edm::EDGetTokenT<reco::TrackCollection> tracksToken_;
3939
edm::EDGetTokenT<reco::TrackCollection> tracksMTDToken_;
40-
4140
edm::EDGetTokenT<edm::ValueMap<float>> btlMatchChi2Token_;
41+
edm::EDGetTokenT<reco::BeamSpot> RecBeamSpotToken_;
4242
edm::EDGetTokenT<edm::ValueMap<float>> btlMatchTimeChi2Token_;
4343
edm::EDGetTokenT<edm::ValueMap<float>> etlMatchChi2Token_;
4444
edm::EDGetTokenT<edm::ValueMap<float>> etlMatchTimeChi2Token_;
4545
edm::EDGetTokenT<edm::ValueMap<float>> mtdTimeToken_;
46+
edm::EDGetTokenT<edm::ValueMap<float>> sigmamtdTimeToken_;
4647
edm::EDGetTokenT<edm::ValueMap<float>> pathLengthToken_;
4748
edm::EDGetTokenT<edm::ValueMap<int>> npixBarrelToken_;
4849
edm::EDGetTokenT<edm::ValueMap<int>> npixEndcapToken_;
50+
edm::EDGetTokenT<edm::ValueMap<float>> outermostHitPositionToken_;
4951

5052
MTDTrackQualityMVA mva_;
5153
};
5254

5355
MTDTrackQualityMVAProducer::MTDTrackQualityMVAProducer(const ParameterSet& iConfig)
5456
: tracksToken_(consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("tracksSrc"))),
5557
btlMatchChi2Token_(consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("btlMatchChi2Src"))),
58+
RecBeamSpotToken_(consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("offlineBS"))),
5659
btlMatchTimeChi2Token_(
5760
consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("btlMatchTimeChi2Src"))),
5861
etlMatchChi2Token_(consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("etlMatchChi2Src"))),
5962
etlMatchTimeChi2Token_(
6063
consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("etlMatchTimeChi2Src"))),
6164
mtdTimeToken_(consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("mtdTimeSrc"))),
65+
sigmamtdTimeToken_(consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmamtdTimeSrc"))),
6266
pathLengthToken_(consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("pathLengthSrc"))),
6367
npixBarrelToken_(consumes<edm::ValueMap<int>>(iConfig.getParameter<edm::InputTag>("npixBarrelSrc"))),
6468
npixEndcapToken_(consumes<edm::ValueMap<int>>(iConfig.getParameter<edm::InputTag>("npixEndcapSrc"))),
69+
outermostHitPositionToken_(
70+
consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("outermostHitPositionSrc"))),
6571
mva_(iConfig.getParameter<edm::FileInPath>("qualityBDT_weights_file").fullPath()) {
6672
produces<edm::ValueMap<float>>(mvaName);
6773
}
@@ -79,15 +85,20 @@ void MTDTrackQualityMVAProducer::fillDescriptions(edm::ConfigurationDescriptions
7985
desc.add<edm::InputTag>("etlMatchTimeChi2Src", edm::InputTag("trackExtenderWithMTD", "etlMatchTimeChi2"))
8086
->setComment("ETL Chi2 Matching value Map");
8187
desc.add<edm::InputTag>("mtdTimeSrc", edm::InputTag("trackExtenderWithMTD", "generalTracktmtd"))
82-
->setComment("MTD TIme value Map");
88+
->setComment("MTD Time value Map");
89+
desc.add<edm::InputTag>("sigmamtdTimeSrc", edm::InputTag("trackExtenderWithMTD", "generalTracksigmatmtd"))
90+
->setComment("sigma MTD Time value Map");
8391
desc.add<edm::InputTag>("pathLengthSrc", edm::InputTag("trackExtenderWithMTD", "generalTrackPathLength"))
8492
->setComment("MTD PathLength value Map");
8593
desc.add<edm::InputTag>("npixBarrelSrc", edm::InputTag("trackExtenderWithMTD", "npixBarrel"))
8694
->setComment("# of Barrel pixel associated to refitted tracks");
8795
desc.add<edm::InputTag>("npixEndcapSrc", edm::InputTag("trackExtenderWithMTD", "npixEndcap"))
8896
->setComment("# of Endcap pixel associated to refitted tracks");
97+
desc.add<edm::InputTag>("outermostHitPositionSrc",
98+
edm::InputTag("trackExtenderWithMTD", "generalTrackOutermostHitPosition"));
99+
desc.add<edm::InputTag>("offlineBS", edm::InputTag("offlineBeamSpot"));
89100
desc.add<edm::FileInPath>("qualityBDT_weights_file",
90-
edm::FileInPath("RecoMTD/TimingIDTools/data/clf4D_MTDquality_bo.xml"))
101+
edm::FileInPath("RecoMTD/TimingIDTools/data/BDT_nvars_17_d7.xml"))
91102
->setComment("Track MTD quality BDT weights");
92103
descriptions.add("mtdTrackQualityMVAProducer", desc);
93104
}
@@ -109,6 +120,11 @@ void MTDTrackQualityMVAProducer::produce(edm::Event& ev, const edm::EventSetup&
109120
ev.getByToken(tracksToken_, tracksH);
110121
const auto& tracks = *tracksH;
111122

123+
reco::BeamSpot beamSpot;
124+
edm::Handle<reco::BeamSpot> BeamSpotH;
125+
ev.getByToken(RecBeamSpotToken_, BeamSpotH);
126+
beamSpot = *BeamSpotH;
127+
112128
const auto& btlMatchChi2 = ev.get(btlMatchChi2Token_);
113129
const auto& btlMatchTimeChi2 = ev.get(btlMatchTimeChi2Token_);
114130
const auto& etlMatchChi2 = ev.get(etlMatchChi2Token_);
@@ -117,6 +133,8 @@ void MTDTrackQualityMVAProducer::produce(edm::Event& ev, const edm::EventSetup&
117133
const auto& npixBarrel = ev.get(npixBarrelToken_);
118134
const auto& npixEndcap = ev.get(npixEndcapToken_);
119135
const auto& mtdTime = ev.get(mtdTimeToken_);
136+
const auto& sigmamtdTime = ev.get(sigmamtdTimeToken_);
137+
const auto& lHitPos = ev.get(outermostHitPositionToken_);
120138

121139
std::vector<float> mvaOutRaw;
122140

@@ -127,14 +145,17 @@ void MTDTrackQualityMVAProducer::produce(edm::Event& ev, const edm::EventSetup&
127145
mvaOutRaw.push_back(-1.);
128146
else {
129147
mvaOutRaw.push_back(mva_(trackref,
148+
beamSpot,
130149
npixBarrel,
131150
npixEndcap,
132151
btlMatchChi2,
133152
btlMatchTimeChi2,
134153
etlMatchChi2,
135154
etlMatchTimeChi2,
136155
mtdTime,
137-
pathLength));
156+
sigmamtdTime,
157+
pathLength,
158+
lHitPos));
138159
}
139160
}
140161
fillValueMap(ev, tracksH, mvaOutRaw, mvaName);

0 commit comments

Comments
 (0)