1 #ifndef RecoTracker_MkFitCore_standalone_TTreeValidation_h 2 #define RecoTracker_MkFitCore_standalone_TTreeValidation_h 16 #include <unordered_map> 24 typedef std::map<int, FitVal> FitValLayMap;
25 typedef std::unordered_map<int, FitValLayMap> TkIDtoFitValLayMapMap;
27 class TTreeValidation :
public Validation {
32 void initializeEfficiencyTree();
33 void initializeFakeRateTree();
34 void initializeConfigTree();
35 void initializeCMSSWEfficiencyTree();
36 void initializeCMSSWFakeRateTree();
37 void initializeFitTree();
41 void collectFitInfo(
const FitVal& tmpfitval,
int tkid,
int layer)
override;
44 void resetFitBranches();
62 void makeRecoTkToSeedTkMapDumbCMSSW(
const TrackExtraVec& recoextras,
68 void storeSeedAndMCID(
Event&
ev);
71 int getLastFoundHit(
const int trackMCHitID,
const int mcTrackID,
const Event&
ev);
72 int getMaskAssignment(
const int refID);
74 void fillMinHitInfo(
const Track&
track, std::vector<int>& lyrs, std::vector<int>& idxs);
75 void fillFullHitInfo(
const Event&
ev,
77 std::vector<int>& lyrs,
78 std::vector<int>& idxs,
79 std::vector<int>& mcTkIDs,
80 std::vector<float>& xs,
81 std::vector<float>& ys,
82 std::vector<float>& zs);
94 std::unique_ptr<TFile> f_;
96 TkIDtoFitValLayMapMap fitValTkMapMap_;
127 std::unique_ptr<TTree> efftree_;
128 int evtID_eff_ = 0, mcID_eff_ = 0;
129 int mcmask_seed_eff_ = 0, mcmask_build_eff_ = 0, mcmask_fit_eff_ = 0;
130 int seedID_seed_eff_ = 0, seedID_build_eff_ = 0, seedID_fit_eff_ = 0;
131 int mcTSmask_seed_eff_ = 0, mcTSmask_build_eff_ = 0, mcTSmask_fit_eff_ = 0;
134 float x_mc_gen_eff_ = 0., y_mc_gen_eff_ = 0., z_mc_gen_eff_ = 0.;
135 float pt_mc_gen_eff_ = 0., phi_mc_gen_eff_ = 0., eta_mc_gen_eff_ = 0.;
136 float nLayers_mc_eff_;
137 int nHits_mc_eff_ = 0, lastlyr_mc_eff_ = 0;
140 float xhit_seed_eff_ = 0., xhit_build_eff_ = 0., xhit_fit_eff_ = 0.;
141 float yhit_seed_eff_ = 0., yhit_build_eff_ = 0., yhit_fit_eff_ = 0.;
142 float zhit_seed_eff_ = 0., zhit_build_eff_ = 0., zhit_fit_eff_ = 0.;
145 float pt_mc_seed_eff_ = 0., pt_mc_build_eff_ = 0., pt_mc_fit_eff_ = 0.;
146 float pt_seed_eff_ = 0., pt_build_eff_ = 0., pt_fit_eff_ = 0., ept_seed_eff_ = 0., ept_build_eff_ = 0.,
148 float phi_mc_seed_eff_ = 0., phi_mc_build_eff_ = 0., phi_mc_fit_eff_ = 0.;
149 float phi_seed_eff_ = 0., phi_build_eff_ = 0., phi_fit_eff_ = 0., ephi_seed_eff_ = 0., ephi_build_eff_ = 0.,
151 float eta_mc_seed_eff_ = 0., eta_mc_build_eff_ = 0., eta_mc_fit_eff_ = 0.;
152 float eta_seed_eff_ = 0., eta_build_eff_ = 0., eta_fit_eff_ = 0., eeta_seed_eff_ = 0., eeta_build_eff_ = 0.,
156 int nHits_seed_eff_ = 0, nHits_build_eff_ = 0, nHits_fit_eff_ = 0;
157 float nLayers_seed_eff_ = 0, nLayers_build_eff_ = 0, nLayers_fit_eff_ = 0;
158 int nHitsMatched_seed_eff_ = 0, nHitsMatched_build_eff_ = 0, nHitsMatched_fit_eff_ = 0;
159 float fracHitsMatched_seed_eff_ = 0, fracHitsMatched_build_eff_ = 0, fracHitsMatched_fit_eff_ = 0;
160 int lastlyr_seed_eff_ = 0, lastlyr_build_eff_ = 0, lastlyr_fit_eff_ = 0;
163 float dphi_seed_eff_ = 0., dphi_build_eff_ = 0., dphi_fit_eff_ = 0.;
166 float hitchi2_seed_eff_ = 0., hitchi2_build_eff_ = 0., hitchi2_fit_eff_ = 0.;
167 float helixchi2_seed_eff_ = 0., helixchi2_build_eff_ = 0., helixchi2_fit_eff_ = 0.;
168 int score_seed_eff_ = 0, score_build_eff_ = 0, score_fit_eff_ = 0;
171 int duplmask_seed_eff_ = 0, duplmask_build_eff_ = 0, duplmask_fit_eff_ = 0;
172 int nTkMatches_seed_eff_ = 0, nTkMatches_build_eff_ = 0, nTkMatches_fit_eff_ = 0;
175 ULong64_t itermask_seed_eff_ = 0, itermask_build_eff_ = 0, itermask_fit_eff_ = 0;
176 ULong64_t iterduplmask_seed_eff_ = 0, iterduplmask_build_eff_ = 0, iterduplmask_fit_eff_ = 0;
177 ULong64_t algo_seed_eff_ = 0;
180 std::vector<int> hitlyrs_mc_eff_, hitlyrs_seed_eff_, hitlyrs_build_eff_, hitlyrs_fit_eff_;
181 std::vector<int> hitidxs_mc_eff_, hitidxs_seed_eff_, hitidxs_build_eff_, hitidxs_fit_eff_;
182 std::vector<int> hitmcTkIDs_mc_eff_, hitmcTkIDs_seed_eff_, hitmcTkIDs_build_eff_, hitmcTkIDs_fit_eff_;
183 std::vector<float> hitxs_mc_eff_, hitxs_seed_eff_, hitxs_build_eff_, hitxs_fit_eff_;
184 std::vector<float> hitys_mc_eff_, hitys_seed_eff_, hitys_build_eff_, hitys_fit_eff_;
185 std::vector<float> hitzs_mc_eff_, hitzs_seed_eff_, hitzs_build_eff_, hitzs_fit_eff_;
188 std::unique_ptr<TTree> frtree_;
189 int evtID_FR_ = 0, seedID_FR_ = 0;
191 int seedmask_seed_FR_ = 0, seedmask_build_FR_ = 0, seedmask_fit_FR_ = 0;
194 float xhit_seed_FR_ = 0., xhit_build_FR_ = 0., xhit_fit_FR_ = 0.;
195 float yhit_seed_FR_ = 0., yhit_build_FR_ = 0., yhit_fit_FR_ = 0.;
196 float zhit_seed_FR_ = 0., zhit_build_FR_ = 0., zhit_fit_FR_ = 0.;
199 float pt_mc_seed_FR_ = 0., pt_mc_build_FR_ = 0., pt_mc_fit_FR_ = 0.;
200 float pt_seed_FR_ = 0., pt_build_FR_ = 0., pt_fit_FR_ = 0., ept_seed_FR_ = 0., ept_build_FR_ = 0., ept_fit_FR_ = 0.;
201 float phi_mc_seed_FR_ = 0., phi_mc_build_FR_ = 0., phi_mc_fit_FR_ = 0.;
202 float phi_seed_FR_ = 0., phi_build_FR_ = 0., phi_fit_FR_ = 0., ephi_seed_FR_ = 0., ephi_build_FR_ = 0.,
204 float eta_mc_seed_FR_ = 0., eta_mc_build_FR_ = 0., eta_mc_fit_FR_ = 0.;
205 float eta_seed_FR_ = 0., eta_build_FR_ = 0., eta_fit_FR_ = 0., eeta_seed_FR_ = 0., eeta_build_FR_ = 0.,
208 int nHits_seed_FR_ = 0, nHits_build_FR_ = 0, nHits_fit_FR_ = 0;
209 float nLayers_seed_FR_ = 0, nLayers_build_FR_ = 0, nLayers_fit_FR_ = 0;
210 int nHitsMatched_seed_FR_ = 0, nHitsMatched_build_FR_ = 0, nHitsMatched_fit_FR_ = 0;
211 float fracHitsMatched_seed_FR_ = 0, fracHitsMatched_build_FR_ = 0, fracHitsMatched_fit_FR_ = 0;
212 int lastlyr_seed_FR_ = 0, lastlyr_build_FR_ = 0, lastlyr_fit_FR_ = 0;
213 int algorithm_FR_ = 0;
216 float dphi_seed_FR_ = 0., dphi_build_FR_ = 0., dphi_fit_FR_ = 0.;
218 float hitchi2_seed_FR_ = 0., hitchi2_build_FR_ = 0., hitchi2_fit_FR_ = 0.;
219 int score_seed_FR_ = 0, score_build_FR_ = 0, score_fit_FR_ = 0;
221 int mcID_seed_FR_ = 0, mcID_build_FR_ = 0, mcID_fit_FR_ = 0;
222 int mcmask_seed_FR_ = 0, mcmask_build_FR_ = 0, mcmask_fit_FR_ = 0;
223 int mcTSmask_seed_FR_ = 0, mcTSmask_build_FR_ = 0, mcTSmask_fit_FR_ = 0;
224 int nHits_mc_seed_FR_ = 0, nHits_mc_build_FR_ = 0, nHits_mc_fit_FR_ = 0;
225 float nLayers_mc_seed_FR_ = 0, nLayers_mc_build_FR_ = 0, nLayers_mc_fit_FR_ = 0;
226 int lastlyr_mc_seed_FR_ = 0, lastlyr_mc_build_FR_ = 0, lastlyr_mc_fit_FR_ = 0;
228 float helixchi2_seed_FR_ = 0., helixchi2_build_FR_ = 0., helixchi2_fit_FR_ = 0.;
230 int duplmask_seed_FR_ = 0, duplmask_build_FR_ = 0, duplmask_fit_FR_ = 0;
231 int iTkMatches_seed_FR_ = 0, iTkMatches_build_FR_ = 0, iTkMatches_fit_FR_ = 0;
234 std::vector<int> hitlyrs_seed_FR_, hitlyrs_build_FR_, hitlyrs_fit_FR_, hitlyrs_mc_seed_FR_, hitlyrs_mc_build_FR_,
236 std::vector<int> hitidxs_seed_FR_, hitidxs_build_FR_, hitidxs_fit_FR_, hitidxs_mc_seed_FR_, hitidxs_mc_build_FR_,
238 std::vector<int> hitmcTkIDs_seed_FR_, hitmcTkIDs_build_FR_, hitmcTkIDs_fit_FR_, hitmcTkIDs_mc_seed_FR_,
239 hitmcTkIDs_mc_build_FR_, hitmcTkIDs_mc_fit_FR_;
240 std::vector<float> hitxs_seed_FR_, hitxs_build_FR_, hitxs_fit_FR_, hitxs_mc_seed_FR_, hitxs_mc_build_FR_,
242 std::vector<float> hitys_seed_FR_, hitys_build_FR_, hitys_fit_FR_, hitys_mc_seed_FR_, hitys_mc_build_FR_,
244 std::vector<float> hitzs_seed_FR_, hitzs_build_FR_, hitzs_fit_FR_, hitzs_mc_seed_FR_, hitzs_mc_build_FR_,
248 std::unique_ptr<TTree> configtree_;
249 int Ntracks_ = 0, Nevents_ = 0;
251 int nlayers_per_seed_ = 0, maxCand_ = 0;
252 float chi2Cut_min_ = 0., nSigma_ = 0., minDPhi_ = 0., maxDPhi_ = 0., minDEta_ = 0., maxDEta_ = 0.;
253 float beamspotX_ = 0., beamspotY_ = 0., beamspotZ_ = 0.;
254 float minSimPt_ = 0., maxSimPt_ = 0.;
255 float hitposerrXY_ = 0., hitposerrZ_ = 0., hitposerrR_ = 0.;
256 float varXY_ = 0., varZ_ = 0.;
257 float ptinverr049_ = 0., phierr049_ = 0., thetaerr049_ = 0., ptinverr012_ = 0., phierr012_ = 0., thetaerr012_ = 0.;
260 std::unique_ptr<TTree> cmsswefftree_;
261 int evtID_ceff_ = 0, cmsswID_ceff_ = 0, seedID_cmssw_ceff_ = 0;
263 float x_cmssw_ceff_ = 0., y_cmssw_ceff_ = 0., z_cmssw_ceff_ = 0.;
264 float pt_cmssw_ceff_ = 0., phi_cmssw_ceff_ = 0., eta_cmssw_ceff_ = 0.;
265 float nLayers_cmssw_ceff_ = 0;
266 int nHits_cmssw_ceff_ = 0, lastlyr_cmssw_ceff_ = 0;
269 int seedID_build_ceff_ = 0, mcTrackID_build_ceff_ = 0;
270 int cmsswmask_build_ceff_ = 0;
272 float pt_build_ceff_ = 0., ept_build_ceff_ = 0.;
273 float phi_build_ceff_ = 0., ephi_build_ceff_ = 0.;
274 float eta_build_ceff_ = 0., eeta_build_ceff_ = 0.;
276 float x_mc_build_ceff_ = 0., y_mc_build_ceff_ = 0., z_mc_build_ceff_ = 0.;
277 float pt_mc_build_ceff_ = 0., phi_mc_build_ceff_ = 0., eta_mc_build_ceff_ = 0.;
279 float nLayers_build_ceff_ = 0;
280 int nHits_build_ceff_ = 0, nHitsMatched_build_ceff_ = 0, lastlyr_build_ceff_ = 0;
281 float fracHitsMatched_build_ceff_ = 0;
283 float xhit_build_ceff_ = 0., yhit_build_ceff_ = 0., zhit_build_ceff_ = 0.;
286 float hitchi2_build_ceff_ = 0., helixchi2_build_ceff_ = 0.;
287 int score_build_ceff_ = 0;
288 float dphi_build_ceff_ = 0.;
290 int duplmask_build_ceff_ = 0, nTkMatches_build_ceff_ = 0;
293 int seedID_fit_ceff_ = 0, mcTrackID_fit_ceff_ = 0;
294 int cmsswmask_fit_ceff_ = 0;
296 float pt_fit_ceff_ = 0., ept_fit_ceff_ = 0.;
297 float phi_fit_ceff_ = 0., ephi_fit_ceff_ = 0.;
298 float eta_fit_ceff_ = 0., eeta_fit_ceff_ = 0.;
300 float x_mc_fit_ceff_ = 0., y_mc_fit_ceff_ = 0., z_mc_fit_ceff_ = 0.;
301 float pt_mc_fit_ceff_ = 0., phi_mc_fit_ceff_ = 0., eta_mc_fit_ceff_ = 0.;
303 float nLayers_fit_ceff_ = 0;
304 int nHits_fit_ceff_ = 0, nHitsMatched_fit_ceff_ = 0, lastlyr_fit_ceff_ = 0;
305 float fracHitsMatched_fit_ceff_ = 0;
307 float xhit_fit_ceff_ = 0., yhit_fit_ceff_ = 0., zhit_fit_ceff_ = 0.;
310 float hitchi2_fit_ceff_ = 0., helixchi2_fit_ceff_ = 0.;
311 int score_fit_ceff_ = 0;
312 float dphi_fit_ceff_ = 0.;
314 int duplmask_fit_ceff_ = 0, nTkMatches_fit_ceff_ = 0;
316 ULong64_t itermask_build_ceff_ = 0, itermask_fit_ceff_ = 0;
317 ULong64_t iterduplmask_build_ceff_ = 0, iterduplmask_fit_ceff_ = 0;
318 ULong64_t algo_seed_ceff_ = 0;
321 std::vector<int> hitlyrs_cmssw_ceff_, hitlyrs_build_ceff_, hitlyrs_mc_build_ceff_, hitlyrs_fit_ceff_,
322 hitlyrs_mc_fit_ceff_;
323 std::vector<int> hitidxs_cmssw_ceff_, hitidxs_build_ceff_, hitidxs_mc_build_ceff_, hitidxs_fit_ceff_,
324 hitidxs_mc_fit_ceff_;
327 std::unique_ptr<TTree> cmsswfrtree_;
328 int evtID_cFR_ = 0, seedID_cFR_ = 0, mcTrackID_cFR_ = 0;
331 int algorithm_cFR_ = 0;
334 int cmsswID_build_cFR_ = 0, cmsswmask_build_cFR_ = 0;
336 float pt_build_cFR_ = 0., ept_build_cFR_ = 0.;
337 float phi_build_cFR_ = 0., ephi_build_cFR_ = 0.;
338 float eta_build_cFR_ = 0., eeta_build_cFR_ = 0.;
340 float x_mc_cFR_ = 0., y_mc_cFR_ = 0., z_mc_cFR_ = 0.;
341 float pt_mc_cFR_ = 0., phi_mc_cFR_ = 0., eta_mc_cFR_ = 0.;
343 float nLayers_build_cFR_ = 0;
344 int nHits_build_cFR_ = 0, nHitsMatched_build_cFR_ = 0, lastlyr_build_cFR_ = 0;
345 float fracHitsMatched_build_cFR_ = 0;
347 float xhit_build_cFR_ = 0., yhit_build_cFR_ = 0., zhit_build_cFR_ = 0.;
350 float hitchi2_build_cFR_ = 0., helixchi2_build_cFR_ = 0.;
351 int score_build_cFR_ = 0;
352 float dphi_build_cFR_ = 0.;
355 int duplmask_build_cFR_ = 0, iTkMatches_build_cFR_ = 0;
358 int seedID_cmssw_build_cFR_ = 0;
359 float x_cmssw_build_cFR_ = 0., y_cmssw_build_cFR_ = 0., z_cmssw_build_cFR_ = 0.;
360 float pt_cmssw_build_cFR_ = 0., phi_cmssw_build_cFR_ = 0., eta_cmssw_build_cFR_ = 0.;
361 float nLayers_cmssw_build_cFR_ = 0;
362 int nHits_cmssw_build_cFR_ = 0, lastlyr_cmssw_build_cFR_ = 0;
365 int cmsswID_fit_cFR_ = 0, cmsswmask_fit_cFR_ = 0;
367 float pt_fit_cFR_ = 0., ept_fit_cFR_ = 0.;
368 float phi_fit_cFR_ = 0., ephi_fit_cFR_ = 0.;
369 float eta_fit_cFR_ = 0., eeta_fit_cFR_ = 0.;
371 float nLayers_fit_cFR_ = 0;
372 int nHits_fit_cFR_ = 0, nHitsMatched_fit_cFR_ = 0, lastlyr_fit_cFR_ = 0;
373 float fracHitsMatched_fit_cFR_ = 0;
375 float xhit_fit_cFR_ = 0., yhit_fit_cFR_ = 0., zhit_fit_cFR_ = 0.;
378 float hitchi2_fit_cFR_ = 0., helixchi2_fit_cFR_ = 0.;
379 int score_fit_cFR_ = 0;
380 float dphi_fit_cFR_ = 0.;
383 int duplmask_fit_cFR_ = 0, iTkMatches_fit_cFR_ = 0;
386 int seedID_cmssw_fit_cFR_ = 0;
387 float x_cmssw_fit_cFR_ = 0., y_cmssw_fit_cFR_ = 0., z_cmssw_fit_cFR_ = 0.;
388 float pt_cmssw_fit_cFR_ = 0., phi_cmssw_fit_cFR_ = 0., eta_cmssw_fit_cFR_ = 0.;
389 float nLayers_cmssw_fit_cFR_ = 0;
390 int nHits_cmssw_fit_cFR_ = 0, lastlyr_cmssw_fit_cFR_ = 0;
393 std::vector<int> hitlyrs_mc_cFR_, hitlyrs_build_cFR_, hitlyrs_cmssw_build_cFR_, hitlyrs_fit_cFR_,
394 hitlyrs_cmssw_fit_cFR_;
395 std::vector<int> hitidxs_mc_cFR_, hitidxs_build_cFR_, hitidxs_cmssw_build_cFR_, hitidxs_fit_cFR_,
396 hitidxs_cmssw_fit_cFR_;
399 std::unique_ptr<TTree> fittree_;
400 int ntotallayers_fit_ = 0, tkid_fit_ = 0, evtid_fit_ = 0;
402 static const int nfvs_ = 24;
403 std::vector<float> fvs_[nfvs_];
405 std::vector<float>&z_prop_fit_ = fvs_[0], &ez_prop_fit_ = fvs_[1];
406 std::vector<float>&z_hit_fit_ = fvs_[2], &ez_hit_fit_ = fvs_[3], &z_sim_fit_ = fvs_[4], &ez_sim_fit_ = fvs_[5];
407 std::vector<float>&pphi_prop_fit_ = fvs_[6], &epphi_prop_fit_ = fvs_[7];
408 std::vector<float>&pphi_hit_fit_ = fvs_[8], &epphi_hit_fit_ = fvs_[9], &pphi_sim_fit_ = fvs_[10],
409 &epphi_sim_fit_ = fvs_[11];
410 std::vector<float>&pt_up_fit_ = fvs_[12], &ept_up_fit_ = fvs_[13], &pt_sim_fit_ = fvs_[14],
411 &ept_sim_fit_ = fvs_[15];
412 std::vector<float>&mphi_up_fit_ = fvs_[16], &emphi_up_fit_ = fvs_[17], &mphi_sim_fit_ = fvs_[18],
413 &emphi_sim_fit_ = fvs_[19];
414 std::vector<float>&meta_up_fit_ = fvs_[20], &emeta_up_fit_ = fvs_[21], &meta_sim_fit_ = fvs_[22],
415 &emeta_sim_fit_ = fvs_[23];
std::vector< TrackExtra > TrackExtraVec
virtual void resetValidationMaps()
virtual void fillEfficiencyTree(const Event &)
virtual void setTrackScoresDumbCMSSW(Event &)
TTreeValidation(std::string)
virtual void saveTTrees()
virtual void makeSimTkToRecoTksMaps(Event &)
virtual void setTrackExtras(Event &ev)
std::unordered_map< int, std::vector< int > > TkIDToTkIDVecMap
virtual void alignTracks(TrackVec &, TrackExtraVec &, bool)
virtual void fillCMSSWFakeRateTree(const Event &)
std::unordered_map< int, int > TkIDToTkIDMap
std::vector< ReducedTrack > RedTrackVec
virtual void makeSeedTkToCMSSWTkMap(Event &)
virtual void makeCMSSWTkToRecoTksMaps(Event &)
virtual void makeSeedTkToRecoTkMaps(Event &)
virtual void makeRecoTkToSeedTkMapsDumbCMSSW(Event &)
std::vector< Track > TrackVec
virtual void makeCMSSWTkToSeedTkMap(Event &)
virtual void makeRecoTkToRecoTkMaps(Event &)
virtual void collectFitInfo(const FitVal &, int, int)
virtual void fillFakeRateTree(const Event &)
virtual void fillCMSSWEfficiencyTree(const Event &)
std::map< int, std::map< int, std::vector< int > > > LayIdxIDVecMapMap
virtual void fillConfigTree()
virtual void fillFitTree(const Event &)