@@ -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
5355MTDTrackQualityMVAProducer::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