Skip to content

Commit 509d009

Browse files
committed
Updated MTD reconstruction track quality BDT
Updated the code for MTDTrackQualityMVA in order to support an updated BDT model with more input parameters. Rewritten the BDT part of MVATrainingNtuple.cc to be more similar to Validation/MtdValidation/plugins/MtdTracksValidation.cc and to save extra parameters.
1 parent 6bbdfff commit 509d009

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)