1 #ifndef Validation_RecoTrack_MTVHistoProducerAlgoForTracker_h 2 #define Validation_RecoTrack_MTVHistoProducerAlgoForTracker_h 54 void fill_simTrackBased_histos(
int numSimTracks);
57 void fill_recoAssociated_simTrack_histos(
int count,
60 double dxy,
double dz,
61 double dxyPV,
double dzPV,
63 int nSimLayers,
int nSimPixelLayers,
int nSimStripMonoAndStereoLayers,
70 const std::vector<float>&
mvas,
71 unsigned int selectsLoose,
unsigned int selectsHP);
73 void fill_recoAssociated_simTrack_histos(
int count,
76 double dxy,
double dz,
int nSimHits,
80 void fill_duplicate_histos(
int count,
84 void fill_generic_recoTrack_histos(
int count,
93 int numAssocRecoTracks,
96 double sharedFraction,
98 const std::vector<float>& mvas,
99 unsigned int selectsLoose,
unsigned int selectsHP);
103 void fill_simAssociated_recoTrack_histos(
int count,
106 void fill_trackBased_histos(
int count,
109 int numRecoTracksSelected,
110 int numSimTracksSelected);
113 void fill_ResoAndPull_recoTrack_histos(
int count,
120 void fill_seed_histos(
int count,
int seedsFitFailed,
int seedsTotal);
125 void getRecoMomentum (
const reco::Track& track,
double&
pt,
double& ptError,
126 double& qoverp,
double& qoverpError,
double& lambda,
double& lambdaError,
127 double& phi,
double&
phiError )
const;
129 void getRecoMomentum (
const reco::GsfTrack& gsfTrack,
double& pt,
double& ptError,
130 double& qoverp,
double& qoverpError,
double& lambda,
double& lambdaError,
131 double& phi,
double& phiError)
const;
135 double getPt(
double pt);
190 using SeedingLayerId = std::tuple<SeedingLayerSetsBuilder::SeedingLayerId, bool>;
198 std::vector<MonitorElement*>
h_tracks, h_fakes, h_hits, h_charge, h_algo, h_seedsFitFailed, h_seedsFitFailedFraction;
199 std::vector<MonitorElement*> h_recoeta, h_reco2eta, h_assoceta, h_assoc2eta,
h_simuleta, h_loopereta, h_misideta, h_pileupeta;
200 std::vector<MonitorElement*> h_recopT, h_reco2pT, h_assocpT, h_assoc2pT,
h_simulpT, h_looperpT, h_misidpT, h_pileuppT;
201 std::vector<MonitorElement*> h_recohit, h_assochit, h_assoc2hit,
h_simulhit, h_looperhit, h_misidhit, h_pileuphit;
202 std::vector<MonitorElement*> h_recolayer, h_assoclayer, h_assoc2layer,
h_simullayer, h_looperlayer, h_misidlayer, h_pileuplayer;
203 std::vector<MonitorElement*> h_recopixellayer, h_assocpixellayer, h_assoc2pixellayer,
h_simulpixellayer, h_looperpixellayer, h_misidpixellayer, h_pileuppixellayer;
204 std::vector<MonitorElement*> h_reco3Dlayer, h_assoc3Dlayer, h_assoc23Dlayer,
h_simul3Dlayer, h_looper3Dlayer, h_misid3Dlayer, h_pileup3Dlayer;
205 std::vector<MonitorElement*> h_recopu, h_reco2pu, h_assocpu, h_assoc2pu,
h_simulpu, h_looperpu, h_misidpu, h_pileuppu;
206 std::vector<MonitorElement*> h_recophi, h_assocphi, h_assoc2phi,
h_simulphi, h_looperphi, h_misidphi, h_pileupphi;
207 std::vector<MonitorElement*> h_recodxy, h_assocdxy, h_assoc2dxy,
h_simuldxy, h_looperdxy, h_misiddxy, h_pileupdxy;
208 std::vector<MonitorElement*> h_recodz, h_assocdz, h_assoc2dz,
h_simuldz, h_looperdz, h_misiddz, h_pileupdz;
209 std::vector<MonitorElement*> h_recodxypv, h_assocdxypv, h_assoc2dxypv,
h_simuldxypv, h_looperdxypv, h_misiddxypv, h_pileupdxypv;
210 std::vector<MonitorElement*> h_recodzpv, h_assocdzpv, h_assoc2dzpv,
h_simuldzpv, h_looperdzpv, h_misiddzpv, h_pileupdzpv;
211 std::vector<MonitorElement*> h_recodxypvzoomed, h_assocdxypvzoomed, h_assoc2dxypvzoomed,
h_simuldxypvzoomed, h_looperdxypvzoomed, h_misiddxypvzoomed, h_pileupdxypvzoomed;
212 std::vector<MonitorElement*> h_recodzpvzoomed, h_assocdzpvzoomed, h_assoc2dzpvzoomed,
h_simuldzpvzoomed, h_looperdzpvzoomed, h_misiddzpvzoomed, h_pileupdzpvzoomed;
214 std::vector<MonitorElement*> h_recovertpos, h_assocvertpos, h_assoc2vertpos,
h_simulvertpos, h_loopervertpos, h_pileupvertpos;
215 std::vector<MonitorElement*> h_recozpos, h_assoczpos, h_assoc2zpos,
h_simulzpos, h_looperzpos, h_pileupzpos;
216 std::vector<MonitorElement*> h_assocdr, h_assoc2dr,
h_simuldr, h_recodr, h_looperdr, h_pileupdr;
217 std::vector<MonitorElement*>
h_recochi2, h_assoc2chi2, h_looperchi2, h_misidchi2, h_pileupchi2;
218 std::vector<MonitorElement*> h_pt, h_eta,
h_pullTheta,h_pullPhi,h_pullDxy,h_pullDz,h_pullQoverp;
219 std::vector<MonitorElement*> h_assoc2_itpu_eta, h_assoc2_itpu_sig_eta,
h_assoc2eta_sig;
223 std::vector<MonitorElement*> h_con_eta, h_con_vertcount,
h_con_zpos;
225 std::vector<MonitorElement*> h_reco_dzpvcut, h_assoc_dzpvcut, h_assoc2_dzpvcut,
h_simul_dzpvcut, h_simul2_dzpvcut, h_pileup_dzpvcut;
226 std::vector<MonitorElement*> h_reco_dzpvsigcut, h_assoc_dzpvsigcut, h_assoc2_dzpvsigcut,
h_simul_dzpvsigcut, h_simul2_dzpvsigcut, h_pileup_dzpvsigcut;
228 std::vector<MonitorElement*> h_reco_dzpvcut_pt, h_assoc_dzpvcut_pt, h_assoc2_dzpvcut_pt,
h_simul_dzpvcut_pt, h_simul2_dzpvcut_pt, h_pileup_dzpvcut_pt;
229 std::vector<MonitorElement*> h_reco_dzpvsigcut_pt, h_assoc_dzpvsigcut_pt, h_assoc2_dzpvsigcut_pt,
h_simul_dzpvsigcut_pt, h_simul2_dzpvsigcut_pt, h_pileup_dzpvsigcut_pt;
230 std::vector<MonitorElement*> h_reco_simpvz, h_assoc_simpvz, h_assoc2_simpvz,
h_simul_simpvz, h_pileup_simpvz;
232 std::vector<MonitorElement*>
h_reco_seedingLayerSet, h_assoc2_seedingLayerSet, h_looper_seedingLayerSet, h_pileup_seedingLayerSet;
234 std::vector<std::vector<MonitorElement*> >
h_reco_mva, h_assoc2_mva;
235 std::vector<std::vector<MonitorElement*> > h_reco_mvacut, h_assoc_mvacut, h_assoc2_mvacut,
h_simul2_mvacut;
237 std::vector<std::vector<MonitorElement*> > h_reco_mvacut_hp, h_assoc_mvacut_hp, h_assoc2_mvacut_hp,
h_simul2_mvacut_hp;
239 std::vector<std::vector<MonitorElement*> > h_assoc2_mva_vs_pt, h_fake_mva_vs_pt, h_assoc2_mva_vs_pt_hp,
h_fake_mva_vs_pt_hp;
240 std::vector<std::vector<MonitorElement*> > h_assoc2_mva_vs_eta, h_fake_mva_vs_eta, h_assoc2_mva_vs_eta_hp,
h_fake_mva_vs_eta_hp;
258 std::vector<MonitorElement*> nhits_vs_eta,
259 nPXBhits_vs_eta, nPXFhits_vs_eta, nPXLhits_vs_eta,
260 nTIBhits_vs_eta,nTIDhits_vs_eta,
262 nLayersWithMeas_vs_eta, nPXLlayersWithMeas_vs_eta,
263 nSTRIPlayersWithMeas_vs_eta, nSTRIPlayersWith1dMeas_vs_eta, nSTRIPlayersWith2dMeas_vs_eta;
273 std::vector<MonitorElement*>
ptres_vs_phi, chi2_vs_phi, nhits_vs_phi, phires_vs_phi;
285 std::vector<MonitorElement*> dxyres_vs_eta,
ptres_vs_eta, dzres_vs_eta, phires_vs_eta, cotThetares_vs_eta;
286 std::vector<MonitorElement*> dxyres_vs_pt,
ptres_vs_pt, dzres_vs_pt, phires_vs_pt, cotThetares_vs_pt;
289 std::vector<MonitorElement*> dxypull_vs_eta, ptpull_vs_eta, dzpull_vs_eta, phipull_vs_eta,
thetapull_vs_eta;
MonitorElement * h_vertposSIM
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsPt
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsEta
std::vector< MonitorElement * > h_simuldxypvzoomed
std::vector< MonitorElement * > h_assoc2_ootpu_vertcount
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsVTXR
std::vector< MonitorElement * > h_simulzpos
std::vector< MonitorElement * > nrecHit_vs_nsimHit_rec2sim
std::vector< MonitorElement * > h_simulpT
std::vector< MonitorElement * > h_ptshifteta
std::vector< MonitorElement * > h_simul_dzpvsigcut
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsVTXR
std::map< SeedingLayerSetId, unsigned int > seedingLayerSetToBin
std::vector< std::vector< MonitorElement * > > h_dedx_estim
std::vector< MonitorElement * > nrec_vs_nsim
std::vector< MonitorElement * > h_simul_dzpvcut_pt
static float getEta(float eta, int bits=5)
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsVTXZ
def setup(process, global_tag, zero_tesla=False)
std::vector< MonitorElement * > h_simuleta
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsPt
std::unique_ptr< RecoTrackSelectorBase > trackSelectorVsPhi
static std::unique_ptr< RecoTrackSelectorBase > makeRecoTrackSelectorFromTPSelectorParameters(const edm::ParameterSet &pset, const edm::InputTag &beamSpotTag, edm::ConsumesCollector &&iC)
std::vector< MonitorElement * > h_assoc2_itpu_vertcount
std::vector< std::vector< MonitorElement * > > h_simul2_mvacut
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsPhi
std::vector< MonitorElement * > nlosthits_vs_eta
math::XYZPointD Point
point in the space
math::XYZTLorentzVectorD LorentzVector
std::vector< std::vector< MonitorElement * > > h_dedx_sat
std::vector< MonitorElement * > h_simulpu
std::vector< MonitorElement * > h_simuldzpv
std::tuple< SeedingLayerSetsBuilder::SeedingLayerId, bool > SeedingLayerId
std::vector< MonitorElement * > h_simuldr
std::vector< MonitorElement * > h_assoc2eta_sig
std::vector< MonitorElement * > nTOBhits_vs_eta
std::vector< MonitorElement * > etares_vs_eta
std::unique_ptr< GenParticleCustomSelector > GpSelectorForEfficiencyVsEta
std::unique_ptr< TrackingParticleSelector > generalTpSelector
std::vector< MonitorElement * > h_tracks
std::unique_ptr< RecoTrackSelectorBase > trackSelectorVsPt
std::vector< MonitorElement * > h_simul_simpvz
std::vector< std::vector< MonitorElement * > > h_reco_mva
std::vector< MonitorElement * > nrecHit_vs_nsimHit_sim2rec
bool isMatched(TrackingRecHit const &hit)
std::vector< MonitorElement * > h_duplicates_oriAlgo_vs_oriAlgo
std::vector< MonitorElement * > h_assochi2_prob
std::vector< MonitorElement * > h_simuldzpvzoomed
std::vector< MonitorElement * > h_simullayer
double cotThetaRes_rangeMin
std::vector< MonitorElement * > h_simuldz
std::vector< MonitorElement * > thetapull_vs_phi
std::vector< MonitorElement * > h_simulvertpos
std::array< SeedingLayerId, 4 > SeedingLayerSetId
std::vector< std::vector< MonitorElement * > > h_simul2_mvacut_hp
std::vector< MonitorElement * > h_simuldxypv
std::vector< MonitorElement * > h_simulpixellayer
std::vector< MonitorElement * > h_simul_dzpvcut
std::vector< MonitorElement * > h_nmisslayers_outer
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsPhi
XYZPointD XYZPoint
point in space with cartesian internal representation
std::vector< MonitorElement * > h_simul_dzpvsigcut_pt
std::vector< std::vector< MonitorElement * > > h_fake_mva_vs_eta_hp
std::vector< MonitorElement * > h_simulphi
std::vector< MonitorElement * > h_pullTheta
std::vector< MonitorElement * > ptmean_vs_eta_phi
std::unique_ptr< TrackingParticleSelector > TpSelectorForEfficiencyVsVTXZ
std::vector< std::string > seedingLayerSetNames
std::vector< MonitorElement * > ptres_vs_eta
std::vector< MonitorElement * > h_simulhit
std::vector< MonitorElement * > h_con_zpos
Monte Carlo truth information used for tracking validation.
std::vector< std::vector< MonitorElement * > > h_fake_mva_vs_pt_hp
MTVHistoProducerAlgoForTracker(const edm::ParameterSet &pset, const edm::InputTag &beamSpotTag, const bool doSeedPlots, edm::ConsumesCollector &&iC)
std::unique_ptr< GenParticleCustomSelector > generalGpSelector
std::vector< MonitorElement * > ptres_vs_pt
math::XYZVectorD Vector
point in the space
std::vector< MonitorElement * > h_reco_ootpu_vertcount
std::vector< std::vector< MonitorElement * > > h_dedx_nom
std::vector< MonitorElement * > h_reco_seedingLayerSet
std::unique_ptr< RecoTrackSelectorBase > trackSelectorVsEta
std::vector< MonitorElement * > h_recochi2
std::vector< MonitorElement * > ptres_vs_phi
std::vector< MonitorElement * > h_assocSharedHit
std::vector< MonitorElement * > h_simul3Dlayer
std::vector< std::vector< MonitorElement * > > h_reco_mva_hp
std::vector< MonitorElement * > h_simuldxy
std::vector< MonitorElement * > thetapull_vs_eta