CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
tmtt::Histos Class Reference

#include <Histos.h>

Public Member Functions

virtual bool available () const
 
virtual void book ()
 
virtual bool enabled () const
 
virtual void endJobAnalysis (const HTrphi::ErrorMonitor *htRphiErrMon=nullptr)
 
virtual void fill (const InputData &inputData, const Array2D< std::unique_ptr< Sector >> &mSectors, const Array2D< std::unique_ptr< HTrphi >> &mHtPhis, const Array2D< std::unique_ptr< Make3Dtracks >> &mGet3Dtrks, const std::map< std::string, std::list< const L1fittedTrack *>> &mapFinalTracks)
 
 Histos (const Settings *settings)
 
virtual void trackerGeometryAnalysis (const std::list< TrackerModule > &listTrackerModule)
 
virtual ~Histos ()=default
 

Protected Member Functions

virtual TFileDirectory bookEtaPhiSectors ()
 
virtual TFileDirectory bookInputData ()
 
virtual TFileDirectory bookRphiHT ()
 
virtual TFileDirectory bookRZfilters ()
 
virtual TFileDirectory bookTrackCands (const std::string &tName)
 
virtual std::map< std::string, TFileDirectorybookTrackFitting ()
 
virtual void fillEtaPhiSectors (const InputData &inputData, const Array2D< std::unique_ptr< Sector >> &mSectors)
 
virtual void fillInputData (const InputData &inputData)
 
virtual void fillRphiHT (const Array2D< std::unique_ptr< HTrphi >> &mHtRphis)
 
virtual void fillRZfilters (const Array2D< std::unique_ptr< Make3Dtracks >> &mMake3Dtrks)
 
virtual void fillTrackCands (const InputData &inputData, const Array2D< std::unique_ptr< Make3Dtracks >> &mMake3Dtrks, const std::string &tName)
 
virtual void fillTrackCands (const InputData &inputData, const std::vector< L1track3D > &tracks, const std::string &tName)
 
virtual void fillTrackFitting (const InputData &inputData, const std::map< std::string, std::list< const L1fittedTrack *>> &mapFinalTracks)
 
virtual void makeEfficiencyPlot (TFileDirectory &inputDir, TEfficiency *outputEfficiency, TH1F *pass, TH1F *all, TString name, TString title)
 
virtual void plotHybridDupRemovalEfficiency ()
 
virtual TFileDirectory plotTrackEffAfterFit (const std::string &fitName)
 
virtual TFileDirectory plotTrackEfficiency (const std::string &tName)
 
virtual void plotTrackletSeedEfficiency ()
 
virtual void printFitTrackPerformance (const std::string &fitName)
 
virtual void printHybridDupRemovalPerformance ()
 
virtual void printTrackletSeedFindingPerformance ()
 
virtual void printTrackPerformance (const std::string &tName)
 

Protected Attributes

bool bApproxMistake_
 
float chosenRofZ_
 
edm::Service< TFileServicefs_
 
unsigned int genMinStubLayers_
 
TGraph * graphBVsZoverR_
 
TH1F * hisBendResStub_
 
TH1F * hisBendStub_
 
std::map< std::string, TProfile * > hisD0ResVsTrueEta_
 
std::map< std::string, TProfile * > hisD0ResVsTrueInvPt_
 
std::map< std::string, TH1F * > hisEta_
 
std::map< std::string, TH1F * > hisEtaRes_
 
std::map< std::string, TProfile * > hisEtaResVsTrueEta_
 
std::map< std::string, TProfile * > hisEtaResVsTrueInvPt_
 
std::map< std::string, TH1F * > hisFitChi2DofRphiMatched_
 
std::map< std::string, TH1F * > hisFitChi2DofRphiUnmatched_
 
std::map< std::string, TH1F * > hisFitChi2DofRzMatched_
 
std::map< std::string, TH1F * > hisFitChi2DofRzUnmatched_
 
std::map< std::string, TH1F * > hisFitD0Matched_
 
std::map< std::string, TH1F * > hisFitD0Unmatched_
 
std::map< std::string, TH1F * > hisFitEtaMatched_
 
std::map< std::string, TH1F * > hisFitEtaUnmatched_
 
std::map< std::string, TH1F * > hisFitPhi0Matched_
 
std::map< std::string, TH1F * > hisFitPhi0Unmatched_
 
std::map< std::string, TH1F * > hisFitQinvPtMatched_
 
std::map< std::string, TH1F * > hisFitQinvPtUnmatched_
 
std::map< std::string, TH1F * > hisFitTPd0ForAlgEff_
 
std::map< std::string, TH1F * > hisFitTPd0ForEff_
 
std::map< std::string, TH1F * > hisFitTPetaForAlgEff_
 
std::map< std::string, TH1F * > hisFitTPetaForEff_
 
std::map< std::string, TH1F * > hisFitTPinvptForAlgEff_
 
std::map< std::string, TH1F * > hisFitTPinvptForEff_
 
std::map< std::string, TH1F * > hisFitTPphiForAlgEff_
 
std::map< std::string, TH1F * > hisFitTPphiForEff_
 
std::map< std::string, TH1F * > hisFitTPz0ForAlgEff_
 
std::map< std::string, TH1F * > hisFitTPz0ForEff_
 
std::map< std::string, TH1F * > hisFitZ0Matched_
 
std::map< std::string, TH1F * > hisFitZ0Unmatched_
 
std::map< std::string, TH1F * > hisFracMatchStubsOnTracks_
 
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay0Matched_
 
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay0Unmatched_
 
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay1Matched_
 
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay1Unmatched_
 
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay2Matched_
 
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay2Unmatched_
 
std::map< std::string, TH1F * > hisKalmanNumUpdateCalls_
 
std::map< std::string, TH1F * > hisLayersPerTrack_
 
TH1F * hisNumEtaSecsPerStub_
 
std::map< std::string, TH1F * > hisNumFitTrks_
 
std::map< std::string, TH1F * > hisNumFitTrksPerNon_
 
std::map< std::string, TH1F * > hisNumFitTrksPerSect_
 
TH1F * hisNumLayersPerTP_
 
TH1F * hisNumPhiSecsPerStub_
 
TH1F * hisNumPSLayersPerTP_
 
std::map< std::string, TH1F * > hisNumStubsPerLink_
 
TH1F * hisNumStubsPerSec_
 
std::map< std::string, TH1F * > hisNumTracksVsQoverPt_
 
std::map< std::string, TH1F * > hisNumTrksPerNon_
 
std::map< std::string, TH1F * > hisPerfFitTPetaForAlgEff_
 
std::map< std::string, TH1F * > hisPerfFitTPetaForEff_
 
std::map< std::string, TH1F * > hisPerfFitTPinvptForAlgEff_
 
std::map< std::string, TH1F * > hisPerfFitTPinvptForEff_
 
std::map< std::string, TH1F * > hisPerfRecoTPetaForAlgEff_
 
std::map< std::string, TH1F * > hisPerfRecoTPetaForEff_
 
std::map< std::string, TH1F * > hisPerfRecoTPinvptForAlgEff_
 
std::map< std::string, TH1F * > hisPerfRecoTPinvptForEff_
 
std::map< std::string, TH1F * > hisPhi0_
 
std::map< std::string, TH1F * > hisPhi0Res_
 
std::map< std::string, TProfile * > hisPhi0ResVsTrueEta_
 
std::map< std::string, TProfile * > hisPhi0ResVsTrueInvPt_
 
std::map< std::string, TH1F * > hisQoverPt_
 
std::map< std::string, TH1F * > hisQoverPtRes_
 
std::map< std::string, TProfile * > hisQoverPtResVsTrueEta_
 
std::map< std::string, TProfile * > hisQoverPtResVsTrueInvPt_
 
std::map< std::string, TH1F * > hisRecoTPd0ForAlgEff_
 
std::map< std::string, TH1F * > hisRecoTPd0ForEff_
 
std::map< std::string, TH1F * > hisRecoTPetaForAlgEff_
 
std::map< std::string, TH1F * > hisRecoTPetaForEff_
 
std::map< std::string, TH1F * > hisRecoTPinvptForAlgEff_
 
std::map< std::string, TH1F * > hisRecoTPinvptForEff_
 
std::map< std::string, TH1F * > hisRecoTPphiForAlgEff_
 
std::map< std::string, TH1F * > hisRecoTPphiForEff_
 
std::map< std::string, TH1F * > hisRecoTPz0ForAlgEff_
 
std::map< std::string, TH1F * > hisRecoTPz0ForEff_
 
TProfile * hisStubIneffiVsEta_
 
TProfile * hisStubIneffiVsInvPt_
 
TProfile * hisStubKillFE_
 
std::map< std::string, TH1F * > hisStubsOnTracksPerNon_
 
std::map< std::string, TH1F * > hisStubsPerFitTrack_
 
std::map< std::string, TH1F * > hisStubsPerTrack_
 
TH1F * hisStubsVsEta_
 
TH1F * hisStubsVsR_
 
TH1F * hisTPd0ForAlgEff_
 
TH1F * hisTPd0ForEff_
 
TH1F * hisTPetaForAlgEff_
 
TH1F * hisTPetaForEff_
 
TH1F * hisTPinvptForAlgEff_
 
TH1F * hisTPinvptForEff_
 
TH1F * hisTPphiForAlgEff_
 
TH1F * hisTPphiForEff_
 
TH1F * hisTPz0ForAlgEff_
 
TH1F * hisTPz0ForEff_
 
std::map< std::string, TH1F * > hisZ0_
 
std::map< std::string, TH1F * > hisZ0Res_
 
std::map< std::string, TProfile * > hisZ0ResVsTrueEta_
 
std::map< std::string, TProfile * > hisZ0ResVsTrueInvPt_
 
float houghMinPt_
 
unsigned int houghNbinsPhi_
 
unsigned int houghNbinsPt_
 
std::map< unsigned int, float > mapBarrelLayerMaxR_
 
std::map< unsigned int, float > mapBarrelLayerMinR_
 
std::map< unsigned int, float > mapEndcapWheelMaxZ_
 
std::map< unsigned int, float > mapEndcapWheelMinZ_
 
std::map< unsigned int, float > mapExtraAModuleTypeMaxR_
 
std::map< unsigned int, float > mapExtraAModuleTypeMaxZ_
 
std::map< unsigned int, float > mapExtraAModuleTypeMinR_
 
std::map< unsigned int, float > mapExtraAModuleTypeMinZ_
 
std::map< unsigned int, float > mapExtraBModuleTypeMaxR_
 
std::map< unsigned int, float > mapExtraBModuleTypeMaxZ_
 
std::map< unsigned int, float > mapExtraBModuleTypeMinR_
 
std::map< unsigned int, float > mapExtraBModuleTypeMinZ_
 
std::map< unsigned int, float > mapExtraCModuleTypeMaxR_
 
std::map< unsigned int, float > mapExtraCModuleTypeMaxZ_
 
std::map< unsigned int, float > mapExtraCModuleTypeMinR_
 
std::map< unsigned int, float > mapExtraCModuleTypeMinZ_
 
std::map< unsigned int, float > mapExtraDModuleTypeMaxR_
 
std::map< unsigned int, float > mapExtraDModuleTypeMaxZ_
 
std::map< unsigned int, float > mapExtraDModuleTypeMinR_
 
std::map< unsigned int, float > mapExtraDModuleTypeMinZ_
 
std::map< unsigned int, float > mapModuleTypeMaxR_
 
std::map< unsigned int, float > mapModuleTypeMaxZ_
 
std::map< unsigned int, float > mapModuleTypeMinR_
 
std::map< unsigned int, float > mapModuleTypeMinZ_
 
unsigned int numEtaRegions_
 
std::map< std::string, unsigned int > numFitAlgEff_
 
std::map< std::string, unsigned int > numFitAlgEffPass_
 
std::map< std::string, unsigned int > numFitPerfAlgEff_
 
std::map< std::string, unsigned int > numFitPerfAlgEffPass_
 
unsigned int numPhiSectors_
 
bool oldSumW2opt_
 
bool printedGeomAnalysis_
 
std::map< std::string, TProfile * > profDupFitTrksVsEta_
 
std::map< std::string, TProfile * > profDupFitTrksVsInvPt_
 
std::map< std::string, TProfile * > profDupTracksVsEta_
 
std::map< std::string, TProfile * > profDupTracksVsInvPt_
 
std::map< std::string, TProfile * > profFitChi2DofRphiVsInvPtMatched_
 
std::map< std::string, TProfile * > profFitChi2DofRphiVsInvPtUnmatched_
 
std::map< std::string, TProfile * > profMeanStubsPerLink_
 
std::map< std::string, TProfile * > profNumFitTracks_
 
std::map< std::string, TProfile * > profNumTrackCands_
 
std::map< std::string, TProfile * > profNumTracksVsEta_
 
std::map< std::string, TProfile * > profStubsOnFitTracks_
 
std::map< std::string, TProfile * > profStubsOnTracks_
 
bool ranRZfilter_
 
bool resPlotOpt_
 
const Settingssettings_
 
std::map< std::string, TEfficiency * > teffAlgEffFitVsD0_
 
std::map< std::string, TEfficiency * > teffAlgEffFitVsEta_
 
std::map< std::string, TEfficiency * > teffAlgEffFitVsInvPt_
 
std::map< std::string, TEfficiency * > teffAlgEffFitVsPhi_
 
std::map< std::string, TEfficiency * > teffAlgEffFitVsZ0_
 
std::map< std::string, TEfficiency * > teffAlgEffVsD0_
 
std::map< std::string, TEfficiency * > teffAlgEffVsEta_
 
std::map< std::string, TEfficiency * > teffAlgEffVsInvPt_
 
std::map< std::string, TEfficiency * > teffAlgEffVsPhi_
 
std::map< std::string, TEfficiency * > teffAlgEffVsZ0_
 
std::map< std::string, TEfficiency * > teffEffFitVsD0_
 
std::map< std::string, TEfficiency * > teffEffFitVsEta_
 
std::map< std::string, TEfficiency * > teffEffFitVsInvPt_
 
std::map< std::string, TEfficiency * > teffEffFitVsPhi_
 
std::map< std::string, TEfficiency * > teffEffFitVsZ0_
 
std::map< std::string, TEfficiency * > teffEffVsD0_
 
std::map< std::string, TEfficiency * > teffEffVsEta_
 
std::map< std::string, TEfficiency * > teffEffVsInvPt_
 
std::map< std::string, TEfficiency * > teffEffVsPhi_
 
std::map< std::string, TEfficiency * > teffEffVsZ0_
 
std::map< std::string, TEfficiency * > teffPerfAlgEffFitVsEta_
 
std::map< std::string, TEfficiency * > teffPerfAlgEffFitVsInvPt_
 
std::map< std::string, TEfficiency * > teffPerfAlgEffVsEta_
 
std::map< std::string, TEfficiency * > teffPerfAlgEffVsInvPt_
 
std::map< std::string, TEfficiency * > teffPerfAlgEffVsPt_
 
std::map< std::string, TEfficiency * > teffPerfEffFitVsEta_
 
std::map< std::string, TEfficiency * > teffPerfEffFitVsInvPt_
 
std::map< std::string, TEfficiency * > teffPerfEffVsEta_
 
std::map< std::string, TEfficiency * > teffPerfEffVsInvPt_
 
std::vector< std::string > trackFitters_
 
std::vector< std::string > useRZfilter_
 

Detailed Description

Definition at line 35 of file Histos.h.

Constructor & Destructor Documentation

◆ Histos()

Histos::Histos ( const Settings settings)

Definition at line 39 of file Histos.cc.

References tmtt::Settings::chosenRofZ(), chosenRofZ_, tmtt::Settings::genMinStubLayers(), genMinStubLayers_, tmtt::Settings::houghMinPt(), houghMinPt_, tmtt::Settings::houghNbinsPhi(), houghNbinsPhi_, tmtt::Settings::houghNbinsPt(), houghNbinsPt_, tmtt::Settings::numEtaRegions(), numEtaRegions_, tmtt::Settings::numPhiSectors(), numPhiSectors_, ranRZfilter_, tmtt::Settings::resPlotOpt(), resPlotOpt_, tmtt::Settings::trackFitters(), trackFitters_, tmtt::Settings::useRZfilter(), and useRZfilter_.

39  : settings_(settings), oldSumW2opt_(false), bApproxMistake_(false) {
40  genMinStubLayers_ = settings->genMinStubLayers();
41  numPhiSectors_ = settings->numPhiSectors();
42  numEtaRegions_ = settings->numEtaRegions();
43  houghMinPt_ = settings->houghMinPt();
44  houghNbinsPt_ = settings->houghNbinsPt();
45  houghNbinsPhi_ = settings->houghNbinsPhi();
46  chosenRofZ_ = settings->chosenRofZ();
47  trackFitters_ = settings->trackFitters();
48  useRZfilter_ = settings->useRZfilter();
49  ranRZfilter_ = (not useRZfilter_.empty()); // Was any r-z track filter run?
50  resPlotOpt_ = settings->resPlotOpt(); // Only use signal events for helix resolution plots?
51  }
bool bApproxMistake_
Definition: Histos.h:357
unsigned int numEtaRegions_
Definition: Histos.h:119
bool oldSumW2opt_
Definition: Histos.h:129
unsigned int genMinStubLayers_
Definition: Histos.h:117
const Settings * settings_
Definition: Histos.h:116
bool resPlotOpt_
Definition: Histos.h:127
std::vector< std::string > trackFitters_
Definition: Histos.h:124
unsigned int numPhiSectors_
Definition: Histos.h:118
float chosenRofZ_
Definition: Histos.h:123
unsigned int houghNbinsPt_
Definition: Histos.h:121
bool ranRZfilter_
Definition: Histos.h:126
float houghMinPt_
Definition: Histos.h:120
unsigned int houghNbinsPhi_
Definition: Histos.h:122
std::vector< std::string > useRZfilter_
Definition: Histos.h:125

◆ ~Histos()

virtual tmtt::Histos::~Histos ( )
virtualdefault

Member Function Documentation

◆ available()

virtual bool tmtt::Histos::available ( ) const
inlinevirtual

Definition at line 57 of file Histos.h.

References fs_, and edm::Service< T >::isAvailable().

Referenced by enabled().

57 { return fs_.isAvailable(); }
edm::Service< TFileService > fs_
Definition: Histos.h:110
bool isAvailable() const
Definition: Service.h:40

◆ book()

void Histos::book ( )
virtual

Definition at line 55 of file Histos.cc.

References bookEtaPhiSectors(), bookInputData(), bookRphiHT(), bookRZfilters(), bookTrackCands(), bookTrackFitting(), enabled(), oldSumW2opt_, and ranRZfilter_.

Referenced by tmtt::GlobalCacheTMTT::GlobalCacheTMTT().

55  {
56  // Don't bother booking histograms if user didn't request them via TFileService in their cfg.
57  if (not this->enabled())
58  return;
59 
60  oldSumW2opt_ = TH1::GetDefaultSumw2();
61  TH1::SetDefaultSumw2(true);
62 
63  // Book histograms about input data.
64  this->bookInputData();
65  // Book histograms checking if (eta,phi) sector definition choices are good.
66  this->bookEtaPhiSectors();
67  // Book histograms checking filling of r-phi HT array.
68  this->bookRphiHT();
69  // Book histograms about r-z track filters.
70  if (ranRZfilter_)
71  this->bookRZfilters();
72  // Book histograms studying 3D track candidates found after HT.
73  this->bookTrackCands("HT");
74  // Book histograms studying 3D track candidates found after r-z track filter.
75  if (ranRZfilter_)
76  this->bookTrackCands("RZ");
77  // Book histograms studying track fitting performance
78  this->bookTrackFitting();
79  }
virtual bool enabled() const
Definition: Histos.h:60
bool oldSumW2opt_
Definition: Histos.h:129
virtual TFileDirectory bookTrackCands(const std::string &tName)
Definition: Histos.cc:471
virtual TFileDirectory bookEtaPhiSectors()
Definition: Histos.cc:369
virtual TFileDirectory bookRZfilters()
Definition: Histos.cc:455
virtual TFileDirectory bookRphiHT()
Definition: Histos.cc:437
bool ranRZfilter_
Definition: Histos.h:126
virtual std::map< std::string, TFileDirectory > bookTrackFitting()
Definition: Histos.cc:865
virtual TFileDirectory bookInputData()
Definition: Histos.cc:121

◆ bookEtaPhiSectors()

TFileDirectory Histos::bookEtaPhiSectors ( )
protectedvirtual

Definition at line 369 of file Histos.cc.

References fs_, hisNumEtaSecsPerStub_, hisNumPhiSecsPerStub_, hisNumStubsPerSec_, TFileDirectory::make(), and TFileService::mkdir().

Referenced by book().

369  {
370  TFileDirectory inputDir = fs_->mkdir("CheckSectors");
371 
372  // Check if stubs excessively duplicated between overlapping sectors.
374  inputDir.make<TH1F>("NumEtaSecPerStub", "; No. of #eta sectors each stub in", 20, -0.5, 19.5);
376  inputDir.make<TH1F>("NumPhiSecPerStub", "; No. of #phi sectors each stub in", 20, -0.5, 19.5);
377 
378  // Count stubs per (eta,phi) sector.
379  hisNumStubsPerSec_ = inputDir.make<TH1F>("NumStubsPerSec", "; No. of stubs per sector", 150, -0.5, 299.5);
380 
381  return inputDir;
382  }
T * make(const Args &...args) const
make new ROOT object
TH1F * hisNumPhiSecsPerStub_
Definition: Histos.h:149
edm::Service< TFileService > fs_
Definition: Histos.h:110
TH1F * hisNumStubsPerSec_
Definition: Histos.h:150
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
TH1F * hisNumEtaSecsPerStub_
Definition: Histos.h:148

◆ bookInputData()

TFileDirectory Histos::bookInputData ( )
protectedvirtual

Definition at line 121 of file Histos.cc.

References fs_, hisBendResStub_, hisBendStub_, hisNumLayersPerTP_, hisNumPSLayersPerTP_, hisStubIneffiVsEta_, hisStubIneffiVsInvPt_, hisStubKillFE_, hisStubsVsEta_, hisStubsVsR_, hisTPd0ForAlgEff_, hisTPd0ForEff_, hisTPetaForAlgEff_, hisTPetaForEff_, hisTPinvptForAlgEff_, hisTPinvptForEff_, hisTPphiForAlgEff_, hisTPphiForEff_, hisTPz0ForAlgEff_, hisTPz0ForEff_, M_PI, TFileDirectory::make(), and TFileService::mkdir().

Referenced by book().

121  {
122  TFileDirectory inputDir = fs_->mkdir("InputData");
123 
124  hisStubsVsEta_ = inputDir.make<TH1F>("StubsVsEta", "; #eta; No. stubs in tracker", 30, -3.0, 3.0);
125  hisStubsVsR_ = inputDir.make<TH1F>("StubsVsR", "; radius (cm); No. stubs in tracker", 1200, 0., 120.);
126 
128  inputDir.make<TH1F>("NumLayersPerTP", "; Number of layers per TP for alg. eff.", 20, -0.5, 19.5);
130  inputDir.make<TH1F>("NumPSLayersPerTP", "; Number of PS layers per TP for alg. eff.", 20, -0.5, 19.5);
131 
132  // Study efficiency of tightened front end-electronics cuts.
133 
134  hisStubKillFE_ = inputDir.make<TProfile>(
135  "StubKillFE", "; barrelLayer or 10+endcapRing; Stub fraction rejected by FE chip", 30, -0.5, 29.5);
137  inputDir.make<TProfile>("StubIneffiVsPt", "; 1/Pt; Inefficiency of FE chip for good stubs", 25, 0.0, 0.5);
139  inputDir.make<TProfile>("StubIneffiVsEta", "; |#eta|; Inefficiency of FE chip for good stubs", 15, 0.0, 3.0);
140 
141  // Study stub resolution.
142 
143  hisBendStub_ = inputDir.make<TH1F>("BendStub", "; Stub bend in units of strips", 59, -7.375, 7.375);
144  hisBendResStub_ = inputDir.make<TH1F>("BendResStub", "; Stub bend minus TP bend in units of strips", 100, -5., 5.);
145 
146  // Histos for denominator of tracking efficiency
147  hisTPinvptForEff_ = inputDir.make<TH1F>("TPinvptForEff", "; TP 1/Pt (for effi.);", 50, 0., 0.5);
148  hisTPetaForEff_ = inputDir.make<TH1F>("TPetaForEff", "; TP #eta (for effi.);", 20, -3., 3.);
149  hisTPphiForEff_ = inputDir.make<TH1F>("TPphiForEff", "; TP #phi (for effi.);", 20, -M_PI, M_PI);
150  hisTPd0ForEff_ = inputDir.make<TH1F>("TPd0ForEff", "; TP d0 (for effi.);", 40, 0., 4.);
151  hisTPz0ForEff_ = inputDir.make<TH1F>("TPz0ForEff", "; TP z0 (for effi.);", 50, 0., 25.);
152  //
153  hisTPinvptForAlgEff_ = inputDir.make<TH1F>("TPinvptForAlgEff", "; TP 1/Pt (for alg. effi.);", 50, 0., 0.5);
154  hisTPetaForAlgEff_ = inputDir.make<TH1F>("TPetaForAlgEff", "; TP #eta (for alg. effi.);", 20, -3., 3.);
155  hisTPphiForAlgEff_ = inputDir.make<TH1F>("TPphiForAlgEff", "; TP #phi (for alg. effi.);", 20, -M_PI, M_PI);
156  hisTPd0ForAlgEff_ = inputDir.make<TH1F>("TPd0ForAlgEff", "; TP d0 (for alg. effi.);", 40, 0., 4.);
157  hisTPz0ForAlgEff_ = inputDir.make<TH1F>("TPz0ForAlgEff", "; TP z0 (for alg. effi.);", 50, 0., 25.);
158 
159  return inputDir;
160  }
TH1F * hisTPd0ForAlgEff_
Definition: Histos.h:190
TH1F * hisTPphiForAlgEff_
Definition: Histos.h:189
TH1F * hisNumLayersPerTP_
Definition: Histos.h:135
TH1F * hisTPetaForEff_
Definition: Histos.h:182
TH1F * hisTPz0ForAlgEff_
Definition: Histos.h:191
TProfile * hisStubIneffiVsInvPt_
Definition: Histos.h:139
TProfile * hisStubKillFE_
Definition: Histos.h:138
T * make(const Args &...args) const
make new ROOT object
TProfile * hisStubIneffiVsEta_
Definition: Histos.h:140
TH1F * hisTPetaForAlgEff_
Definition: Histos.h:188
edm::Service< TFileService > fs_
Definition: Histos.h:110
TH1F * hisTPd0ForEff_
Definition: Histos.h:184
TH1F * hisTPinvptForAlgEff_
Definition: Histos.h:187
#define M_PI
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
TH1F * hisTPz0ForEff_
Definition: Histos.h:185
TH1F * hisTPphiForEff_
Definition: Histos.h:183
TH1F * hisBendResStub_
Definition: Histos.h:142
TH1F * hisTPinvptForEff_
Definition: Histos.h:181
TH1F * hisNumPSLayersPerTP_
Definition: Histos.h:136
TH1F * hisStubsVsEta_
Definition: Histos.h:132
TH1F * hisStubsVsR_
Definition: Histos.h:133
TH1F * hisBendStub_
Definition: Histos.h:141

◆ bookRphiHT()

TFileDirectory Histos::bookRphiHT ( )
protectedvirtual

Definition at line 437 of file Histos.cc.

References fs_, and TFileService::mkdir().

Referenced by book().

437  {
438  TFileDirectory inputDir = fs_->mkdir("HTrphi");
439 
440  return inputDir;
441  }
edm::Service< TFileService > fs_
Definition: Histos.h:110
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69

◆ bookRZfilters()

TFileDirectory Histos::bookRZfilters ( )
protectedvirtual

Definition at line 455 of file Histos.cc.

References fs_, and TFileService::mkdir().

Referenced by book().

455  {
456  TFileDirectory inputDir = fs_->mkdir("RZfilters");
457 
458  return inputDir;
459  }
edm::Service< TFileService > fs_
Definition: Histos.h:110
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69

◆ bookTrackCands()

TFileDirectory Histos::bookTrackCands ( const std::string &  tName)
protectedvirtual

Definition at line 471 of file Histos.cc.

References fs_, hisEta_, hisEtaRes_, hisFracMatchStubsOnTracks_, hisLayersPerTrack_, hisNumStubsPerLink_, hisNumTracksVsQoverPt_, hisNumTrksPerNon_, hisPerfRecoTPetaForAlgEff_, hisPerfRecoTPetaForEff_, hisPerfRecoTPinvptForAlgEff_, hisPerfRecoTPinvptForEff_, hisPhi0_, hisPhi0Res_, hisQoverPt_, hisQoverPtRes_, hisRecoTPd0ForAlgEff_, hisRecoTPd0ForEff_, hisRecoTPetaForAlgEff_, hisRecoTPetaForEff_, hisRecoTPinvptForAlgEff_, hisRecoTPinvptForEff_, hisRecoTPphiForAlgEff_, hisRecoTPphiForEff_, hisRecoTPz0ForAlgEff_, hisRecoTPz0ForEff_, hisStubsOnTracksPerNon_, hisStubsPerTrack_, hisZ0_, hisZ0Res_, M_PI, TFileDirectory::make(), TFileService::mkdir(), HLT_2024v14_cff::nEta, numEtaRegions_, profDupTracksVsEta_, profDupTracksVsInvPt_, profMeanStubsPerLink_, profNumTrackCands_, profNumTracksVsEta_, profStubsOnTracks_, alignCSCRings::s, ProducerSetup_cfi::TMTT, and simpleEdmComparison::tName.

Referenced by book().

471  {
472  // Now book histograms for studying tracking in general.
473 
474  auto addn = [tName](const string& s) { return TString::Format("%s_%s", s.c_str(), tName.c_str()); };
475 
476  TFileDirectory inputDir = fs_->mkdir(addn("TrackCands").Data());
477 
478  bool TMTT = (tName == "HT" || tName == "RZ");
479 
480  // Count tracks in various ways (including/excluding duplicates, excluding fakes ...)
482  inputDir.make<TProfile>(addn("NumTrackCands"), "; class; N. of tracks in tracker", 7, 0.5, 7.5);
483  profNumTrackCands_[tName]->GetXaxis()->SetBinLabel(7, "TP for eff recoed");
484  profNumTrackCands_[tName]->GetXaxis()->SetBinLabel(6, "TP recoed");
485  profNumTrackCands_[tName]->GetXaxis()->SetBinLabel(5, "TP recoed x #eta sector dups");
486  profNumTrackCands_[tName]->GetXaxis()->SetBinLabel(4, "TP recoed x sector dups");
487  profNumTrackCands_[tName]->GetXaxis()->SetBinLabel(2, "TP recoed x track dups");
488  profNumTrackCands_[tName]->GetXaxis()->SetBinLabel(1, "reco tracks including fakes");
489  profNumTrackCands_[tName]->LabelsOption("d");
490 
491  hisNumTrksPerNon_[tName] = inputDir.make<TH1F>(addn("NumTrksPerNon"), "; No. tracks per nonant;", 100, -0.5, 399.5);
492 
493  unsigned int nEta = numEtaRegions_;
495  inputDir.make<TH1F>(addn("NumTracksVsQoverPt"), "; Q/Pt; No. of tracks in tracker", 100, -0.5, 0.5);
496  if (TMTT) {
497  profNumTracksVsEta_[tName] = inputDir.make<TProfile>(
498  addn("NumTracksVsEta"), "; #eta region; No. of tracks in tracker", nEta, -0.5, nEta - 0.5);
499  }
500 
501  // Count stubs per event assigned to tracks (determines HT data output rate)
502 
504  inputDir.make<TProfile>(addn("StubsOnTracks"), "; ; No. of stubs on tracks per event", 1, 0.5, 1.5);
506  inputDir.make<TH1F>(addn("StubsOnTracksPerNon"), "; No. of stubs on tracks per nonant", 100, -0.5, 4999.5);
507 
508  hisStubsPerTrack_[tName] = inputDir.make<TH1F>(addn("StubsPerTrack"), ";No. of stubs per track;", 50, -0.5, 49.5);
510  inputDir.make<TH1F>(addn("LayersPerTrack"), ";No. of layers with stubs per track;", 20, -0.5, 19.5);
511 
512  if (TMTT) {
514  inputDir.make<TH1F>(addn("NumStubsPerLink"), "; Mean #stubs per MHT output opto-link;", 50, -0.5, 249.5);
516  inputDir.make<TProfile>(addn("MeanStubsPerLink"), "; Mean #stubs per MHT output opto-link;", 36, -0.5, 35.5);
517  }
518 
519  hisFracMatchStubsOnTracks_[tName] = inputDir.make<TH1F>(
520  addn("FracMatchStubsOnTracks"), "; Frac. of stubs per trk matching best TP;", 101, -0.005, 1.005);
521 
522  if (TMTT) {
523  // Study duplication of tracks within an individual HT array.
525  inputDir.make<TProfile>(addn("DupTracksVsTPeta"), "; #eta; No. of dup. trks per TP;", 15, 0.0, 3.0);
527  inputDir.make<TProfile>(addn("DupTracksVsInvPt"), "; 1/Pt; No. of dup. trks per TP", 25, 0., 0.5);
528  }
529 
530  // Histos of track params.
531  hisQoverPt_[tName] = inputDir.make<TH1F>(addn("QoverPt"), "; track q/Pt", 100, -0.5, 0.5);
532  hisPhi0_[tName] = inputDir.make<TH1F>(addn("Phi0"), "; track #phi0", 70, -3.5, 3.5);
533  hisEta_[tName] = inputDir.make<TH1F>(addn("Eta"), "; track #eta", 60, -3.0, 3.0);
534  hisZ0_[tName] = inputDir.make<TH1F>(addn("Z0"), "; track z0", 100, -25.0, 25.0);
535 
536  // Histos of track parameter resolution
537  hisQoverPtRes_[tName] = inputDir.make<TH1F>(addn("QoverPtRes"), "; track resolution in q/Pt", 100, -0.06, 0.06);
538  hisPhi0Res_[tName] = inputDir.make<TH1F>(addn("Phi0Res"), "; track resolution in #phi0", 100, -0.04, 0.04);
539  hisEtaRes_[tName] = inputDir.make<TH1F>(addn("EtaRes"), "; track resolution in #eta", 100, -1.0, 1.0);
540  hisZ0Res_[tName] = inputDir.make<TH1F>(addn("Z0Res"), "; track resolution in z0", 100, -10.0, 10.0);
541 
542  // Histos for tracking efficiency vs. TP kinematics
544  inputDir.make<TH1F>(addn("RecoTPinvptForEff"), "; TP 1/Pt of recoed tracks (for effi.);", 50, 0., 0.5);
546  inputDir.make<TH1F>(addn("RecoTPetaForEff"), "; TP #eta of recoed tracks (for effi.);", 20, -3., 3.);
548  inputDir.make<TH1F>(addn("RecoTPphiForEff"), "; TP #phi of recoed tracks (for effi.);", 20, -M_PI, M_PI);
549 
550  // Histo for efficiency to reconstruct track perfectly (no incorrect hits).
551  hisPerfRecoTPinvptForEff_[tName] = inputDir.make<TH1F>(
552  addn("PerfRecoTPinvptForEff"), "; TP 1/Pt of recoed tracks (for perf. effi.);", 50, 0., 0.5);
554  inputDir.make<TH1F>(addn("PerfRecoTPetaForEff"), "; TP #eta of recoed tracks (for perf. effi.);", 20, -3., 3.);
555 
556  // Histos for tracking efficiency vs. TP production point
558  inputDir.make<TH1F>(addn("RecoTPd0ForEff"), "; TP d0 of recoed tracks (for effi.);", 40, 0., 4.);
560  inputDir.make<TH1F>(addn("RecoTPz0ForEff"), "; TP z0 of recoed tracks (for effi.);", 50, 0., 25.);
561 
562  // Histos for algorithmic tracking efficiency vs. TP kinematics
564  inputDir.make<TH1F>(addn("RecoTPinvptForAlgEff"), "; TP 1/Pt of recoed tracks (for alg. effi.);", 50, 0., 0.5);
566  inputDir.make<TH1F>(addn("RecoTPetaForAlgEff"), "; TP #eta of recoed tracks (for alg. effi.);", 20, -3., 3.);
567  hisRecoTPphiForAlgEff_[tName] = inputDir.make<TH1F>(
568  addn("RecoTPphiForAlgEff"), "; TP #phi of recoed tracks (for alg. effi.);", 20, -M_PI, M_PI);
569 
570  // Histo for efficiency to reconstruct track perfectly (no incorrect hits).
571  hisPerfRecoTPinvptForAlgEff_[tName] = inputDir.make<TH1F>(
572  addn("PerfRecoTPinvptForAlgEff"), "; TP 1/Pt of recoed tracks (for perf. alg. effi.);", 50, 0., 0.5);
574  inputDir.make<TH1F>(addn("PerfRecoTPetaForAlgEff"), "; TP #eta (for perf. alg. effi.);", 20, -3., 3.);
575 
576  // Histos for algorithmic tracking efficiency vs. TP production point
578  inputDir.make<TH1F>(addn("RecoTPd0ForAlgEff"), "; TP d0 of recoed tracks (for alg. effi.);", 40, 0., 4.);
580  inputDir.make<TH1F>(addn("RecoTPz0ForAlgEff"), "; TP z0 of recoed tracks (for alg. effi.);", 50, 0., 25.);
581 
582  return inputDir;
583  }
std::map< std::string, TH1F * > hisPerfRecoTPetaForAlgEff_
Definition: Histos.h:210
std::map< std::string, TH1F * > hisRecoTPz0ForEff_
Definition: Histos.h:198
std::map< std::string, TProfile * > profMeanStubsPerLink_
Definition: Histos.h:163
std::map< std::string, TH1F * > hisRecoTPd0ForAlgEff_
Definition: Histos.h:206
std::map< std::string, TH1F * > hisRecoTPz0ForAlgEff_
Definition: Histos.h:207
unsigned int numEtaRegions_
Definition: Histos.h:119
std::map< std::string, TH1F * > hisRecoTPphiForEff_
Definition: Histos.h:196
std::map< std::string, TProfile * > profDupTracksVsInvPt_
Definition: Histos.h:166
std::map< std::string, TProfile * > profStubsOnTracks_
Definition: Histos.h:157
std::map< std::string, TH1F * > hisStubsOnTracksPerNon_
Definition: Histos.h:158
std::map< std::string, TH1F * > hisRecoTPphiForAlgEff_
Definition: Histos.h:205
std::map< std::string, TH1F * > hisEtaRes_
Definition: Histos.h:177
std::map< std::string, TProfile * > profNumTracksVsEta_
Definition: Histos.h:154
std::map< std::string, TH1F * > hisNumTracksVsQoverPt_
Definition: Histos.h:155
std::map< std::string, TH1F * > hisPerfRecoTPetaForEff_
Definition: Histos.h:201
std::map< std::string, TH1F * > hisPhi0_
Definition: Histos.h:170
std::map< std::string, TH1F * > hisFracMatchStubsOnTracks_
Definition: Histos.h:164
std::map< std::string, TH1F * > hisRecoTPetaForAlgEff_
Definition: Histos.h:204
T * make(const Args &...args) const
make new ROOT object
std::map< std::string, TH1F * > hisRecoTPd0ForEff_
Definition: Histos.h:197
std::map< std::string, TH1F * > hisPerfRecoTPinvptForAlgEff_
Definition: Histos.h:209
std::map< std::string, TH1F * > hisQoverPt_
Definition: Histos.h:169
edm::Service< TFileService > fs_
Definition: Histos.h:110
std::map< std::string, TProfile * > profNumTrackCands_
Definition: Histos.h:153
std::map< std::string, TH1F * > hisNumStubsPerLink_
Definition: Histos.h:162
std::map< std::string, TH1F * > hisNumTrksPerNon_
Definition: Histos.h:156
#define M_PI
std::map< std::string, TProfile * > profDupTracksVsEta_
Definition: Histos.h:165
std::map< std::string, TH1F * > hisRecoTPinvptForAlgEff_
Definition: Histos.h:203
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
std::map< std::string, TH1F * > hisZ0_
Definition: Histos.h:172
std::map< std::string, TH1F * > hisRecoTPinvptForEff_
Definition: Histos.h:194
std::map< std::string, TH1F * > hisLayersPerTrack_
Definition: Histos.h:160
std::map< std::string, TH1F * > hisZ0Res_
Definition: Histos.h:178
std::map< std::string, TH1F * > hisPhi0Res_
Definition: Histos.h:176
std::map< std::string, TH1F * > hisStubsPerTrack_
Definition: Histos.h:159
std::map< std::string, TH1F * > hisQoverPtRes_
Definition: Histos.h:175
std::map< std::string, TH1F * > hisRecoTPetaForEff_
Definition: Histos.h:195
std::map< std::string, TH1F * > hisPerfRecoTPinvptForEff_
Definition: Histos.h:200
std::map< std::string, TH1F * > hisEta_
Definition: Histos.h:171

◆ bookTrackFitting()

map< string, TFileDirectory > Histos::bookTrackFitting ( )
protectedvirtual

Definition at line 865 of file Histos.cc.

References fs_, hisD0ResVsTrueEta_, hisD0ResVsTrueInvPt_, hisEtaResVsTrueEta_, hisEtaResVsTrueInvPt_, hisFitChi2DofRphiMatched_, hisFitChi2DofRphiUnmatched_, hisFitChi2DofRzMatched_, hisFitChi2DofRzUnmatched_, hisFitD0Matched_, hisFitD0Unmatched_, hisFitEtaMatched_, hisFitEtaUnmatched_, hisFitPhi0Matched_, hisFitPhi0Unmatched_, hisFitQinvPtMatched_, hisFitQinvPtUnmatched_, hisFitTPd0ForAlgEff_, hisFitTPd0ForEff_, hisFitTPetaForAlgEff_, hisFitTPetaForEff_, hisFitTPinvptForAlgEff_, hisFitTPinvptForEff_, hisFitTPphiForAlgEff_, hisFitTPphiForEff_, hisFitTPz0ForAlgEff_, hisFitTPz0ForEff_, hisFitZ0Matched_, hisFitZ0Unmatched_, hisKalmanChi2DofSkipLay0Matched_, hisKalmanChi2DofSkipLay0Unmatched_, hisKalmanChi2DofSkipLay1Matched_, hisKalmanChi2DofSkipLay1Unmatched_, hisKalmanChi2DofSkipLay2Matched_, hisKalmanChi2DofSkipLay2Unmatched_, hisKalmanNumUpdateCalls_, hisNumFitTrks_, hisNumFitTrksPerNon_, hisPerfFitTPetaForAlgEff_, hisPerfFitTPetaForEff_, hisPerfFitTPinvptForAlgEff_, hisPerfFitTPinvptForEff_, hisPhi0ResVsTrueEta_, hisPhi0ResVsTrueInvPt_, hisQoverPtResVsTrueEta_, hisQoverPtResVsTrueInvPt_, hisStubsPerFitTrack_, hisZ0ResVsTrueEta_, hisZ0ResVsTrueInvPt_, M_PI, TFileDirectory::make(), TFileService::mkdir(), profDupFitTrksVsEta_, profDupFitTrksVsInvPt_, profFitChi2DofRphiVsInvPtMatched_, profFitChi2DofRphiVsInvPtUnmatched_, profNumFitTracks_, profStubsOnFitTracks_, alignCSCRings::s, and trackFitters_.

Referenced by book().

865  {
866  map<string, TFileDirectory> inputDirMap;
867 
868  for (const string& fitName : trackFitters_) {
869  // Define lambda function to facilitate adding "fitName" histogram names.
870  auto addn = [fitName](const string& s) { return TString::Format("%s_%s", s.c_str(), fitName.c_str()); };
871 
872  TFileDirectory inputDir = fs_->mkdir(fitName);
873  inputDirMap[fitName] = inputDir;
874 
875  profNumFitTracks_[fitName] =
876  inputDir.make<TProfile>(addn("NumFitTracks"), "; class; # of fitted tracks", 11, 0.5, 11.5, -0.5, 9.9e6);
877  profNumFitTracks_[fitName]->GetXaxis()->SetBinLabel(7, "TP for eff fitted");
878  profNumFitTracks_[fitName]->GetXaxis()->SetBinLabel(6, "TP fitted");
879  profNumFitTracks_[fitName]->GetXaxis()->SetBinLabel(2, "Fit tracks that are genuine");
880  profNumFitTracks_[fitName]->GetXaxis()->SetBinLabel(1, "Fit tracks including fakes");
881  profNumFitTracks_[fitName]->LabelsOption("d");
882 
883  hisNumFitTrks_[fitName] =
884  inputDir.make<TH1F>(addn("NumFitTrks"), "; No. fitted tracks in tracker;", 200, -0.5, 399.5);
885  hisNumFitTrksPerNon_[fitName] =
886  inputDir.make<TH1F>(addn("NumFitTrksPerNon"), "; No. fitted tracks per nonant;", 200, -0.5, 199.5);
887 
888  hisStubsPerFitTrack_[fitName] =
889  inputDir.make<TH1F>(addn("StubsPerFitTrack"), "; No. of stubs per fitted track", 20, -0.5, 19.5);
890  profStubsOnFitTracks_[fitName] = inputDir.make<TProfile>(
891  addn("StubsOnFitTracks"), "; ; No. of stubs on all fitted tracks per event", 1, 0.5, 1.5);
892 
893  hisFitQinvPtMatched_[fitName] =
894  inputDir.make<TH1F>(addn("FitQinvPtMatched"), "Fitted q/p_{T} for matched tracks", 120, -0.6, 0.6);
895  hisFitPhi0Matched_[fitName] =
896  inputDir.make<TH1F>(addn("FitPhi0Matched"), "Fitted #phi_{0} for matched tracks", 70, -3.5, 3.5);
897  hisFitD0Matched_[fitName] =
898  inputDir.make<TH1F>(addn("FitD0Matched"), "Fitted d_{0} for matched tracks", 100, -2., 2.);
899  hisFitZ0Matched_[fitName] =
900  inputDir.make<TH1F>(addn("FitZ0Matched"), "Fitted z_{0} for matched tracks", 100, -25., 25.);
901  hisFitEtaMatched_[fitName] =
902  inputDir.make<TH1F>(addn("FitEtaMatched"), "Fitted #eta for matched tracks", 70, -3.5, 3.5);
903 
904  hisFitQinvPtUnmatched_[fitName] =
905  inputDir.make<TH1F>(addn("FitQinvPtUnmatched"), "Fitted q/p_{T} for unmatched tracks", 120, -0.6, 0.6);
906  hisFitPhi0Unmatched_[fitName] =
907  inputDir.make<TH1F>(addn("FitPhi0Unmatched"), "Fitted #phi_{0} for unmatched tracks", 70, -3.5, 3.5);
908  hisFitD0Unmatched_[fitName] =
909  inputDir.make<TH1F>(addn("FitD0Unmatched"), "Fitted d_{0} for unmatched tracks", 100, -2., 2.);
910  hisFitZ0Unmatched_[fitName] =
911  inputDir.make<TH1F>(addn("FitZ0Unmatched"), "Fitted z_{0} for unmatched tracks", 100, -25., 25.);
912  hisFitEtaUnmatched_[fitName] =
913  inputDir.make<TH1F>(addn("FitEtaUnmatched"), "Fitted #eta for unmatched tracks", 70, -3.5, 3.5);
914 
915  const unsigned int nBinsChi2 = 39;
916  const float chi2dofBins[nBinsChi2 + 1] = {0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8,
917  2.0, 2.4, 2.8, 3.2, 3.6, 4.0, 4.5, 5.0, 6.0, 7.0,
918  8.0, 9.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 25.0, 30.0,
919  40.0, 50.0, 75.0, 100.0, 150.0, 200.0, 250.0, 350.0, 500.0, 1000.0};
920 
921  hisFitChi2DofRphiMatched_[fitName] =
922  inputDir.make<TH1F>(addn("FitChi2DofRphiMatched"), ";#chi^{2}rphi;", nBinsChi2, chi2dofBins);
923  hisFitChi2DofRzMatched_[fitName] =
924  inputDir.make<TH1F>(addn("FitChi2DofRzMatched"), ";#chi^{2}rz/DOF;", nBinsChi2, chi2dofBins);
926  inputDir.make<TProfile>(addn("FitChi2DofRphiVsInvPtMatched"), "; 1/p_{T}; Fit #chi^{2}rphi/dof", 25, 0., 0.5);
927 
928  hisFitChi2DofRphiUnmatched_[fitName] =
929  inputDir.make<TH1F>(addn("FitChi2DofRphiUnmatched"), ";#chi^{2}rphi/DOF;", nBinsChi2, chi2dofBins);
930  hisFitChi2DofRzUnmatched_[fitName] =
931  inputDir.make<TH1F>(addn("FitChi2DofRzUnmatched"), ";#chi^{2}rz/DOF;", nBinsChi2, chi2dofBins);
932  profFitChi2DofRphiVsInvPtUnmatched_[fitName] = inputDir.make<TProfile>(
933  addn("FitChi2DofRphiVsInvPtUnmatched"), "; 1/p_{T}; Fit #chi^{2}rphi/dof", 25, 0., 0.5);
934 
935  // Monitoring specific track fit algorithms.
936  if (fitName.find("KF") != string::npos) {
937  hisKalmanNumUpdateCalls_[fitName] =
938  inputDir.make<TH1F>(addn("KalmanNumUpdateCalls"), "; Calls to KF updator;", 100, -0.5, 99.5);
939 
940  hisKalmanChi2DofSkipLay0Matched_[fitName] = inputDir.make<TH1F>(
941  addn("KalmanChi2DofSkipLay0Matched"), ";#chi^{2} for nSkippedLayers = 0;", nBinsChi2, chi2dofBins);
942  hisKalmanChi2DofSkipLay1Matched_[fitName] = inputDir.make<TH1F>(
943  addn("KalmanChi2DofSkipLay1Matched"), ";#chi^{2} for nSkippedLayers = 1;", nBinsChi2, chi2dofBins);
944  hisKalmanChi2DofSkipLay2Matched_[fitName] = inputDir.make<TH1F>(
945  addn("KalmanChi2DofSkipLay2Matched"), ";#chi^{2} for nSkippedLayers = 2;", nBinsChi2, chi2dofBins);
946  hisKalmanChi2DofSkipLay0Unmatched_[fitName] = inputDir.make<TH1F>(
947  addn("KalmanChi2DofSkipLay0Unmatched"), ";#chi^{2} for nSkippedLayers = 0;", nBinsChi2, chi2dofBins);
948  hisKalmanChi2DofSkipLay1Unmatched_[fitName] = inputDir.make<TH1F>(
949  addn("KalmanChi2DofSkipLay1Unmatched"), ";#chi^{2} for nSkippedLayers = 1;", nBinsChi2, chi2dofBins);
950  hisKalmanChi2DofSkipLay2Unmatched_[fitName] = inputDir.make<TH1F>(
951  addn("KalmanChi2DofSkipLay2Unmatched"), ";#chi^{2} for nSkippedLayers = 2;", nBinsChi2, chi2dofBins);
952  }
953 
954  // Plots of helix param resolution.
955 
956  hisQoverPtResVsTrueEta_[fitName] = inputDir.make<TProfile>(
957  addn("QoverPtResVsTrueEta"), "q/p_{T} resolution; |#eta|; q/p_{T} resolution", 30, 0.0, 3.0);
958  hisPhi0ResVsTrueEta_[fitName] = inputDir.make<TProfile>(
959  addn("PhiResVsTrueEta"), "#phi_{0} resolution; |#eta|; #phi_{0} resolution", 30, 0.0, 3.0);
960  hisEtaResVsTrueEta_[fitName] =
961  inputDir.make<TProfile>(addn("EtaResVsTrueEta"), "#eta resolution; |#eta|; #eta resolution", 30, 0.0, 3.0);
962  hisZ0ResVsTrueEta_[fitName] =
963  inputDir.make<TProfile>(addn("Z0ResVsTrueEta"), "z_{0} resolution; |#eta|; z_{0} resolution", 30, 0.0, 3.0);
964  hisD0ResVsTrueEta_[fitName] =
965  inputDir.make<TProfile>(addn("D0ResVsTrueEta"), "d_{0} resolution; |#eta|; d_{0} resolution", 30, 0.0, 3.0);
966 
967  hisQoverPtResVsTrueInvPt_[fitName] = inputDir.make<TProfile>(
968  addn("QoverPtResVsTrueInvPt"), "q/p_{T} resolution; 1/p_{T}; q/p_{T} resolution", 25, 0.0, 0.5);
969  hisPhi0ResVsTrueInvPt_[fitName] = inputDir.make<TProfile>(
970  addn("PhiResVsTrueInvPt"), "#phi_{0} resolution; 1/p_{T}; #phi_{0} resolution", 25, 0.0, 0.5);
971  hisEtaResVsTrueInvPt_[fitName] =
972  inputDir.make<TProfile>(addn("EtaResVsTrueInvPt"), "#eta resolution; 1/p_{T}; #eta resolution", 25, 0.0, 0.5);
973  hisZ0ResVsTrueInvPt_[fitName] = inputDir.make<TProfile>(
974  addn("Z0ResVsTrueInvPt"), "z_{0} resolution; 1/p_{T}; z_{0} resolution", 25, 0.0, 0.5);
975  hisD0ResVsTrueInvPt_[fitName] = inputDir.make<TProfile>(
976  addn("D0ResVsTrueInvPt"), "d_{0} resolution; 1/p_{T}; d_{0} resolution", 25, 0.0, 0.5);
977 
978  // Duplicate track histos.
979  profDupFitTrksVsEta_[fitName] =
980  inputDir.make<TProfile>(addn("DupFitTrksVsEta"), "; #eta; No. of duplicate tracks per TP", 12, 0., 3.);
981  profDupFitTrksVsInvPt_[fitName] =
982  inputDir.make<TProfile>(addn("DupFitTrksVsInvPt"), "; 1/Pt; No. of duplicate tracks per TP", 25, 0., 0.5);
983 
984  // Histos for tracking efficiency vs. TP kinematics. (Binning must match similar histos in bookTrackCands()).
985  hisFitTPinvptForEff_[fitName] =
986  inputDir.make<TH1F>(addn("FitTPinvptForEff"), "; TP 1/Pt of fitted tracks (for effi.);", 50, 0., 0.5);
987  hisFitTPetaForEff_[fitName] =
988  inputDir.make<TH1F>(addn("FitTPetaForEff"), "; TP #eta of fitted tracks (for effi.);", 20, -3., 3.);
989  hisFitTPphiForEff_[fitName] =
990  inputDir.make<TH1F>(addn("FitTPphiForEff"), "; TP #phi of fitted tracks (for effi.);", 20, -M_PI, M_PI);
991 
992  // Histo for efficiency to reconstruct track perfectly (no incorrect hits). (Binning must match similar histos in bookTrackCands()).
993  hisPerfFitTPinvptForEff_[fitName] = inputDir.make<TH1F>(
994  addn("PerfFitTPinvptForEff"), "; TP 1/Pt of fitted tracks (for perf. effi.);", 50, 0., 0.5);
995  hisPerfFitTPetaForEff_[fitName] = inputDir.make<TH1F>(
996  addn("PerfFitTPetaForEff"), "; TP #eta of fitted tracks (for perfect effi.);", 20, -3., 3.);
997 
998  // Histos for tracking efficiency vs. TP production point. (Binning must match similar histos in bookTrackCands()).
999  hisFitTPd0ForEff_[fitName] =
1000  inputDir.make<TH1F>(addn("FitTPd0ForEff"), "; TP d0 of fitted tracks (for effi.);", 40, 0., 4.);
1001  hisFitTPz0ForEff_[fitName] =
1002  inputDir.make<TH1F>(addn("FitTPz0ForEff"), "; TP z0 of fitted tracks (for effi.);", 50, 0., 25.);
1003 
1004  // Histos for algorithmic tracking efficiency vs. TP kinematics. (Binning must match similar histos in bookTrackCands()).
1005  hisFitTPinvptForAlgEff_[fitName] =
1006  inputDir.make<TH1F>(addn("FitTPinvptForAlgEff"), "; TP 1/Pt of fitted tracks (for alg. effi.);", 50, 0., 0.5);
1007  hisFitTPetaForAlgEff_[fitName] =
1008  inputDir.make<TH1F>(addn("FitTPetaForAlgEff"), "; TP #eta of fitted tracks (for alg. effi.);", 20, -3., 3.);
1009  hisFitTPphiForAlgEff_[fitName] = inputDir.make<TH1F>(
1010  addn("FitTPphiForAlgEff"), "; TP #phi of fitted tracks (for alg. effi.);", 20, -M_PI, M_PI);
1011 
1012  // Histo for efficiency to reconstruct track perfectly (no incorrect hits). (Binning must match similar histos in bookTrackCands()).
1013  hisPerfFitTPinvptForAlgEff_[fitName] = inputDir.make<TH1F>(
1014  addn("PerfFitTPinvptForAlgEff"), "; TP 1/Pt of fitted tracks (for perf. alg. effi.);", 50, 0., 0.5);
1015  hisPerfFitTPetaForAlgEff_[fitName] =
1016  inputDir.make<TH1F>(addn("PerfFitTPetaForAlgEff"), "; TP #eta (for perf. alg. effi.);", 20, -3., 3.);
1017 
1018  // Histos for algorithmic tracking efficiency vs. TP production point. (Binning must match similar histos in bookTrackCands()).
1019  hisFitTPd0ForAlgEff_[fitName] =
1020  inputDir.make<TH1F>(addn("FitTPd0ForAlgEff"), "; TP d0 of fitted tracks (for alg. effi.);", 40, 0., 4.);
1021  hisFitTPz0ForAlgEff_[fitName] =
1022  inputDir.make<TH1F>(addn("FitTPz0ForAlgEff"), "; TP z0 of fitted tracks (for alg. effi.);", 50, 0., 25.);
1023  }
1024  return inputDirMap;
1025  }
std::map< std::string, TH1F * > hisFitZ0Matched_
Definition: Histos.h:224
std::map< std::string, TProfile * > hisEtaResVsTrueInvPt_
Definition: Histos.h:257
std::map< std::string, TH1F * > hisFitZ0Unmatched_
Definition: Histos.h:230
std::map< std::string, TH1F * > hisFitChi2DofRphiMatched_
Definition: Histos.h:241
std::map< std::string, TH1F * > hisFitEtaUnmatched_
Definition: Histos.h:231
std::map< std::string, TH1F * > hisFitD0Unmatched_
Definition: Histos.h:229
std::map< std::string, TProfile * > profFitChi2DofRphiVsInvPtMatched_
Definition: Histos.h:243
std::map< std::string, TProfile * > hisQoverPtResVsTrueInvPt_
Definition: Histos.h:255
std::map< std::string, TH1F * > hisKalmanNumUpdateCalls_
Definition: Histos.h:233
std::map< std::string, TH1F * > hisFitEtaMatched_
Definition: Histos.h:225
std::map< std::string, TH1F * > hisFitTPphiForAlgEff_
Definition: Histos.h:274
std::map< std::string, TH1F * > hisPerfFitTPinvptForAlgEff_
Definition: Histos.h:277
std::map< std::string, TProfile * > hisD0ResVsTrueInvPt_
Definition: Histos.h:259
std::map< std::string, TProfile * > profNumFitTracks_
Definition: Histos.h:214
std::map< std::string, TH1F * > hisNumFitTrksPerNon_
Definition: Histos.h:216
std::map< std::string, TProfile * > hisEtaResVsTrueEta_
Definition: Histos.h:251
std::vector< std::string > trackFitters_
Definition: Histos.h:124
std::map< std::string, TProfile * > profDupFitTrksVsEta_
Definition: Histos.h:261
T * make(const Args &...args) const
make new ROOT object
std::map< std::string, TProfile * > hisZ0ResVsTrueInvPt_
Definition: Histos.h:258
std::map< std::string, TH1F * > hisPerfFitTPetaForEff_
Definition: Histos.h:271
std::map< std::string, TH1F * > hisFitTPetaForAlgEff_
Definition: Histos.h:273
std::map< std::string, TProfile * > hisD0ResVsTrueEta_
Definition: Histos.h:253
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay0Unmatched_
Definition: Histos.h:237
std::map< std::string, TH1F * > hisFitTPz0ForEff_
Definition: Histos.h:269
std::map< std::string, TH1F * > hisFitQinvPtMatched_
Definition: Histos.h:221
std::map< std::string, TProfile * > profStubsOnFitTracks_
Definition: Histos.h:219
std::map< std::string, TH1F * > hisFitTPphiForEff_
Definition: Histos.h:267
std::map< std::string, TH1F * > hisFitTPd0ForEff_
Definition: Histos.h:268
std::map< std::string, TH1F * > hisFitPhi0Matched_
Definition: Histos.h:222
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay1Matched_
Definition: Histos.h:235
std::map< std::string, TH1F * > hisFitD0Matched_
Definition: Histos.h:223
edm::Service< TFileService > fs_
Definition: Histos.h:110
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay1Unmatched_
Definition: Histos.h:238
std::map< std::string, TProfile * > hisPhi0ResVsTrueInvPt_
Definition: Histos.h:256
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay2Unmatched_
Definition: Histos.h:239
std::map< std::string, TProfile * > hisPhi0ResVsTrueEta_
Definition: Histos.h:250
std::map< std::string, TH1F * > hisFitTPetaForEff_
Definition: Histos.h:266
std::map< std::string, TProfile * > profDupFitTrksVsInvPt_
Definition: Histos.h:262
#define M_PI
std::map< std::string, TH1F * > hisPerfFitTPetaForAlgEff_
Definition: Histos.h:278
std::map< std::string, TH1F * > hisFitTPinvptForEff_
Definition: Histos.h:265
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
std::map< std::string, TH1F * > hisFitChi2DofRphiUnmatched_
Definition: Histos.h:245
std::map< std::string, TProfile * > hisQoverPtResVsTrueEta_
Definition: Histos.h:249
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay0Matched_
Definition: Histos.h:234
std::map< std::string, TH1F * > hisFitChi2DofRzMatched_
Definition: Histos.h:242
std::map< std::string, TH1F * > hisFitPhi0Unmatched_
Definition: Histos.h:228
std::map< std::string, TH1F * > hisFitTPinvptForAlgEff_
Definition: Histos.h:272
std::map< std::string, TProfile * > hisZ0ResVsTrueEta_
Definition: Histos.h:252
std::map< std::string, TH1F * > hisPerfFitTPinvptForEff_
Definition: Histos.h:270
std::map< std::string, TH1F * > hisFitTPd0ForAlgEff_
Definition: Histos.h:275
std::map< std::string, TH1F * > hisFitChi2DofRzUnmatched_
Definition: Histos.h:246
std::map< std::string, TProfile * > profFitChi2DofRphiVsInvPtUnmatched_
Definition: Histos.h:247
std::map< std::string, TH1F * > hisFitQinvPtUnmatched_
Definition: Histos.h:227
std::map< std::string, TH1F * > hisStubsPerFitTrack_
Definition: Histos.h:218
std::map< std::string, TH1F * > hisFitTPz0ForAlgEff_
Definition: Histos.h:276
std::map< std::string, TH1F * > hisNumFitTrks_
Definition: Histos.h:215
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay2Matched_
Definition: Histos.h:236

◆ enabled()

virtual bool tmtt::Histos::enabled ( ) const
inlinevirtual

Definition at line 60 of file Histos.h.

References available(), tmtt::Settings::enableHistos(), and settings_.

Referenced by book(), endJobAnalysis(), and trackerGeometryAnalysis().

60 { return (settings_->enableHistos() && available()); }
virtual bool available() const
Definition: Histos.h:57
const Settings * settings_
Definition: Histos.h:116
bool enableHistos() const
Definition: Settings.h:42

◆ endJobAnalysis()

void Histos::endJobAnalysis ( const HTrphi::ErrorMonitor htRphiErrMon = nullptr)
virtual

Definition at line 1563 of file Histos.cc.

References bApproxMistake_, enabled(), nano_mu_digi_cff::float, DivergingColor::frac, hisRecoTPinvptForEff_, tmtt::Settings::hybrid(), mapBarrelLayerMaxR_, mapBarrelLayerMinR_, mapEndcapWheelMaxZ_, mapEndcapWheelMinZ_, mapExtraAModuleTypeMaxR_, mapExtraAModuleTypeMaxZ_, mapExtraAModuleTypeMinR_, mapExtraAModuleTypeMinZ_, mapExtraBModuleTypeMaxR_, mapExtraBModuleTypeMaxZ_, mapExtraBModuleTypeMinR_, mapExtraBModuleTypeMinZ_, mapExtraCModuleTypeMaxR_, mapExtraCModuleTypeMaxZ_, mapExtraCModuleTypeMinR_, mapExtraCModuleTypeMinZ_, mapExtraDModuleTypeMaxR_, mapExtraDModuleTypeMaxZ_, mapExtraDModuleTypeMinR_, mapExtraDModuleTypeMinZ_, mapModuleTypeMaxR_, mapModuleTypeMaxZ_, mapModuleTypeMinR_, mapModuleTypeMinZ_, tmtt::HTrphi::ErrorMonitor::maxLineGradient, tmtt::HTrphi::ErrorMonitor::numErrorsNorm, tmtt::HTrphi::ErrorMonitor::numErrorsTypeA, tmtt::HTrphi::ErrorMonitor::numErrorsTypeB, oldSumW2opt_, AlCaHLTBitMon_ParallelJobs::p, plotHybridDupRemovalEfficiency(), plotTrackEffAfterFit(), plotTrackEfficiency(), plotTrackletSeedEfficiency(), printFitTrackPerformance(), printHybridDupRemovalPerformance(), printTrackletSeedFindingPerformance(), printTrackPerformance(), ranRZfilter_, settings_, and trackFitters_.

Referenced by tmtt::TMTrackProducer::globalEndJob().

1563  {
1564  // Don't bother producing summary if user didn't request histograms via TFileService in their cfg.
1565  if (not this->enabled())
1566  return;
1567 
1568  // Protection when running in wierd mixed hybrid-TMTT modes.
1569  bool wierdMixedMode = (hisRecoTPinvptForEff_.find("TRACKLET") == hisRecoTPinvptForEff_.end());
1570 
1571  if (settings_->hybrid() && not wierdMixedMode) {
1572  // Produce plots of tracking efficieny after tracklet pattern reco.
1574  this->plotTrackEfficiency("TRACKLET");
1576 
1577  } else {
1578  // Produce plots of tracking efficiency using track candidates found after HT.
1579  this->plotTrackEfficiency("HT");
1580 
1581  // Optionally produce plots of tracking efficiency using track candidates found after r-z track filter.
1582  if (ranRZfilter_)
1583  this->plotTrackEfficiency("RZ");
1584  }
1585 
1586  // Produce more plots of tracking efficiency using track candidates after track fit.
1587  for (auto& fitName : trackFitters_) {
1588  this->plotTrackEffAfterFit(fitName);
1589  }
1590 
1591  PrintL1trk() << "=========================================================================";
1592 
1593  // Print r (z) range in which each barrel layer (endcap wheel) appears.
1594  // (Needed by firmware).
1595  PrintL1trk();
1596  PrintL1trk() << "--- r range in which stubs in each barrel layer appear ---";
1597  for (const auto& p : mapBarrelLayerMinR_) {
1598  unsigned int layer = p.first;
1599  PrintL1trk() << " layer = " << layer << " : " << mapBarrelLayerMinR_[layer] << " < r < "
1601  }
1602  PrintL1trk() << "--- |z| range in which stubs in each endcap wheel appear ---";
1603  for (const auto& p : mapEndcapWheelMinZ_) {
1604  unsigned int layer = p.first;
1605  PrintL1trk() << " wheel = " << layer << " : " << mapEndcapWheelMinZ_[layer] << " < |z| < "
1607  }
1608 
1609  // Print (r,|z|) range in which each module type (defined in DigitalStub) appears.
1610  // (Needed by firmware).
1611  PrintL1trk();
1612  PrintL1trk() << "--- (r,|z|) range in which each module type (defined in DigitalStub) appears ---";
1613  for (const auto& p : mapModuleTypeMinR_) {
1614  unsigned int modType = p.first;
1615  PrintL1trk() << " Module type = " << modType << setprecision(1) << " : r range = ("
1616  << mapModuleTypeMinR_[modType] << "," << mapModuleTypeMaxR_[modType] << "); z range = ("
1617  << mapModuleTypeMinZ_[modType] << "," << mapModuleTypeMaxZ_[modType] << ")";
1618  }
1619  // Ugly bodge to allow for modules in barrel layers 1-2 & endcap wheels 3-5 being different.
1620  PrintL1trk() << "and in addition";
1621  for (const auto& p : mapExtraAModuleTypeMinR_) {
1622  unsigned int modType = p.first;
1623  PrintL1trk() << " Module type = " << modType << setprecision(1) << " : r range = ("
1624  << mapExtraAModuleTypeMinR_[modType] << "," << mapExtraAModuleTypeMaxR_[modType] << "); z range = ("
1625  << mapExtraAModuleTypeMinZ_[modType] << "," << mapExtraAModuleTypeMaxZ_[modType] << ")";
1626  }
1627  PrintL1trk() << "and in addition";
1628  for (const auto& p : mapExtraBModuleTypeMinR_) {
1629  unsigned int modType = p.first;
1630  PrintL1trk() << " Module type = " << modType << setprecision(1) << " : r range = ("
1631  << mapExtraBModuleTypeMinR_[modType] << "," << mapExtraBModuleTypeMaxR_[modType] << "); z range = ("
1632  << mapExtraBModuleTypeMinZ_[modType] << "," << mapExtraBModuleTypeMaxZ_[modType] << ")";
1633  }
1634  PrintL1trk() << "and in addition";
1635  for (const auto& p : mapExtraCModuleTypeMinR_) {
1636  unsigned int modType = p.first;
1637  PrintL1trk() << " Module type = " << modType << setprecision(1) << " : r range = ("
1638  << mapExtraCModuleTypeMinR_[modType] << "," << mapExtraCModuleTypeMaxR_[modType] << "); z range = ("
1639  << mapExtraCModuleTypeMinZ_[modType] << "," << mapExtraCModuleTypeMaxZ_[modType] << ")";
1640  }
1641  PrintL1trk() << "and in addition";
1642  for (const auto& p : mapExtraDModuleTypeMinR_) {
1643  unsigned int modType = p.first;
1644  PrintL1trk() << " Module type = " << modType << setprecision(1) << " : r range = ("
1645  << mapExtraDModuleTypeMinR_[modType] << "," << mapExtraDModuleTypeMaxR_[modType] << "); z range = ("
1646  << mapExtraDModuleTypeMinZ_[modType] << "," << mapExtraDModuleTypeMaxZ_[modType] << ")";
1647  }
1648  PrintL1trk();
1649 
1650  if (settings_->hybrid() && not wierdMixedMode) {
1651  //--- Print summary of tracklet pattern reco
1653  this->printTrackPerformance("TRACKLET");
1655  } else {
1656  //--- Print summary of track-finding performance after HT
1657  this->printTrackPerformance("HT");
1658  //--- Optionally print summary of track-finding performance after r-z track filter.
1659  if (ranRZfilter_)
1660  this->printTrackPerformance("RZ");
1661  }
1662 
1663  //--- Print summary of track-finding performance after helix fit, for each track fitting algorithm used.
1664  for (const string& fitName : trackFitters_) {
1665  this->printFitTrackPerformance(fitName);
1666  }
1667  PrintL1trk() << "=========================================================================";
1668 
1669  if (htRphiErrMon != nullptr && not settings_->hybrid()) {
1670  // Check that stub filling was consistent with known limitations of HT firmware design.
1671 
1672  PrintL1trk() << "Max. |gradients| of stub lines in HT array is: r-phi = " << htRphiErrMon->maxLineGradient;
1673 
1674  if (htRphiErrMon->maxLineGradient > 1.) {
1675  PrintL1trk()
1676  << "WARNING: Line |gradient| exceeds 1, which firmware will not be able to cope with! Please adjust HT "
1677  "array size to avoid this.";
1678 
1679  } else if (htRphiErrMon->numErrorsTypeA > 0.) {
1680  float frac = float(htRphiErrMon->numErrorsTypeA) / float(htRphiErrMon->numErrorsNorm);
1681  PrintL1trk()
1682  << "WARNING: Despite line gradients being less than one, some fraction of HT columns have filled cells "
1683  "with no filled neighbours in W, SW or NW direction. Firmware will object to this! ";
1684  PrintL1trk() << "This fraction = " << frac << " for r-phi HT";
1685 
1686  } else if (htRphiErrMon->numErrorsTypeB > 0.) {
1687  float frac = float(htRphiErrMon->numErrorsTypeB) / float(htRphiErrMon->numErrorsNorm);
1688  PrintL1trk()
1689  << "WARNING: Despite line gradients being less than one, some fraction of HT columns recorded individual "
1690  "stubs being added to more than two cells! Thomas firmware will object to this! ";
1691  PrintL1trk() << "This fraction = " << frac << " for r-phi HT";
1692  }
1693  }
1694 
1695  // Check if GP B approximation cfg params are inconsistent.
1696  if (bApproxMistake_)
1697  PrintL1trk() << "\n WARNING: BApprox cfg params are inconsistent - see printout above.";
1698 
1699  // Restore original ROOT default cfg.
1700  TH1::SetDefaultSumw2(oldSumW2opt_);
1701  }
std::map< unsigned int, float > mapExtraDModuleTypeMinR_
Definition: Histos.h:352
bool bApproxMistake_
Definition: Histos.h:357
virtual bool enabled() const
Definition: Histos.h:60
std::map< unsigned int, float > mapModuleTypeMinR_
Definition: Histos.h:335
std::map< unsigned int, float > mapExtraCModuleTypeMinZ_
Definition: Histos.h:350
virtual void printTrackPerformance(const std::string &tName)
Definition: Histos.cc:1473
virtual TFileDirectory plotTrackEfficiency(const std::string &tName)
Definition: Histos.cc:1258
bool oldSumW2opt_
Definition: Histos.h:129
std::map< unsigned int, float > mapExtraAModuleTypeMinZ_
Definition: Histos.h:342
std::map< unsigned int, float > mapEndcapWheelMaxZ_
Definition: Histos.h:332
virtual void printFitTrackPerformance(const std::string &fitName)
Definition: Histos.cc:1519
const Settings * settings_
Definition: Histos.h:116
std::vector< std::string > trackFitters_
Definition: Histos.h:124
std::map< unsigned int, float > mapExtraCModuleTypeMaxR_
Definition: Histos.h:349
std::map< unsigned int, float > mapExtraBModuleTypeMinR_
Definition: Histos.h:344
std::map< unsigned int, float > mapModuleTypeMaxZ_
Definition: Histos.h:338
virtual void printHybridDupRemovalPerformance()
Definition: Histos.h:110
std::map< unsigned int, float > mapExtraAModuleTypeMaxR_
Definition: Histos.h:341
std::map< unsigned int, float > mapBarrelLayerMinR_
Definition: Histos.h:328
virtual void printTrackletSeedFindingPerformance()
Definition: Histos.h:107
virtual TFileDirectory plotTrackEffAfterFit(const std::string &fitName)
Definition: Histos.cc:1363
std::map< unsigned int, float > mapExtraBModuleTypeMinZ_
Definition: Histos.h:346
std::map< unsigned int, float > mapExtraBModuleTypeMaxR_
Definition: Histos.h:345
bool ranRZfilter_
Definition: Histos.h:126
std::map< unsigned int, float > mapExtraAModuleTypeMinR_
Definition: Histos.h:340
std::map< unsigned int, float > mapModuleTypeMaxR_
Definition: Histos.h:336
std::map< std::string, TH1F * > hisRecoTPinvptForEff_
Definition: Histos.h:194
std::map< unsigned int, float > mapExtraDModuleTypeMaxR_
Definition: Histos.h:353
std::map< unsigned int, float > mapBarrelLayerMaxR_
Definition: Histos.h:329
std::map< unsigned int, float > mapExtraBModuleTypeMaxZ_
Definition: Histos.h:347
std::map< unsigned int, float > mapExtraDModuleTypeMaxZ_
Definition: Histos.h:355
std::map< unsigned int, float > mapEndcapWheelMinZ_
Definition: Histos.h:331
std::map< unsigned int, float > mapExtraCModuleTypeMinR_
Definition: Histos.h:348
bool hybrid() const
Definition: Settings.h:409
std::map< unsigned int, float > mapExtraCModuleTypeMaxZ_
Definition: Histos.h:351
virtual void plotHybridDupRemovalEfficiency()
Definition: Histos.h:94
std::map< unsigned int, float > mapExtraAModuleTypeMaxZ_
Definition: Histos.h:343
std::map< unsigned int, float > mapExtraDModuleTypeMinZ_
Definition: Histos.h:354
std::map< unsigned int, float > mapModuleTypeMinZ_
Definition: Histos.h:337
virtual void plotTrackletSeedEfficiency()
Definition: Histos.h:92

◆ fill()

virtual void tmtt::Histos::fill ( const InputData inputData,
const Array2D< std::unique_ptr< Sector >> &  mSectors,
const Array2D< std::unique_ptr< HTrphi >> &  mHtPhis,
const Array2D< std::unique_ptr< Make3Dtracks >> &  mGet3Dtrks,
const std::map< std::string, std::list< const L1fittedTrack *>> &  mapFinalTracks 
)
virtual

◆ fillEtaPhiSectors()

void Histos::fillEtaPhiSectors ( const InputData inputData,
const Array2D< std::unique_ptr< Sector >> &  mSectors 
)
protectedvirtual

Definition at line 386 of file Histos.cc.

References hisNumEtaSecsPerStub_, hisNumPhiSecsPerStub_, hisNumStubsPerSec_, mutex, numEtaRegions_, numPhiSectors_, nano_mu_digi_cff::sector, and tmtt::InputData::stubsConst().

386  {
387  // Allow only one thread to run this function at a time
388  static std::mutex myMutex;
389  std::lock_guard<std::mutex> myGuard(myMutex);
390 
391  const list<const Stub*>& vStubs = inputData.stubsConst();
392  //const list<TP>& vTPs = inputData.getTPs();
393 
394  //=== Loop over all stubs, counting how many sectors each one appears in.
395 
396  for (const Stub* stub : vStubs) {
397  // Number of (eta,phi), phi & eta sectors containing this stub.
398  unsigned int nEtaSecs = 0;
399  unsigned int nPhiSecs = 0;
400 
401  // Loop over (eta, phi) sectors.
402  for (unsigned int iPhiSec = 0; iPhiSec < numPhiSectors_; iPhiSec++) {
403  for (unsigned int iEtaReg = 0; iEtaReg < numEtaRegions_; iEtaReg++) {
404  const Sector* sector = mSectors(iPhiSec, iEtaReg).get();
405 
406  // Check if sector contains stub stub, and if so count it.
407  // Take care to just use one eta (phi) typical region when counting phi (eta) sectors.
408  if (iPhiSec == 0 && sector->insideEta(stub))
409  nEtaSecs++;
410  if (iEtaReg == 0 && sector->insidePhi(stub))
411  nPhiSecs++;
412  }
413  }
414 
415  // Plot number of sectors each stub appears in.
416  hisNumEtaSecsPerStub_->Fill(nEtaSecs);
417  hisNumPhiSecsPerStub_->Fill(nPhiSecs);
418  }
419 
420  //=== Loop over all sectors, counting the stubs in each one.
421  for (unsigned int iEtaReg = 0; iEtaReg < numEtaRegions_; iEtaReg++) {
422  for (unsigned int iPhiSec = 0; iPhiSec < numPhiSectors_; iPhiSec++) {
423  const Sector* sector = mSectors(iPhiSec, iEtaReg).get();
424 
425  unsigned int nStubs = 0;
426  for (const Stub* stub : vStubs) {
427  if (sector->inside(stub))
428  nStubs++;
429  }
430  hisNumStubsPerSec_->Fill(nStubs);
431  }
432  }
433  }
unsigned int numEtaRegions_
Definition: Histos.h:119
static std::mutex mutex
Definition: Proxy.cc:8
unsigned int numPhiSectors_
Definition: Histos.h:118
TH1F * hisNumPhiSecsPerStub_
Definition: Histos.h:149
TH1F * hisNumStubsPerSec_
Definition: Histos.h:150
TH1F * hisNumEtaSecsPerStub_
Definition: Histos.h:148

◆ fillInputData()

void Histos::fillInputData ( const InputData inputData)
protectedvirtual

Definition at line 164 of file Histos.cc.

References funct::abs(), tmtt::InputData::allStubs(), tmtt::Utility::countLayers(), tmtt::InputData::getTPs(), hisBendResStub_, hisBendStub_, hisNumLayersPerTP_, hisNumPSLayersPerTP_, hisStubIneffiVsEta_, hisStubIneffiVsInvPt_, hisStubKillFE_, hisStubsVsEta_, hisStubsVsR_, hisTPd0ForAlgEff_, hisTPd0ForEff_, hisTPetaForAlgEff_, hisTPetaForEff_, hisTPinvptForAlgEff_, hisTPinvptForEff_, hisTPphiForAlgEff_, hisTPphiForEff_, hisTPz0ForAlgEff_, hisTPz0ForEff_, mapBarrelLayerMaxR_, mapBarrelLayerMinR_, mapEndcapWheelMaxZ_, mapEndcapWheelMinZ_, mapExtraAModuleTypeMaxR_, mapExtraAModuleTypeMaxZ_, mapExtraAModuleTypeMinR_, mapExtraAModuleTypeMinZ_, mapExtraBModuleTypeMaxR_, mapExtraBModuleTypeMaxZ_, mapExtraBModuleTypeMinR_, mapExtraBModuleTypeMinZ_, mapExtraCModuleTypeMaxR_, mapExtraCModuleTypeMaxZ_, mapExtraCModuleTypeMinR_, mapExtraCModuleTypeMinZ_, mapExtraDModuleTypeMaxR_, mapExtraDModuleTypeMaxZ_, mapExtraDModuleTypeMinR_, mapExtraDModuleTypeMinZ_, mapModuleTypeMaxR_, mapModuleTypeMaxZ_, mapModuleTypeMinR_, mapModuleTypeMinZ_, mutex, alignCSCRings::s, settings_, SimL1Emulator_cff::stubs, tmtt::InputData::stubsConst(), and cmsswSequenceInfo::tp.

164  {
165  // Allow only one thread to run this function at a time
166  static std::mutex myMutex;
167  std::lock_guard<std::mutex> myGuard(myMutex);
168 
169  const list<const Stub*>& vStubs = inputData.stubsConst();
170  const list<TP>& vTPs = inputData.getTPs();
171 
172  for (const Stub* stub : vStubs) {
173  hisStubsVsEta_->Fill(stub->eta());
174  hisStubsVsR_->Fill(stub->r());
175  }
176 
177  // Study efficiency of stubs to pass front-end electronics cuts.
178 
179  const list<Stub>& vAllStubs = inputData.allStubs(); // Get all stubs prior to FE cuts to do this.
180  for (const Stub& s : vAllStubs) {
181  unsigned int layerOrTenPlusRing = s.barrel() ? s.layerId() : 10 + s.trackerModule()->endcapRing();
182  // Fraction of all stubs (good and bad) failing tightened front-end electronics cuts.
183  hisStubKillFE_->Fill(layerOrTenPlusRing, (!s.frontendPass()));
184  }
185 
186  // Study efficiency for good stubs of tightened front end-electronics cuts.
187  for (const TP& tp : vTPs) {
188  if (tp.useForAlgEff()) { // Only bother for stubs that are on TP that we have a chance of reconstructing.
189  const vector<const Stub*>& stubs = tp.assocStubs();
190  for (const Stub* s : stubs) {
191  hisStubIneffiVsInvPt_->Fill(1. / tp.pt(), (!s->frontendPass()));
192  hisStubIneffiVsEta_->Fill(std::abs(tp.eta()), (!s->frontendPass()));
193  }
194  }
195  }
196 
197  // Plot stub bend-derived information.
198  for (const Stub* stub : vStubs) {
199  hisBendStub_->Fill(stub->bend());
200  }
201 
202  // Look at stub resolution.
203  for (const TP& tp : vTPs) {
204  if (tp.useForAlgEff()) {
205  const vector<const Stub*>& assStubs = tp.assocStubs();
206 
207  for (const Stub* stub : assStubs) {
208  hisBendResStub_->Fill(stub->bend() - tp.dphi(stub->r()) / stub->dphiOverBend());
209  }
210 
211  if (std::abs(tp.eta()) < 0.5) {
212  double nLayersOnTP = Utility::countLayers(settings_, assStubs, true, false);
213  double nPSLayersOnTP = Utility::countLayers(settings_, assStubs, true, true);
214  hisNumLayersPerTP_->Fill(nLayersOnTP);
215  hisNumPSLayersPerTP_->Fill(nPSLayersOnTP);
216  }
217  }
218  }
219 
220  // Determine r (z) range of each barrel layer (endcap wheel).
221 
222  for (const Stub* stub : vStubs) {
223  unsigned int layer = stub->layerId();
224  if (stub->barrel()) {
225  // Get range in r of each barrel layer.
226  float r = stub->r();
227  if (mapBarrelLayerMinR_.find(layer) == mapBarrelLayerMinR_.end()) {
230  } else {
231  if (mapBarrelLayerMinR_[layer] > r)
233  if (mapBarrelLayerMaxR_[layer] < r)
235  }
236  } else {
237  layer = layer % 10;
238  // Range in |z| of each endcap wheel.
239  float z = std::abs(stub->z());
240  if (mapEndcapWheelMinZ_.find(layer) == mapEndcapWheelMinZ_.end()) {
243  } else {
244  if (mapEndcapWheelMinZ_[layer] > z)
246  if (mapEndcapWheelMaxZ_[layer] < z)
248  }
249  }
250  }
251 
252  // Determine Range in (r,|z|) of each module type.
253 
254  for (const Stub* stub : vStubs) {
255  float r = stub->r();
256  float z = std::abs(stub->z());
257  unsigned int modType = stub->trackerModule()->moduleTypeID();
258  // Do something ugly, as modules in 1-2nd & 3-4th endcap wheels are different to those in wheel 5 ...
259  // And boundary between flat & tilted modules in barrel layers 1-3 varies in z.
260  if (stub->barrel() && stub->layerId() == 1) { // barrel layer 1
261  if (mapExtraAModuleTypeMinR_.find(modType) == mapExtraAModuleTypeMinR_.end()) {
262  mapExtraAModuleTypeMinR_[modType] = r;
263  mapExtraAModuleTypeMaxR_[modType] = r;
264  mapExtraAModuleTypeMinZ_[modType] = z;
265  mapExtraAModuleTypeMaxZ_[modType] = z;
266  } else {
267  if (mapExtraAModuleTypeMinR_[modType] > r)
268  mapExtraAModuleTypeMinR_[modType] = r;
269  if (mapExtraAModuleTypeMaxR_[modType] < r)
270  mapExtraAModuleTypeMaxR_[modType] = r;
271  if (mapExtraAModuleTypeMinZ_[modType] > z)
272  mapExtraAModuleTypeMinZ_[modType] = z;
273  if (mapExtraAModuleTypeMaxZ_[modType] < z)
274  mapExtraAModuleTypeMaxZ_[modType] = z;
275  }
276  } else if (stub->barrel() && stub->layerId() == 2) { // barrel layer 2
277  if (mapExtraBModuleTypeMinR_.find(modType) == mapExtraBModuleTypeMinR_.end()) {
278  mapExtraBModuleTypeMinR_[modType] = r;
279  mapExtraBModuleTypeMaxR_[modType] = r;
280  mapExtraBModuleTypeMinZ_[modType] = z;
281  mapExtraBModuleTypeMaxZ_[modType] = z;
282  } else {
283  if (mapExtraBModuleTypeMinR_[modType] > r)
284  mapExtraBModuleTypeMinR_[modType] = r;
285  if (mapExtraBModuleTypeMaxR_[modType] < r)
286  mapExtraBModuleTypeMaxR_[modType] = r;
287  if (mapExtraBModuleTypeMinZ_[modType] > z)
288  mapExtraBModuleTypeMinZ_[modType] = z;
289  if (mapExtraBModuleTypeMaxZ_[modType] < z)
290  mapExtraBModuleTypeMaxZ_[modType] = z;
291  }
292  } else if (!stub->barrel() && (stub->layerId() % 10 == 1 || stub->layerId() % 10 == 2)) { // endcap wheel 1-2
293  if (mapExtraCModuleTypeMinR_.find(modType) == mapExtraCModuleTypeMinR_.end()) {
294  mapExtraCModuleTypeMinR_[modType] = r;
295  mapExtraCModuleTypeMaxR_[modType] = r;
296  mapExtraCModuleTypeMinZ_[modType] = z;
297  mapExtraCModuleTypeMaxZ_[modType] = z;
298  } else {
299  if (mapExtraCModuleTypeMinR_[modType] > r)
300  mapExtraCModuleTypeMinR_[modType] = r;
301  if (mapExtraCModuleTypeMaxR_[modType] < r)
302  mapExtraCModuleTypeMaxR_[modType] = r;
303  if (mapExtraCModuleTypeMinZ_[modType] > z)
304  mapExtraCModuleTypeMinZ_[modType] = z;
305  if (mapExtraCModuleTypeMaxZ_[modType] < z)
306  mapExtraCModuleTypeMaxZ_[modType] = z;
307  }
308  } else if (!stub->barrel() && (stub->layerId() % 10 == 3 || stub->layerId() % 10 == 4)) { // endcap wheel 3-4
309  if (mapExtraDModuleTypeMinR_.find(modType) == mapExtraDModuleTypeMinR_.end()) {
310  mapExtraDModuleTypeMinR_[modType] = r;
311  mapExtraDModuleTypeMaxR_[modType] = r;
312  mapExtraDModuleTypeMinZ_[modType] = z;
313  mapExtraDModuleTypeMaxZ_[modType] = z;
314  } else {
315  if (mapExtraDModuleTypeMinR_[modType] > r)
316  mapExtraDModuleTypeMinR_[modType] = r;
317  if (mapExtraDModuleTypeMaxR_[modType] < r)
318  mapExtraDModuleTypeMaxR_[modType] = r;
319  if (mapExtraDModuleTypeMinZ_[modType] > z)
320  mapExtraDModuleTypeMinZ_[modType] = z;
321  if (mapExtraDModuleTypeMaxZ_[modType] < z)
322  mapExtraDModuleTypeMaxZ_[modType] = z;
323  }
324  } else { // barrel layer 3-6 or endcap wheel 5.
325  if (mapModuleTypeMinR_.find(modType) == mapModuleTypeMinR_.end()) {
326  mapModuleTypeMinR_[modType] = r;
327  mapModuleTypeMaxR_[modType] = r;
328  mapModuleTypeMinZ_[modType] = z;
329  mapModuleTypeMaxZ_[modType] = z;
330  } else {
331  if (mapModuleTypeMinR_[modType] > r)
332  mapModuleTypeMinR_[modType] = r;
333  if (mapModuleTypeMaxR_[modType] < r)
334  mapModuleTypeMaxR_[modType] = r;
335  if (mapModuleTypeMinZ_[modType] > z)
336  mapModuleTypeMinZ_[modType] = z;
337  if (mapModuleTypeMaxZ_[modType] < z)
338  mapModuleTypeMaxZ_[modType] = z;
339  }
340  }
341  }
342 
343  //=== Make denominator of tracking efficiency plots
344 
345  for (const TP& tp : vTPs) {
346  if (tp.useForEff()) { // Check TP is good for efficiency measurement.
347  // Plot kinematics of all good TP.
348  hisTPinvptForEff_->Fill(1. / tp.pt());
349  hisTPetaForEff_->Fill(tp.eta());
350  hisTPphiForEff_->Fill(tp.phi0());
351  // Plot also production point of all good TP.
352  hisTPd0ForEff_->Fill(std::abs(tp.d0()));
353  hisTPz0ForEff_->Fill(std::abs(tp.z0()));
354 
355  if (tp.useForAlgEff()) { // Check TP is good for algorithmic efficiency measurement.
356  hisTPinvptForAlgEff_->Fill(1. / tp.pt());
357  hisTPetaForAlgEff_->Fill(tp.eta());
358  hisTPphiForAlgEff_->Fill(tp.phi0());
359  // Plot also production point of all good TP.
360  hisTPd0ForAlgEff_->Fill(std::abs(tp.d0()));
361  hisTPz0ForAlgEff_->Fill(std::abs(tp.z0()));
362  }
363  }
364  }
365  }
std::map< unsigned int, float > mapExtraDModuleTypeMinR_
Definition: Histos.h:352
TH1F * hisTPd0ForAlgEff_
Definition: Histos.h:190
TH1F * hisTPphiForAlgEff_
Definition: Histos.h:189
std::map< unsigned int, float > mapModuleTypeMinR_
Definition: Histos.h:335
std::map< unsigned int, float > mapExtraCModuleTypeMinZ_
Definition: Histos.h:350
TH1F * hisNumLayersPerTP_
Definition: Histos.h:135
static std::mutex mutex
Definition: Proxy.cc:8
std::map< unsigned int, float > mapExtraAModuleTypeMinZ_
Definition: Histos.h:342
std::map< unsigned int, float > mapEndcapWheelMaxZ_
Definition: Histos.h:332
TH1F * hisTPetaForEff_
Definition: Histos.h:182
TH1F * hisTPz0ForAlgEff_
Definition: Histos.h:191
const Settings * settings_
Definition: Histos.h:116
TProfile * hisStubIneffiVsInvPt_
Definition: Histos.h:139
TProfile * hisStubKillFE_
Definition: Histos.h:138
std::map< unsigned int, float > mapExtraCModuleTypeMaxR_
Definition: Histos.h:349
std::map< unsigned int, float > mapExtraBModuleTypeMinR_
Definition: Histos.h:344
std::map< unsigned int, float > mapModuleTypeMaxZ_
Definition: Histos.h:338
std::map< unsigned int, float > mapExtraAModuleTypeMaxR_
Definition: Histos.h:341
TProfile * hisStubIneffiVsEta_
Definition: Histos.h:140
TH1F * hisTPetaForAlgEff_
Definition: Histos.h:188
std::map< unsigned int, float > mapBarrelLayerMinR_
Definition: Histos.h:328
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::map< unsigned int, float > mapExtraBModuleTypeMinZ_
Definition: Histos.h:346
TH1F * hisTPd0ForEff_
Definition: Histos.h:184
TH1F * hisTPinvptForAlgEff_
Definition: Histos.h:187
std::map< unsigned int, float > mapExtraBModuleTypeMaxR_
Definition: Histos.h:345
std::map< unsigned int, float > mapExtraAModuleTypeMinR_
Definition: Histos.h:340
std::map< unsigned int, float > mapModuleTypeMaxR_
Definition: Histos.h:336
std::map< unsigned int, float > mapExtraDModuleTypeMaxR_
Definition: Histos.h:353
std::map< unsigned int, float > mapBarrelLayerMaxR_
Definition: Histos.h:329
std::map< unsigned int, float > mapExtraBModuleTypeMaxZ_
Definition: Histos.h:347
TH1F * hisTPz0ForEff_
Definition: Histos.h:185
TH1F * hisTPphiForEff_
Definition: Histos.h:183
TH1F * hisBendResStub_
Definition: Histos.h:142
std::map< unsigned int, float > mapExtraDModuleTypeMaxZ_
Definition: Histos.h:355
TH1F * hisTPinvptForEff_
Definition: Histos.h:181
std::map< unsigned int, float > mapEndcapWheelMinZ_
Definition: Histos.h:331
std::map< unsigned int, float > mapExtraCModuleTypeMinR_
Definition: Histos.h:348
TH1F * hisNumPSLayersPerTP_
Definition: Histos.h:136
std::map< unsigned int, float > mapExtraCModuleTypeMaxZ_
Definition: Histos.h:351
TH1F * hisStubsVsEta_
Definition: Histos.h:132
std::map< unsigned int, float > mapExtraAModuleTypeMaxZ_
Definition: Histos.h:343
TH1F * hisStubsVsR_
Definition: Histos.h:133
unsigned int countLayers(const Settings *settings, const std::vector< const Stub *> &stubs, bool disableReducedLayerID=false, bool onlyPS=false)
Definition: Utility.cc:25
std::map< unsigned int, float > mapExtraDModuleTypeMinZ_
Definition: Histos.h:354
std::map< unsigned int, float > mapModuleTypeMinZ_
Definition: Histos.h:337
TH1F * hisBendStub_
Definition: Histos.h:141

◆ fillRphiHT()

void Histos::fillRphiHT ( const Array2D< std::unique_ptr< HTrphi >> &  mHtRphis)
protectedvirtual

Definition at line 445 of file Histos.cc.

445  {
446  //--- Loop over (eta,phi) sectors, counting the number of stubs in the HT array of each.
447 
448  // Allow only one thread to run this function at a time (UNCOMMENT IF YOU ADD HISTOS HERE)
449  //static std::mutex myMutex;
450  //std::lock_guard<std::mutex> myGuard(myMutex);
451  }

◆ fillRZfilters()

void Histos::fillRZfilters ( const Array2D< std::unique_ptr< Make3Dtracks >> &  mMake3Dtrks)
protectedvirtual

Definition at line 463 of file Histos.cc.

463  {
464  // Allow only one thread to run this function at a time (UNCOMMENT IF YOU ADD HISTOS HERE)
465  //static std::mutex myMutex;
466  //std::lock_guard<std::mutex> myGuard(myMutex);
467  }

◆ fillTrackCands() [1/2]

virtual void tmtt::Histos::fillTrackCands ( const InputData inputData,
const Array2D< std::unique_ptr< Make3Dtracks >> &  mMake3Dtrks,
const std::string &  tName 
)
protectedvirtual

◆ fillTrackCands() [2/2]

virtual void tmtt::Histos::fillTrackCands ( const InputData inputData,
const std::vector< L1track3D > &  tracks,
const std::string &  tName 
)
protectedvirtual

◆ fillTrackFitting()

void Histos::fillTrackFitting ( const InputData inputData,
const std::map< std::string, std::list< const L1fittedTrack *>> &  mapFinalTracks 
)
protectedvirtual

Definition at line 1029 of file Histos.cc.

References funct::abs(), reco::deltaPhi(), tmtt::InputData::getTPs(), hisD0ResVsTrueEta_, hisD0ResVsTrueInvPt_, hisEtaResVsTrueEta_, hisEtaResVsTrueInvPt_, hisFitChi2DofRphiMatched_, hisFitChi2DofRphiUnmatched_, hisFitChi2DofRzMatched_, hisFitChi2DofRzUnmatched_, hisFitD0Matched_, hisFitD0Unmatched_, hisFitEtaMatched_, hisFitEtaUnmatched_, hisFitPhi0Matched_, hisFitPhi0Unmatched_, hisFitQinvPtMatched_, hisFitQinvPtUnmatched_, hisFitTPd0ForAlgEff_, hisFitTPd0ForEff_, hisFitTPetaForAlgEff_, hisFitTPetaForEff_, hisFitTPinvptForAlgEff_, hisFitTPinvptForEff_, hisFitTPphiForAlgEff_, hisFitTPphiForEff_, hisFitTPz0ForAlgEff_, hisFitTPz0ForEff_, hisFitZ0Matched_, hisFitZ0Unmatched_, hisKalmanChi2DofSkipLay0Matched_, hisKalmanChi2DofSkipLay0Unmatched_, hisKalmanChi2DofSkipLay1Matched_, hisKalmanChi2DofSkipLay1Unmatched_, hisKalmanChi2DofSkipLay2Matched_, hisKalmanChi2DofSkipLay2Unmatched_, hisKalmanNumUpdateCalls_, hisNumFitTrks_, hisNumFitTrksPerNon_, hisPerfFitTPetaForAlgEff_, hisPerfFitTPetaForEff_, hisPerfFitTPinvptForAlgEff_, hisPerfFitTPinvptForEff_, hisPhi0ResVsTrueEta_, hisPhi0ResVsTrueInvPt_, hisQoverPtResVsTrueEta_, hisQoverPtResVsTrueInvPt_, hisStubsPerFitTrack_, hisZ0ResVsTrueEta_, hisZ0ResVsTrueInvPt_, mutex, EgammaValidation_cff::num, tmtt::Settings::numPhiNonants(), numPhiSectors_, profDupFitTrksVsEta_, profDupFitTrksVsInvPt_, profFitChi2DofRphiVsInvPtMatched_, profFitChi2DofRphiVsInvPtUnmatched_, profNumFitTracks_, profStubsOnFitTracks_, resPlotOpt_, settings_, cmsswSequenceInfo::tp, and trackFitters_.

1030  {
1031  // Allow only one thread to run this function at a time
1032  static std::mutex myMutex;
1033  std::lock_guard<std::mutex> myGuard(myMutex);
1034 
1035  const list<TP>& vTPs = inputData.getTPs();
1036 
1037  // Loop over all the fitting algorithms we are trying.
1038  for (const string& fitName : trackFitters_) {
1039  const list<const L1fittedTrack*>& fittedTracks = mapFinalTracks.at(fitName); // Get fitted tracks.
1040 
1041  // Count tracks
1042  unsigned int nFitTracks = 0;
1043  unsigned int nFitsMatchingTP = 0;
1044 
1045  const unsigned int numPhiNonants = settings_->numPhiNonants();
1046  vector<unsigned int> nFitTracksPerNonant(numPhiNonants, 0);
1047 
1048  for (const L1fittedTrack* fitTrk : fittedTracks) {
1049  nFitTracks++;
1050 
1051  // Get matched truth particle, if any.
1052  const TP* tp = fitTrk->matchedTP();
1053  if (tp != nullptr)
1054  nFitsMatchingTP++;
1055  // Count fitted tracks per nonant.
1056  unsigned int iNonant = (numPhiSectors_ > 0) ? floor(fitTrk->iPhiSec() * numPhiNonants / (numPhiSectors_))
1057  : 0; // phi nonant number
1058  nFitTracksPerNonant[iNonant]++;
1059  }
1060 
1061  profNumFitTracks_[fitName]->Fill(1, nFitTracks);
1062  profNumFitTracks_[fitName]->Fill(2, nFitsMatchingTP);
1063 
1064  hisNumFitTrks_[fitName]->Fill(nFitTracks);
1065  for (const unsigned int& num : nFitTracksPerNonant) {
1066  hisNumFitTrksPerNon_[fitName]->Fill(num);
1067  }
1068 
1069  // Count stubs assigned to fitted tracks.
1070  unsigned int nTotStubs = 0;
1071  for (const L1fittedTrack* fitTrk : fittedTracks) {
1072  unsigned int nStubs = fitTrk->numStubs();
1073  hisStubsPerFitTrack_[fitName]->Fill(nStubs);
1074  nTotStubs += nStubs;
1075  }
1076  profStubsOnFitTracks_[fitName]->Fill(1., nTotStubs);
1077 
1078  // Note truth particles that are successfully fitted. And which give rise to duplicate tracks.
1079 
1080  map<const TP*, bool> tpRecoedMap; // Note which truth particles were successfully fitted.
1081  map<const TP*, bool>
1082  tpPerfRecoedMap; // Note which truth particles were successfully fitted with no incorrect hits.
1083  map<const TP*, unsigned int> tpRecoedDup; // Note that this TP gave rise to duplicate tracks.
1084  for (const TP& tp : vTPs) {
1085  tpRecoedMap[&tp] = false;
1086  tpPerfRecoedMap[&tp] = false;
1087  unsigned int nMatch = 0;
1088  for (const L1fittedTrack* fitTrk : fittedTracks) {
1089  const TP* assocTP = fitTrk->matchedTP(); // Get the TP the fitted track matches to, if any.
1090  if (assocTP == &tp) {
1091  tpRecoedMap[&tp] = true;
1092  if (fitTrk->purity() == 1.)
1093  tpPerfRecoedMap[&tp] = true;
1094  nMatch++;
1095  }
1096  }
1097  tpRecoedDup[&tp] = nMatch;
1098  }
1099 
1100  // Count truth particles that are successfully fitted.
1101 
1102  unsigned int nFittedTPs = 0;
1103  unsigned int nFittedTPsForEff = 0;
1104  for (const TP& tp : vTPs) {
1105  if (tpRecoedMap[&tp]) { // Was this truth particle successfully fitted?
1106  nFittedTPs++;
1107  if (tp.useForEff())
1108  nFittedTPsForEff++;
1109  }
1110  }
1111 
1112  profNumFitTracks_[fitName]->Fill(6, nFittedTPs);
1113  profNumFitTracks_[fitName]->Fill(7, nFittedTPsForEff);
1114 
1115  // Loop over fitted tracks again.
1116 
1117  for (const L1fittedTrack* fitTrk : fittedTracks) {
1118  // Info for specific track fit algorithms.
1119  unsigned int nSkippedLayers = 0;
1120  unsigned int numUpdateCalls = 0;
1121  if (fitName.find("KF") != string::npos) {
1122  fitTrk->infoKF(nSkippedLayers, numUpdateCalls);
1123  hisKalmanNumUpdateCalls_[fitName]->Fill(numUpdateCalls);
1124  }
1125 
1126  //--- Compare fitted tracks that match truth particles to those that don't.
1127 
1128  // Get matched truth particle, if any.
1129  const TP* tp = fitTrk->matchedTP();
1130 
1131  if (tp != nullptr) {
1132  hisFitQinvPtMatched_[fitName]->Fill(fitTrk->qOverPt());
1133  hisFitPhi0Matched_[fitName]->Fill(fitTrk->phi0());
1134  hisFitD0Matched_[fitName]->Fill(fitTrk->d0());
1135  hisFitZ0Matched_[fitName]->Fill(fitTrk->z0());
1136  hisFitEtaMatched_[fitName]->Fill(fitTrk->eta());
1137 
1138  // Only plot matched chi2 for tracks with no incorrect stubs.
1139  if (fitTrk->purity() == 1.) {
1140  hisFitChi2DofRphiMatched_[fitName]->Fill(fitTrk->chi2rphi() / fitTrk->numDOFrphi());
1141  hisFitChi2DofRzMatched_[fitName]->Fill(fitTrk->chi2rz() / fitTrk->numDOFrz());
1142  profFitChi2DofRphiVsInvPtMatched_[fitName]->Fill(std::abs(fitTrk->qOverPt()),
1143  (fitTrk->chi2rphi() / fitTrk->numDOFrphi()));
1144 
1145  if (fitName.find("KF") != string::npos) {
1146  // No. of skipped layers on track during Kalman track fit.
1147  if (nSkippedLayers == 0) {
1148  hisKalmanChi2DofSkipLay0Matched_[fitName]->Fill(fitTrk->chi2dof());
1149  } else if (nSkippedLayers == 1) {
1150  hisKalmanChi2DofSkipLay1Matched_[fitName]->Fill(fitTrk->chi2dof());
1151  } else if (nSkippedLayers >= 2) {
1152  hisKalmanChi2DofSkipLay2Matched_[fitName]->Fill(fitTrk->chi2dof());
1153  }
1154  }
1155  }
1156 
1157  } else {
1158  hisFitQinvPtUnmatched_[fitName]->Fill(fitTrk->qOverPt());
1159  hisFitPhi0Unmatched_[fitName]->Fill(fitTrk->phi0());
1160  hisFitD0Unmatched_[fitName]->Fill(fitTrk->d0());
1161  hisFitZ0Unmatched_[fitName]->Fill(fitTrk->z0());
1162  hisFitEtaUnmatched_[fitName]->Fill(fitTrk->eta());
1163 
1164  hisFitChi2DofRphiUnmatched_[fitName]->Fill(fitTrk->chi2rphi() / fitTrk->numDOFrphi());
1165  hisFitChi2DofRzUnmatched_[fitName]->Fill(fitTrk->chi2rz() / fitTrk->numDOFrz());
1166  profFitChi2DofRphiVsInvPtUnmatched_[fitName]->Fill(std::abs(fitTrk->qOverPt()),
1167  (fitTrk->chi2rphi() / fitTrk->numDOFrphi()));
1168 
1169  if (fitName.find("KF") != string::npos) {
1170  // No. of skipped layers on track during Kalman track fit.
1171  if (nSkippedLayers == 0) {
1172  hisKalmanChi2DofSkipLay0Unmatched_[fitName]->Fill(fitTrk->chi2dof());
1173  } else if (nSkippedLayers == 1) {
1174  hisKalmanChi2DofSkipLay1Unmatched_[fitName]->Fill(fitTrk->chi2dof());
1175  } else if (nSkippedLayers >= 2) {
1176  hisKalmanChi2DofSkipLay2Unmatched_[fitName]->Fill(fitTrk->chi2dof());
1177  }
1178  }
1179  }
1180  }
1181 
1182  // Study helix param resolution.
1183 
1184  for (const L1fittedTrack* fitTrk : fittedTracks) {
1185  const TP* tp = fitTrk->matchedTP();
1186  if (tp != nullptr) {
1187  // IRT
1188  if ((resPlotOpt_ && tp->useForAlgEff()) ||
1189  (not resPlotOpt_)) { // Check TP is good for efficiency measurement (& also comes from signal event if requested)
1190 
1191  // Plot helix parameter resolution against eta or Pt.
1192  hisQoverPtResVsTrueEta_[fitName]->Fill(std::abs(tp->eta()), std::abs(fitTrk->qOverPt() - tp->qOverPt()));
1193  hisPhi0ResVsTrueEta_[fitName]->Fill(std::abs(tp->eta()),
1194  std::abs(reco::deltaPhi(fitTrk->phi0(), tp->phi0())));
1195  hisEtaResVsTrueEta_[fitName]->Fill(std::abs(tp->eta()), std::abs(fitTrk->eta() - tp->eta()));
1196  hisZ0ResVsTrueEta_[fitName]->Fill(std::abs(tp->eta()), std::abs(fitTrk->z0() - tp->z0()));
1197  hisD0ResVsTrueEta_[fitName]->Fill(std::abs(tp->eta()), std::abs(fitTrk->d0() - tp->d0()));
1198 
1199  hisQoverPtResVsTrueInvPt_[fitName]->Fill(std::abs(tp->qOverPt()),
1200  std::abs(fitTrk->qOverPt() - tp->qOverPt()));
1201  hisPhi0ResVsTrueInvPt_[fitName]->Fill(std::abs(tp->qOverPt()),
1202  std::abs(reco::deltaPhi(fitTrk->phi0(), tp->phi0())));
1203  hisEtaResVsTrueInvPt_[fitName]->Fill(std::abs(tp->qOverPt()), std::abs(fitTrk->eta() - tp->eta()));
1204  hisZ0ResVsTrueInvPt_[fitName]->Fill(std::abs(tp->qOverPt()), std::abs(fitTrk->z0() - tp->z0()));
1205  hisD0ResVsTrueInvPt_[fitName]->Fill(std::abs(tp->qOverPt()), std::abs(fitTrk->d0() - tp->d0()));
1206  }
1207  }
1208  }
1209 
1210  //=== Study duplicate tracks.
1211 
1212  for (const TP& tp : vTPs) {
1213  if (tpRecoedMap[&tp]) { // Was this truth particle successfully fitted?
1214  profDupFitTrksVsEta_[fitName]->Fill(std::abs(tp.eta()), tpRecoedDup[&tp] - 1);
1215  profDupFitTrksVsInvPt_[fitName]->Fill(std::abs(tp.qOverPt()), tpRecoedDup[&tp] - 1);
1216  }
1217  }
1218 
1219  //=== Study tracking efficiency by looping over tracking particles.
1220 
1221  for (const TP& tp : vTPs) {
1222  if (tp.useForEff()) { // Check TP is good for efficiency measurement.
1223 
1224  // If TP was reconstucted by HT, then plot its kinematics.
1225  if (tpRecoedMap[&tp]) { // This truth particle was successfully fitted.
1226  hisFitTPinvptForEff_[fitName]->Fill(1. / tp.pt());
1227  hisFitTPetaForEff_[fitName]->Fill(tp.eta());
1228  hisFitTPphiForEff_[fitName]->Fill(tp.phi0());
1229  // Plot also production point of all good reconstructed TP.
1230  hisFitTPd0ForEff_[fitName]->Fill(std::abs(tp.d0()));
1231  hisFitTPz0ForEff_[fitName]->Fill(std::abs(tp.z0()));
1232  // Also plot efficiency to perfectly reconstruct the track (no fake hits)
1233  if (tpPerfRecoedMap[&tp]) { // This truth particle was successfully fitted with no incorrect hits.
1234  hisPerfFitTPinvptForEff_[fitName]->Fill(1. / tp.pt());
1235  hisPerfFitTPetaForEff_[fitName]->Fill(tp.eta());
1236  }
1237  if (tp.useForAlgEff()) { // Check TP is good for algorithmic efficiency measurement.
1238  hisFitTPinvptForAlgEff_[fitName]->Fill(1. / tp.pt());
1239  hisFitTPetaForAlgEff_[fitName]->Fill(tp.eta());
1240  hisFitTPphiForAlgEff_[fitName]->Fill(tp.phi0());
1241  // Plot also production point of all good reconstructed TP.
1242  hisFitTPd0ForAlgEff_[fitName]->Fill(std::abs(tp.d0()));
1243  hisFitTPz0ForAlgEff_[fitName]->Fill(std::abs(tp.z0()));
1244  // Also plot efficiency to perfectly reconstruct the track (no fake hits)
1245  if (tpPerfRecoedMap[&tp]) {
1246  hisPerfFitTPinvptForAlgEff_[fitName]->Fill(1. / tp.pt());
1247  hisPerfFitTPetaForAlgEff_[fitName]->Fill(tp.eta());
1248  }
1249  }
1250  }
1251  }
1252  }
1253  }
1254  }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
std::map< std::string, TH1F * > hisFitZ0Matched_
Definition: Histos.h:224
std::map< std::string, TProfile * > hisEtaResVsTrueInvPt_
Definition: Histos.h:257
unsigned int numPhiNonants() const
Definition: Settings.h:109
std::map< std::string, TH1F * > hisFitZ0Unmatched_
Definition: Histos.h:230
std::map< std::string, TH1F * > hisFitChi2DofRphiMatched_
Definition: Histos.h:241
std::map< std::string, TH1F * > hisFitEtaUnmatched_
Definition: Histos.h:231
std::map< std::string, TH1F * > hisFitD0Unmatched_
Definition: Histos.h:229
static std::mutex mutex
Definition: Proxy.cc:8
std::map< std::string, TProfile * > profFitChi2DofRphiVsInvPtMatched_
Definition: Histos.h:243
std::map< std::string, TProfile * > hisQoverPtResVsTrueInvPt_
Definition: Histos.h:255
std::map< std::string, TH1F * > hisKalmanNumUpdateCalls_
Definition: Histos.h:233
std::map< std::string, TH1F * > hisFitEtaMatched_
Definition: Histos.h:225
std::map< std::string, TH1F * > hisFitTPphiForAlgEff_
Definition: Histos.h:274
std::map< std::string, TH1F * > hisPerfFitTPinvptForAlgEff_
Definition: Histos.h:277
std::map< std::string, TProfile * > hisD0ResVsTrueInvPt_
Definition: Histos.h:259
std::map< std::string, TProfile * > profNumFitTracks_
Definition: Histos.h:214
const Settings * settings_
Definition: Histos.h:116
std::map< std::string, TH1F * > hisNumFitTrksPerNon_
Definition: Histos.h:216
bool resPlotOpt_
Definition: Histos.h:127
std::map< std::string, TProfile * > hisEtaResVsTrueEta_
Definition: Histos.h:251
std::vector< std::string > trackFitters_
Definition: Histos.h:124
std::map< std::string, TProfile * > profDupFitTrksVsEta_
Definition: Histos.h:261
unsigned int numPhiSectors_
Definition: Histos.h:118
std::map< std::string, TProfile * > hisZ0ResVsTrueInvPt_
Definition: Histos.h:258
std::map< std::string, TH1F * > hisPerfFitTPetaForEff_
Definition: Histos.h:271
std::map< std::string, TH1F * > hisFitTPetaForAlgEff_
Definition: Histos.h:273
std::map< std::string, TProfile * > hisD0ResVsTrueEta_
Definition: Histos.h:253
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay0Unmatched_
Definition: Histos.h:237
std::map< std::string, TH1F * > hisFitTPz0ForEff_
Definition: Histos.h:269
std::map< std::string, TH1F * > hisFitQinvPtMatched_
Definition: Histos.h:221
std::map< std::string, TProfile * > profStubsOnFitTracks_
Definition: Histos.h:219
std::map< std::string, TH1F * > hisFitTPphiForEff_
Definition: Histos.h:267
std::map< std::string, TH1F * > hisFitTPd0ForEff_
Definition: Histos.h:268
std::map< std::string, TH1F * > hisFitPhi0Matched_
Definition: Histos.h:222
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay1Matched_
Definition: Histos.h:235
std::map< std::string, TH1F * > hisFitD0Matched_
Definition: Histos.h:223
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay1Unmatched_
Definition: Histos.h:238
std::map< std::string, TProfile * > hisPhi0ResVsTrueInvPt_
Definition: Histos.h:256
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay2Unmatched_
Definition: Histos.h:239
std::map< std::string, TProfile * > hisPhi0ResVsTrueEta_
Definition: Histos.h:250
std::map< std::string, TH1F * > hisFitTPetaForEff_
Definition: Histos.h:266
std::map< std::string, TProfile * > profDupFitTrksVsInvPt_
Definition: Histos.h:262
std::map< std::string, TH1F * > hisPerfFitTPetaForAlgEff_
Definition: Histos.h:278
std::map< std::string, TH1F * > hisFitTPinvptForEff_
Definition: Histos.h:265
std::map< std::string, TH1F * > hisFitChi2DofRphiUnmatched_
Definition: Histos.h:245
std::map< std::string, TProfile * > hisQoverPtResVsTrueEta_
Definition: Histos.h:249
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay0Matched_
Definition: Histos.h:234
std::map< std::string, TH1F * > hisFitChi2DofRzMatched_
Definition: Histos.h:242
std::map< std::string, TH1F * > hisFitPhi0Unmatched_
Definition: Histos.h:228
std::map< std::string, TH1F * > hisFitTPinvptForAlgEff_
Definition: Histos.h:272
std::map< std::string, TProfile * > hisZ0ResVsTrueEta_
Definition: Histos.h:252
std::map< std::string, TH1F * > hisPerfFitTPinvptForEff_
Definition: Histos.h:270
std::map< std::string, TH1F * > hisFitTPd0ForAlgEff_
Definition: Histos.h:275
std::map< std::string, TH1F * > hisFitChi2DofRzUnmatched_
Definition: Histos.h:246
std::map< std::string, TProfile * > profFitChi2DofRphiVsInvPtUnmatched_
Definition: Histos.h:247
std::map< std::string, TH1F * > hisFitQinvPtUnmatched_
Definition: Histos.h:227
std::map< std::string, TH1F * > hisStubsPerFitTrack_
Definition: Histos.h:218
std::map< std::string, TH1F * > hisFitTPz0ForAlgEff_
Definition: Histos.h:276
std::map< std::string, TH1F * > hisNumFitTrks_
Definition: Histos.h:215
std::map< std::string, TH1F * > hisKalmanChi2DofSkipLay2Matched_
Definition: Histos.h:236

◆ makeEfficiencyPlot()

void Histos::makeEfficiencyPlot ( TFileDirectory inputDir,
TEfficiency *  outputEfficiency,
TH1F *  pass,
TH1F *  all,
TString  name,
TString  title 
)
protectedvirtual

Definition at line 1464 of file Histos.cc.

References python.cmstools::all(), TFileDirectory::make(), Skims_PA_cff::name, and runGCPTkAlMap::title.

Referenced by plotTrackEffAfterFit(), and plotTrackEfficiency().

1465  {
1466  outputEfficiency = inputDir.make<TEfficiency>(*pass, *all);
1467  outputEfficiency->SetName(name);
1468  outputEfficiency->SetTitle(title);
1469  }
def all(container)
workaround iterator generators for ROOT classes
Definition: cmstools.py:25
T * make(const Args &...args) const
make new ROOT object

◆ plotHybridDupRemovalEfficiency()

virtual void tmtt::Histos::plotHybridDupRemovalEfficiency ( )
inlineprotectedvirtual

Definition at line 94 of file Histos.h.

Referenced by endJobAnalysis().

94 {};

◆ plotTrackEffAfterFit()

TFileDirectory Histos::plotTrackEffAfterFit ( const std::string &  fitName)
protectedvirtual

Definition at line 1363 of file Histos.cc.

References fs_, hisFitTPd0ForAlgEff_, hisFitTPd0ForEff_, hisFitTPetaForAlgEff_, hisFitTPetaForEff_, hisFitTPinvptForAlgEff_, hisFitTPinvptForEff_, hisFitTPphiForAlgEff_, hisFitTPphiForEff_, hisFitTPz0ForAlgEff_, hisFitTPz0ForEff_, hisPerfFitTPetaForAlgEff_, hisPerfFitTPetaForEff_, hisPerfFitTPinvptForAlgEff_, hisPerfFitTPinvptForEff_, hisTPd0ForAlgEff_, hisTPd0ForEff_, hisTPetaForAlgEff_, hisTPetaForEff_, hisTPinvptForAlgEff_, hisTPinvptForEff_, hisTPphiForAlgEff_, hisTPphiForEff_, hisTPz0ForAlgEff_, hisTPz0ForEff_, makeEfficiencyPlot(), TFileService::mkdir(), alignCSCRings::s, teffAlgEffFitVsD0_, teffAlgEffFitVsEta_, teffAlgEffFitVsInvPt_, teffAlgEffFitVsPhi_, teffAlgEffFitVsZ0_, teffEffFitVsD0_, teffEffFitVsEta_, teffEffFitVsInvPt_, teffEffFitVsPhi_, teffEffFitVsZ0_, teffPerfAlgEffFitVsEta_, teffPerfAlgEffFitVsInvPt_, teffPerfEffFitVsEta_, and teffPerfEffFitVsInvPt_.

Referenced by endJobAnalysis().

1363  {
1364  // Define lambda function to facilitate adding "fitName" to directory & histogram names.
1365  auto addn = [fitName](const string& s) { return TString::Format("%s_%s", s.c_str(), fitName.c_str()); };
1366 
1367  TFileDirectory inputDir = fs_->mkdir(addn("Effi").Data());
1368  // Plot tracking efficiency
1369  makeEfficiencyPlot(inputDir,
1370  teffEffFitVsInvPt_[fitName],
1371  hisFitTPinvptForEff_[fitName],
1373  addn("EffFitVsInvPt"),
1374  "; 1/Pt; Tracking efficiency");
1375  makeEfficiencyPlot(inputDir,
1376  teffEffFitVsEta_[fitName],
1377  hisFitTPetaForEff_[fitName],
1379  addn("EffFitVsEta"),
1380  "; #eta; Tracking efficiency");
1381  makeEfficiencyPlot(inputDir,
1382  teffEffFitVsPhi_[fitName],
1383  hisFitTPphiForEff_[fitName],
1385  addn("EffFitVsPhi"),
1386  "; #phi; Tracking efficiency");
1387 
1388  makeEfficiencyPlot(inputDir,
1389  teffEffFitVsD0_[fitName],
1390  hisFitTPd0ForEff_[fitName],
1392  addn("EffFitVsD0"),
1393  "; d0 (cm); Tracking efficiency");
1394  makeEfficiencyPlot(inputDir,
1395  teffEffFitVsZ0_[fitName],
1396  hisFitTPz0ForEff_[fitName],
1398  addn("EffFitVsZ0"),
1399  "; z0 (cm); Tracking efficiency");
1400 
1401  // Also plot efficiency to reconstruct track perfectly.
1402  makeEfficiencyPlot(inputDir,
1403  teffPerfEffFitVsInvPt_[fitName],
1404  hisPerfFitTPinvptForEff_[fitName],
1406  addn("PerfEffFitVsInvPt"),
1407  "; 1/Pt; Tracking perfect efficiency");
1408  makeEfficiencyPlot(inputDir,
1409  teffPerfEffFitVsEta_[fitName],
1410  hisPerfFitTPetaForEff_[fitName],
1412  addn("PerfEffFitVsEta"),
1413  "; #eta; Tracking perfect efficiency");
1414 
1415  // Plot algorithmic tracking efficiency
1416  makeEfficiencyPlot(inputDir,
1417  teffAlgEffFitVsInvPt_[fitName],
1418  hisFitTPinvptForAlgEff_[fitName],
1420  addn("AlgEffFitVsInvPt"),
1421  "; 1/Pt; Tracking efficiency");
1422  makeEfficiencyPlot(inputDir,
1423  teffAlgEffFitVsEta_[fitName],
1424  hisFitTPetaForAlgEff_[fitName],
1426  addn("AlgEffFitVsEta"),
1427  "; #eta; Tracking efficiency");
1428  makeEfficiencyPlot(inputDir,
1429  teffAlgEffFitVsPhi_[fitName],
1430  hisFitTPphiForAlgEff_[fitName],
1432  addn("AlgEffFitVsPhi"),
1433  "; #phi; Tracking efficiency");
1434 
1435  makeEfficiencyPlot(inputDir,
1436  teffAlgEffFitVsD0_[fitName],
1437  hisFitTPd0ForAlgEff_[fitName],
1439  addn("AlgEffFitVsD0"),
1440  "; d0 (cm); Tracking efficiency");
1441  makeEfficiencyPlot(inputDir,
1442  teffAlgEffFitVsZ0_[fitName],
1443  hisFitTPz0ForAlgEff_[fitName],
1445  addn("AlgEffFitVsZ0"),
1446  "; z0 (cm); Tracking efficiency");
1447 
1448  // Also plot algorithmic efficiency to reconstruct track perfectly.
1449  makeEfficiencyPlot(inputDir,
1450  teffPerfAlgEffFitVsInvPt_[fitName],
1451  hisPerfFitTPinvptForAlgEff_[fitName],
1453  addn("PerfAlgEffFitVsInvPt"),
1454  "; 1/Pt; Tracking perfect efficiency");
1455  makeEfficiencyPlot(inputDir,
1456  teffPerfAlgEffFitVsEta_[fitName],
1457  hisPerfFitTPetaForAlgEff_[fitName],
1459  addn("Perf AlgEffFitVsEta"),
1460  "; #eta; Tracking perfect efficiency");
1461  return inputDir;
1462  }
std::map< std::string, TEfficiency * > teffEffFitVsInvPt_
Definition: Histos.h:301
TH1F * hisTPd0ForAlgEff_
Definition: Histos.h:190
TH1F * hisTPphiForAlgEff_
Definition: Histos.h:189
std::map< std::string, TEfficiency * > teffAlgEffFitVsInvPt_
Definition: Histos.h:310
std::map< std::string, TEfficiency * > teffAlgEffFitVsPhi_
Definition: Histos.h:312
std::map< std::string, TEfficiency * > teffEffFitVsPhi_
Definition: Histos.h:303
std::map< std::string, TEfficiency * > teffEffFitVsZ0_
Definition: Histos.h:305
virtual void makeEfficiencyPlot(TFileDirectory &inputDir, TEfficiency *outputEfficiency, TH1F *pass, TH1F *all, TString name, TString title)
Definition: Histos.cc:1464
std::map< std::string, TEfficiency * > teffPerfEffFitVsInvPt_
Definition: Histos.h:307
std::map< std::string, TH1F * > hisFitTPphiForAlgEff_
Definition: Histos.h:274
TH1F * hisTPetaForEff_
Definition: Histos.h:182
TH1F * hisTPz0ForAlgEff_
Definition: Histos.h:191
std::map< std::string, TH1F * > hisPerfFitTPinvptForAlgEff_
Definition: Histos.h:277
std::map< std::string, TEfficiency * > teffEffFitVsEta_
Definition: Histos.h:302
std::map< std::string, TEfficiency * > teffAlgEffFitVsZ0_
Definition: Histos.h:314
std::map< std::string, TH1F * > hisPerfFitTPetaForEff_
Definition: Histos.h:271
std::map< std::string, TH1F * > hisFitTPetaForAlgEff_
Definition: Histos.h:273
TH1F * hisTPetaForAlgEff_
Definition: Histos.h:188
std::map< std::string, TH1F * > hisFitTPz0ForEff_
Definition: Histos.h:269
std::map< std::string, TEfficiency * > teffPerfEffFitVsEta_
Definition: Histos.h:308
std::map< std::string, TH1F * > hisFitTPphiForEff_
Definition: Histos.h:267
std::map< std::string, TH1F * > hisFitTPd0ForEff_
Definition: Histos.h:268
edm::Service< TFileService > fs_
Definition: Histos.h:110
TH1F * hisTPd0ForEff_
Definition: Histos.h:184
TH1F * hisTPinvptForAlgEff_
Definition: Histos.h:187
std::map< std::string, TH1F * > hisFitTPetaForEff_
Definition: Histos.h:266
std::map< std::string, TEfficiency * > teffPerfAlgEffFitVsInvPt_
Definition: Histos.h:316
std::map< std::string, TH1F * > hisPerfFitTPetaForAlgEff_
Definition: Histos.h:278
std::map< std::string, TH1F * > hisFitTPinvptForEff_
Definition: Histos.h:265
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
std::map< std::string, TEfficiency * > teffAlgEffFitVsD0_
Definition: Histos.h:313
TH1F * hisTPz0ForEff_
Definition: Histos.h:185
TH1F * hisTPphiForEff_
Definition: Histos.h:183
std::map< std::string, TEfficiency * > teffEffFitVsD0_
Definition: Histos.h:304
std::map< std::string, TH1F * > hisFitTPinvptForAlgEff_
Definition: Histos.h:272
std::map< std::string, TH1F * > hisPerfFitTPinvptForEff_
Definition: Histos.h:270
TH1F * hisTPinvptForEff_
Definition: Histos.h:181
std::map< std::string, TEfficiency * > teffAlgEffFitVsEta_
Definition: Histos.h:311
std::map< std::string, TH1F * > hisFitTPd0ForAlgEff_
Definition: Histos.h:275
std::map< std::string, TEfficiency * > teffPerfAlgEffFitVsEta_
Definition: Histos.h:317
std::map< std::string, TH1F * > hisFitTPz0ForAlgEff_
Definition: Histos.h:276

◆ plotTrackEfficiency()

TFileDirectory Histos::plotTrackEfficiency ( const std::string &  tName)
protectedvirtual

Definition at line 1258 of file Histos.cc.

References fs_, hisPerfRecoTPetaForAlgEff_, hisPerfRecoTPetaForEff_, hisPerfRecoTPinvptForAlgEff_, hisPerfRecoTPinvptForEff_, hisRecoTPd0ForAlgEff_, hisRecoTPd0ForEff_, hisRecoTPetaForAlgEff_, hisRecoTPetaForEff_, hisRecoTPinvptForAlgEff_, hisRecoTPinvptForEff_, hisRecoTPphiForAlgEff_, hisRecoTPphiForEff_, hisRecoTPz0ForAlgEff_, hisRecoTPz0ForEff_, hisTPd0ForAlgEff_, hisTPd0ForEff_, hisTPetaForAlgEff_, hisTPetaForEff_, hisTPinvptForAlgEff_, hisTPinvptForEff_, hisTPphiForAlgEff_, hisTPphiForEff_, hisTPz0ForAlgEff_, hisTPz0ForEff_, makeEfficiencyPlot(), TFileService::mkdir(), alignCSCRings::s, teffAlgEffVsD0_, teffAlgEffVsEta_, teffAlgEffVsInvPt_, teffAlgEffVsPhi_, teffAlgEffVsZ0_, teffEffVsD0_, teffEffVsEta_, teffEffVsInvPt_, teffEffVsPhi_, teffEffVsZ0_, teffPerfAlgEffVsEta_, teffPerfAlgEffVsInvPt_, teffPerfEffVsEta_, teffPerfEffVsInvPt_, and simpleEdmComparison::tName.

Referenced by endJobAnalysis().

1258  {
1259  // Define lambda function to facilitate adding "tName" to directory & histogram names.
1260  auto addn = [tName](const string& s) { return TString::Format("%s_%s", s.c_str(), tName.c_str()); };
1261 
1262  TFileDirectory inputDir = fs_->mkdir(addn("Effi").Data());
1263  // Plot tracking efficiency
1264  makeEfficiencyPlot(inputDir,
1268  addn("EffVsInvPt"),
1269  "; 1/Pt; Tracking efficiency");
1270  makeEfficiencyPlot(inputDir,
1274  addn("EffVsEta"),
1275  "; #eta; Tracking efficiency");
1276 
1277  makeEfficiencyPlot(inputDir,
1281  addn("EffVsPhi"),
1282  "; #phi; Tracking efficiency");
1283 
1284  makeEfficiencyPlot(inputDir,
1288  addn("EffVsD0"),
1289  "; d0 (cm); Tracking efficiency");
1290  makeEfficiencyPlot(inputDir,
1294  addn("EffVsZ0"),
1295  "; z0 (cm); Tracking efficiency");
1296 
1297  // Also plot efficiency to reconstruct track perfectly.
1298  makeEfficiencyPlot(inputDir,
1302  addn("PerfEffVsInvPt"),
1303  "; 1/Pt; Tracking perfect efficiency");
1304  makeEfficiencyPlot(inputDir,
1308  addn("PerfEffVsEta"),
1309  "; #eta; Tracking perfect efficiency");
1310 
1311  // Plot algorithmic tracking efficiency
1312  makeEfficiencyPlot(inputDir,
1316  addn("AlgEffVsInvPt"),
1317  "; 1/Pt; Tracking efficiency");
1318  makeEfficiencyPlot(inputDir,
1322  addn("AlgEffVsEta"),
1323  "; #eta; Tracking efficiency");
1324  makeEfficiencyPlot(inputDir,
1328  addn("AlgEffVsPhi"),
1329  "; #phi; Tracking efficiency");
1330 
1331  makeEfficiencyPlot(inputDir,
1335  addn("AlgEffVsD0"),
1336  "; d0 (cm); Tracking efficiency");
1337  makeEfficiencyPlot(inputDir,
1341  addn("AlgEffVsZ0"),
1342  "; z0 (cm); Tracking efficiency");
1343 
1344  // Also plot algorithmic efficiency to reconstruct track perfectly.
1345  makeEfficiencyPlot(inputDir,
1349  addn("PerfAlgEffVsInvPt"),
1350  "; 1/Pt; Tracking perfect efficiency");
1351  makeEfficiencyPlot(inputDir,
1355  addn("PerfAlgEffVsEta"),
1356  "; #eta; Tracking perfect efficiency");
1357 
1358  return inputDir;
1359  }
TH1F * hisTPd0ForAlgEff_
Definition: Histos.h:190
TH1F * hisTPphiForAlgEff_
Definition: Histos.h:189
std::map< std::string, TH1F * > hisPerfRecoTPetaForAlgEff_
Definition: Histos.h:210
std::map< std::string, TEfficiency * > teffEffVsInvPt_
Definition: Histos.h:281
std::map< std::string, TH1F * > hisRecoTPz0ForEff_
Definition: Histos.h:198
std::map< std::string, TH1F * > hisRecoTPd0ForAlgEff_
Definition: Histos.h:206
virtual void makeEfficiencyPlot(TFileDirectory &inputDir, TEfficiency *outputEfficiency, TH1F *pass, TH1F *all, TString name, TString title)
Definition: Histos.cc:1464
std::map< std::string, TH1F * > hisRecoTPz0ForAlgEff_
Definition: Histos.h:207
std::map< std::string, TH1F * > hisRecoTPphiForEff_
Definition: Histos.h:196
std::map< std::string, TH1F * > hisRecoTPphiForAlgEff_
Definition: Histos.h:205
TH1F * hisTPetaForEff_
Definition: Histos.h:182
TH1F * hisTPz0ForAlgEff_
Definition: Histos.h:191
std::map< std::string, TH1F * > hisPerfRecoTPetaForEff_
Definition: Histos.h:201
std::map< std::string, TH1F * > hisRecoTPetaForAlgEff_
Definition: Histos.h:204
std::map< std::string, TEfficiency * > teffAlgEffVsInvPt_
Definition: Histos.h:292
std::map< std::string, TEfficiency * > teffPerfEffVsInvPt_
Definition: Histos.h:287
std::map< std::string, TH1F * > hisRecoTPd0ForEff_
Definition: Histos.h:197
std::map< std::string, TH1F * > hisPerfRecoTPinvptForAlgEff_
Definition: Histos.h:209
TH1F * hisTPetaForAlgEff_
Definition: Histos.h:188
std::map< std::string, TEfficiency * > teffPerfAlgEffVsEta_
Definition: Histos.h:298
std::map< std::string, TEfficiency * > teffPerfAlgEffVsInvPt_
Definition: Histos.h:296
edm::Service< TFileService > fs_
Definition: Histos.h:110
std::map< std::string, TEfficiency * > teffAlgEffVsPhi_
Definition: Histos.h:294
std::map< std::string, TEfficiency * > teffPerfEffVsEta_
Definition: Histos.h:288
TH1F * hisTPd0ForEff_
Definition: Histos.h:184
std::map< std::string, TEfficiency * > teffAlgEffVsZ0_
Definition: Histos.h:290
TH1F * hisTPinvptForAlgEff_
Definition: Histos.h:187
std::map< std::string, TEfficiency * > teffEffVsEta_
Definition: Histos.h:282
std::map< std::string, TH1F * > hisRecoTPinvptForAlgEff_
Definition: Histos.h:203
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
std::map< std::string, TH1F * > hisRecoTPinvptForEff_
Definition: Histos.h:194
TH1F * hisTPz0ForEff_
Definition: Histos.h:185
TH1F * hisTPphiForEff_
Definition: Histos.h:183
TH1F * hisTPinvptForEff_
Definition: Histos.h:181
std::map< std::string, TEfficiency * > teffAlgEffVsD0_
Definition: Histos.h:289
std::map< std::string, TEfficiency * > teffEffVsPhi_
Definition: Histos.h:283
std::map< std::string, TH1F * > hisRecoTPetaForEff_
Definition: Histos.h:195
std::map< std::string, TEfficiency * > teffEffVsD0_
Definition: Histos.h:284
std::map< std::string, TH1F * > hisPerfRecoTPinvptForEff_
Definition: Histos.h:200
std::map< std::string, TEfficiency * > teffAlgEffVsEta_
Definition: Histos.h:293
std::map< std::string, TEfficiency * > teffEffVsZ0_
Definition: Histos.h:285

◆ plotTrackletSeedEfficiency()

virtual void tmtt::Histos::plotTrackletSeedEfficiency ( )
inlineprotectedvirtual

Definition at line 92 of file Histos.h.

Referenced by endJobAnalysis().

92 {};

◆ printFitTrackPerformance()

void Histos::printFitTrackPerformance ( const std::string &  fitName)
protectedvirtual

Definition at line 1519 of file Histos.cc.

References submitPVResolutionJobs::count, MillePedeFileConverter_cfg::e, nano_mu_digi_cff::float, hisFitTPinvptForAlgEff_, hisPerfFitTPinvptForAlgEff_, hisTPinvptForAlgEff_, profNumFitTracks_, profStubsOnFitTracks_, tmtt::Settings::rzFilterName(), settings_, mathSSE::sqrt(), and useRZfilter_.

Referenced by endJobAnalysis().

1519  {
1520  float numFitTracks = profNumFitTracks_[fitName]->GetBinContent(1); // No. of track cands
1521  float numFitTracksErr = profNumFitTracks_[fitName]->GetBinError(1); // No. of track cands uncertainty
1522  float numMatchedFitTracksIncDups =
1523  profNumFitTracks_[fitName]->GetBinContent(2); // Ditto, counting only those matched to TP
1524  float numMatchedFitTracksExcDups = profNumFitTracks_[fitName]->GetBinContent(6); // Ditto, but excluding duplicates
1525  float numFakeFitTracks = numFitTracks - numMatchedFitTracksIncDups;
1526  float numExtraDupFitTracks = numMatchedFitTracksIncDups - numMatchedFitTracksExcDups;
1527  float fracFakeFit = numFakeFitTracks / (numFitTracks + 1.0e-6);
1528  float fracDupFit = numExtraDupFitTracks / (numFitTracks + 1.0e-6);
1529 
1530  float numStubsOnFitTracks = profStubsOnFitTracks_[fitName]->GetBinContent(1);
1531  float meanStubsPerFitTrack =
1532  numStubsOnFitTracks / (numFitTracks + 1.0e-6); //protection against demoninator equals zero.
1533  unsigned int numFitTPforAlg = hisFitTPinvptForAlgEff_[fitName]->GetEntries();
1534  // Histograms of input truth particles (e.g. hisTPinvptForAlgEff_), used for denominator of efficiencies, are identical,
1535  // irrespective of whether made after HT or after r-z track filter, so always use the former.
1536  unsigned int numTPforAlg = hisTPinvptForAlgEff_->GetEntries();
1537  unsigned int numPerfFitTPforAlg = hisPerfFitTPinvptForAlgEff_[fitName]->GetEntries();
1538  float fitEff = float(numFitTPforAlg) / (numTPforAlg + 1.0e-6); //protection against demoninator equals zero.
1539  float fitEffErr = sqrt(fitEff * (1 - fitEff) / (numTPforAlg + 1.0e-6)); // uncertainty
1540  float fitPerfEff =
1541  float(numPerfFitTPforAlg) / (numTPforAlg + 1.0e-6); //protection against demoninator equals zero.
1542  float fitPerfEffErr = sqrt(fitPerfEff * (1 - fitPerfEff) / (numTPforAlg + 1.0e-6)); // uncertainty
1543 
1544  // Does this fitter require r-z track filter to be run before it?
1545  bool useRZfilt = (std::count(useRZfilter_.begin(), useRZfilter_.end(), fitName) > 0);
1546 
1547  PrintL1trk() << "=========================================================================";
1548  PrintL1trk() << " TRACK FIT SUMMARY FOR: " << fitName;
1549  PrintL1trk() << "Number of fitted track candidates found per event = " << numFitTracks << " +- " << numFitTracksErr;
1550  PrintL1trk() << " with mean stubs/track = " << meanStubsPerFitTrack;
1551  PrintL1trk() << "Fraction of fitted tracks that are fake = " << fracFakeFit;
1552  PrintL1trk() << "Fraction of fitted tracks that are genuine, but extra duplicates = " << fracDupFit;
1553  PrintL1trk() << "Algorithmic fitting efficiency = " << numFitTPforAlg << "/" << numTPforAlg << " = " << fitEff
1554  << " +- " << fitEffErr;
1555  PrintL1trk() << "Perfect algorithmic fitting efficiency = " << numPerfFitTPforAlg << "/" << numTPforAlg << " = "
1556  << fitPerfEff << " +- " << fitPerfEffErr << " (no incorrect hits)";
1557  if (useRZfilt)
1558  PrintL1trk() << "(The above fitter used the '" << settings_->rzFilterName() << "' r-z track filter.)";
1559  }
const std::string & rzFilterName() const
Definition: Settings.h:196
std::map< std::string, TH1F * > hisPerfFitTPinvptForAlgEff_
Definition: Histos.h:277
std::map< std::string, TProfile * > profNumFitTracks_
Definition: Histos.h:214
const Settings * settings_
Definition: Histos.h:116
std::map< std::string, TProfile * > profStubsOnFitTracks_
Definition: Histos.h:219
T sqrt(T t)
Definition: SSEVec.h:23
TH1F * hisTPinvptForAlgEff_
Definition: Histos.h:187
std::map< std::string, TH1F * > hisFitTPinvptForAlgEff_
Definition: Histos.h:272
std::vector< std::string > useRZfilter_
Definition: Histos.h:125

◆ printHybridDupRemovalPerformance()

virtual void tmtt::Histos::printHybridDupRemovalPerformance ( )
inlineprotectedvirtual

Definition at line 110 of file Histos.h.

Referenced by endJobAnalysis().

110 {};

◆ printTrackletSeedFindingPerformance()

virtual void tmtt::Histos::printTrackletSeedFindingPerformance ( )
inlineprotectedvirtual

Definition at line 107 of file Histos.h.

Referenced by endJobAnalysis().

107 {};

◆ printTrackPerformance()

void Histos::printTrackPerformance ( const std::string &  tName)
protectedvirtual

Definition at line 1473 of file Histos.cc.

References MillePedeFileConverter_cfg::e, alignBH_cfg::fixed, nano_mu_digi_cff::float, hisPerfRecoTPinvptForAlgEff_, hisRecoTPinvptForAlgEff_, hisTPinvptForAlgEff_, profNumTrackCands_, profStubsOnTracks_, mathSSE::sqrt(), and simpleEdmComparison::tName.

Referenced by endJobAnalysis().

1473  {
1474  float numTrackCands = profNumTrackCands_[tName]->GetBinContent(1); // No. of track cands
1475  float numTrackCandsErr = profNumTrackCands_[tName]->GetBinError(1); // No. of track cands uncertainty
1476  float numMatchedTrackCandsIncDups =
1477  profNumTrackCands_[tName]->GetBinContent(2); // Ditto, counting only those matched to TP
1478  float numMatchedTrackCandsExcDups = profNumTrackCands_[tName]->GetBinContent(6); // Ditto, but excluding duplicates
1479  float numFakeTracks = numTrackCands - numMatchedTrackCandsIncDups;
1480  float numExtraDupTracks = numMatchedTrackCandsIncDups - numMatchedTrackCandsExcDups;
1481  float fracFake = numFakeTracks / (numTrackCands + 1.0e-6);
1482  float fracDup = numExtraDupTracks / (numTrackCands + 1.0e-6);
1483 
1484  float numStubsOnTracks = profStubsOnTracks_[tName]->GetBinContent(1);
1485  float meanStubsPerTrack =
1486  numStubsOnTracks / (numTrackCands + 1.0e-6); //protection against demoninator equals zero.
1487  unsigned int numRecoTPforAlg = hisRecoTPinvptForAlgEff_[tName]->GetEntries();
1488  // Histograms of input truth particles (e.g. hisTPinvptForAlgEff_), used for denominator of efficiencies, are identical,
1489  // irrespective of whether made after HT or after r-z track filter, so always use the former.
1490  unsigned int numTPforAlg = hisTPinvptForAlgEff_->GetEntries();
1491  unsigned int numPerfRecoTPforAlg = hisPerfRecoTPinvptForAlgEff_[tName]->GetEntries();
1492  float algEff = float(numRecoTPforAlg) / (numTPforAlg + 1.0e-6); //protection against demoninator equals zero.
1493  float algEffErr = sqrt(algEff * (1 - algEff) / (numTPforAlg + 1.0e-6)); // uncertainty
1494  float algPerfEff =
1495  float(numPerfRecoTPforAlg) / (numTPforAlg + 1.0e-6); //protection against demoninator equals zero.
1496  float algPerfEffErr = sqrt(algPerfEff * (1 - algPerfEff) / (numTPforAlg + 1.0e-6)); // uncertainty
1497 
1498  PrintL1trk() << "=========================================================================";
1499  if (tName == "HT") {
1500  PrintL1trk() << " TRACK-FINDING SUMMARY AFTER HOUGH TRANSFORM ";
1501  } else if (tName == "RZ") {
1502  PrintL1trk() << " TRACK-FINDING SUMMARY AFTER R-Z TRACK FILTER ";
1503  } else if (tName == "TRACKLET") {
1504  PrintL1trk() << " TRACK-FINDING SUMMARY AFTER TRACKLET PATTERN RECO ";
1505  }
1506  PrintL1trk() << "Number of track candidates found per event = " << numTrackCands << " +- " << numTrackCandsErr;
1507  PrintL1trk() << " with mean stubs/track = " << meanStubsPerTrack;
1508  PrintL1trk() << "Fraction of track cands that are fake = " << fracFake;
1509  PrintL1trk() << "Fraction of track cands that are genuine, but extra duplicates = " << fracDup;
1510 
1511  PrintL1trk() << std::fixed << std::setprecision(4) << "Algorithmic tracking efficiency = " << numRecoTPforAlg << "/"
1512  << numTPforAlg << " = " << algEff << " +- " << algEffErr;
1513  PrintL1trk() << "Perfect algorithmic tracking efficiency = " << numPerfRecoTPforAlg << "/" << numTPforAlg << " = "
1514  << algPerfEff << " +- " << algPerfEffErr << " (no incorrect hits)";
1515  }
std::map< std::string, TProfile * > profStubsOnTracks_
Definition: Histos.h:157
std::map< std::string, TH1F * > hisPerfRecoTPinvptForAlgEff_
Definition: Histos.h:209
T sqrt(T t)
Definition: SSEVec.h:23
std::map< std::string, TProfile * > profNumTrackCands_
Definition: Histos.h:153
TH1F * hisTPinvptForAlgEff_
Definition: Histos.h:187
std::map< std::string, TH1F * > hisRecoTPinvptForAlgEff_
Definition: Histos.h:203

◆ trackerGeometryAnalysis()

void Histos::trackerGeometryAnalysis ( const std::list< TrackerModule > &  listTrackerModule)
virtual

Definition at line 1705 of file Histos.cc.

References funct::abs(), tmtt::Settings::bApprox_gradient(), tmtt::Settings::bApprox_intercept(), bApproxMistake_, ALPAKA_ACCELERATOR_NAMESPACE::brokenline::constexpr(), enabled(), fs_, graphBVsZoverR_, mps_fire::i, TFileDirectory::make(), TFileService::mkdir(), HLTSiStripMonitoring_cff::nSigma, AlCaHLTBitMon_ParallelJobs::p, settings_, and tmtt::Settings::useApproxB().

Referenced by tmtt::TMTrackProducer::globalEndJob().

1705  {
1706  // Don't bother producing summary if user didn't request histograms via TFileService in their cfg.
1707  if (not this->enabled())
1708  return;
1709 
1710  map<float, float> dataForGraph;
1711  for (const TrackerModule& trackerModule : listTrackerModule) {
1712  if (trackerModule.tiltedBarrel()) {
1713  float paramB = trackerModule.paramB();
1714  float zOverR = std::abs(trackerModule.minZ()) / trackerModule.minR();
1715  dataForGraph[paramB] = zOverR; // Only store each unique paramB once, to get better histo weights.
1716  }
1717  }
1718 
1719  const int nEntries = dataForGraph.size();
1720  vector<float> vecParamB(nEntries);
1721  vector<float> vecZoverR(nEntries);
1722  unsigned int i = 0;
1723  for (const auto& p : dataForGraph) {
1724  vecParamB[i] = p.first;
1725  vecZoverR[i] = p.second;
1726  i++;
1727  }
1728 
1729  PrintL1trk() << "=========================================================================";
1730  PrintL1trk() << "--- Fit to cfg params for FPGA-friendly approximation to B parameter in GP & KF ---";
1731  PrintL1trk() << "--- (used to allowed for tilted barrel modules) ---";
1732 
1733  TFileDirectory inputDir = fs_->mkdir("InputDataB");
1734  graphBVsZoverR_ = inputDir.make<TGraph>(nEntries, &vecZoverR[0], &vecParamB[0]);
1735  graphBVsZoverR_->SetNameTitle("B vs module Z/R", "; Module Z/R; B");
1736  graphBVsZoverR_->Fit("pol1", "q");
1737  TF1* fittedFunction = graphBVsZoverR_->GetFunction("pol1");
1738  double gradient = fittedFunction->GetParameter(1);
1739  double intercept = fittedFunction->GetParameter(0);
1740  double gradient_err = fittedFunction->GetParError(1);
1741  double intercept_err = fittedFunction->GetParError(0);
1742  PrintL1trk() << " BApprox_gradient (fitted) = " << gradient << " +- " << gradient_err;
1743  PrintL1trk() << " BApprox_intercept (fitted) = " << intercept << " +- " << intercept_err;
1744  PrintL1trk() << "=========================================================================";
1745 
1746  // Check fitted params consistent with those assumed in cfg file.
1747  if (settings_->useApproxB()) {
1748  double gradientDiff = std::abs(gradient - settings_->bApprox_gradient());
1749  double interceptDiff = std::abs(intercept - settings_->bApprox_intercept());
1750  constexpr unsigned int nSigma = 5;
1751  if (gradientDiff > nSigma * gradient_err ||
1752  interceptDiff > nSigma * intercept_err) { // Uncertainty independent of number of events
1753  PrintL1trk() << "\n WARNING: fitted parameters inconsistent with those specified in cfg file:";
1754  PrintL1trk() << " BApprox_gradient (cfg) = " << settings_->bApprox_gradient();
1755  PrintL1trk() << " BApprox_intercept (cfg) = " << settings_->bApprox_intercept();
1756  bApproxMistake_ = true; // Note that problem has occurred.
1757  }
1758  }
1759  }
bool bApproxMistake_
Definition: Histos.h:357
virtual bool enabled() const
Definition: Histos.h:60
double bApprox_intercept() const
Definition: Settings.h:105
TGraph * graphBVsZoverR_
Definition: Histos.h:145
const Settings * settings_
Definition: Histos.h:116
bool useApproxB() const
Definition: Settings.h:103
T * make(const Args &...args) const
make new ROOT object
edm::Service< TFileService > fs_
Definition: Histos.h:110
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double bApprox_gradient() const
Definition: Settings.h:104
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69

Member Data Documentation

◆ bApproxMistake_

bool tmtt::Histos::bApproxMistake_
protected

Definition at line 357 of file Histos.h.

Referenced by endJobAnalysis(), and trackerGeometryAnalysis().

◆ chosenRofZ_

float tmtt::Histos::chosenRofZ_
protected

Definition at line 123 of file Histos.h.

Referenced by Histos().

◆ fs_

edm::Service<TFileService> tmtt::Histos::fs_
protected

◆ genMinStubLayers_

unsigned int tmtt::Histos::genMinStubLayers_
protected

Definition at line 117 of file Histos.h.

Referenced by Histos().

◆ graphBVsZoverR_

TGraph* tmtt::Histos::graphBVsZoverR_
protected

Definition at line 145 of file Histos.h.

Referenced by trackerGeometryAnalysis().

◆ hisBendResStub_

TH1F* tmtt::Histos::hisBendResStub_
protected

Definition at line 142 of file Histos.h.

Referenced by bookInputData(), and fillInputData().

◆ hisBendStub_

TH1F* tmtt::Histos::hisBendStub_
protected

Definition at line 141 of file Histos.h.

Referenced by bookInputData(), and fillInputData().

◆ hisD0ResVsTrueEta_

std::map<std::string, TProfile*> tmtt::Histos::hisD0ResVsTrueEta_
protected

Definition at line 253 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisD0ResVsTrueInvPt_

std::map<std::string, TProfile*> tmtt::Histos::hisD0ResVsTrueInvPt_
protected

Definition at line 259 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisEta_

std::map<std::string, TH1F*> tmtt::Histos::hisEta_
protected

Definition at line 171 of file Histos.h.

Referenced by bookTrackCands().

◆ hisEtaRes_

std::map<std::string, TH1F*> tmtt::Histos::hisEtaRes_
protected

Definition at line 177 of file Histos.h.

Referenced by bookTrackCands().

◆ hisEtaResVsTrueEta_

std::map<std::string, TProfile*> tmtt::Histos::hisEtaResVsTrueEta_
protected

Definition at line 251 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisEtaResVsTrueInvPt_

std::map<std::string, TProfile*> tmtt::Histos::hisEtaResVsTrueInvPt_
protected

Definition at line 257 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitChi2DofRphiMatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitChi2DofRphiMatched_
protected

Definition at line 241 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitChi2DofRphiUnmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitChi2DofRphiUnmatched_
protected

Definition at line 245 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitChi2DofRzMatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitChi2DofRzMatched_
protected

Definition at line 242 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitChi2DofRzUnmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitChi2DofRzUnmatched_
protected

Definition at line 246 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitD0Matched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitD0Matched_
protected

Definition at line 223 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitD0Unmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitD0Unmatched_
protected

Definition at line 229 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitEtaMatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitEtaMatched_
protected

Definition at line 225 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitEtaUnmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitEtaUnmatched_
protected

Definition at line 231 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitPhi0Matched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitPhi0Matched_
protected

Definition at line 222 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitPhi0Unmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitPhi0Unmatched_
protected

Definition at line 228 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitQinvPtMatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitQinvPtMatched_
protected

Definition at line 221 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitQinvPtUnmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitQinvPtUnmatched_
protected

Definition at line 227 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitTPd0ForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPd0ForAlgEff_
protected

Definition at line 275 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisFitTPd0ForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPd0ForEff_
protected

Definition at line 268 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisFitTPetaForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPetaForAlgEff_
protected

Definition at line 273 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisFitTPetaForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPetaForEff_
protected

Definition at line 266 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisFitTPinvptForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPinvptForAlgEff_
protected

◆ hisFitTPinvptForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPinvptForEff_
protected

Definition at line 265 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisFitTPphiForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPphiForAlgEff_
protected

Definition at line 274 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisFitTPphiForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPphiForEff_
protected

Definition at line 267 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisFitTPz0ForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPz0ForAlgEff_
protected

Definition at line 276 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisFitTPz0ForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisFitTPz0ForEff_
protected

Definition at line 269 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisFitZ0Matched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitZ0Matched_
protected

Definition at line 224 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFitZ0Unmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisFitZ0Unmatched_
protected

Definition at line 230 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisFracMatchStubsOnTracks_

std::map<std::string, TH1F*> tmtt::Histos::hisFracMatchStubsOnTracks_
protected

Definition at line 164 of file Histos.h.

Referenced by bookTrackCands().

◆ hisKalmanChi2DofSkipLay0Matched_

std::map<std::string, TH1F*> tmtt::Histos::hisKalmanChi2DofSkipLay0Matched_
protected

Definition at line 234 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisKalmanChi2DofSkipLay0Unmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisKalmanChi2DofSkipLay0Unmatched_
protected

Definition at line 237 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisKalmanChi2DofSkipLay1Matched_

std::map<std::string, TH1F*> tmtt::Histos::hisKalmanChi2DofSkipLay1Matched_
protected

Definition at line 235 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisKalmanChi2DofSkipLay1Unmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisKalmanChi2DofSkipLay1Unmatched_
protected

Definition at line 238 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisKalmanChi2DofSkipLay2Matched_

std::map<std::string, TH1F*> tmtt::Histos::hisKalmanChi2DofSkipLay2Matched_
protected

Definition at line 236 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisKalmanChi2DofSkipLay2Unmatched_

std::map<std::string, TH1F*> tmtt::Histos::hisKalmanChi2DofSkipLay2Unmatched_
protected

Definition at line 239 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisKalmanNumUpdateCalls_

std::map<std::string, TH1F*> tmtt::Histos::hisKalmanNumUpdateCalls_
protected

Definition at line 233 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisLayersPerTrack_

std::map<std::string, TH1F*> tmtt::Histos::hisLayersPerTrack_
protected

Definition at line 160 of file Histos.h.

Referenced by bookTrackCands().

◆ hisNumEtaSecsPerStub_

TH1F* tmtt::Histos::hisNumEtaSecsPerStub_
protected

Definition at line 148 of file Histos.h.

Referenced by bookEtaPhiSectors(), and fillEtaPhiSectors().

◆ hisNumFitTrks_

std::map<std::string, TH1F*> tmtt::Histos::hisNumFitTrks_
protected

Definition at line 215 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisNumFitTrksPerNon_

std::map<std::string, TH1F*> tmtt::Histos::hisNumFitTrksPerNon_
protected

Definition at line 216 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisNumFitTrksPerSect_

std::map<std::string, TH1F*> tmtt::Histos::hisNumFitTrksPerSect_
protected

Definition at line 217 of file Histos.h.

◆ hisNumLayersPerTP_

TH1F* tmtt::Histos::hisNumLayersPerTP_
protected

Definition at line 135 of file Histos.h.

Referenced by bookInputData(), and fillInputData().

◆ hisNumPhiSecsPerStub_

TH1F* tmtt::Histos::hisNumPhiSecsPerStub_
protected

Definition at line 149 of file Histos.h.

Referenced by bookEtaPhiSectors(), and fillEtaPhiSectors().

◆ hisNumPSLayersPerTP_

TH1F* tmtt::Histos::hisNumPSLayersPerTP_
protected

Definition at line 136 of file Histos.h.

Referenced by bookInputData(), and fillInputData().

◆ hisNumStubsPerLink_

std::map<std::string, TH1F*> tmtt::Histos::hisNumStubsPerLink_
protected

Definition at line 162 of file Histos.h.

Referenced by bookTrackCands().

◆ hisNumStubsPerSec_

TH1F* tmtt::Histos::hisNumStubsPerSec_
protected

Definition at line 150 of file Histos.h.

Referenced by bookEtaPhiSectors(), and fillEtaPhiSectors().

◆ hisNumTracksVsQoverPt_

std::map<std::string, TH1F*> tmtt::Histos::hisNumTracksVsQoverPt_
protected

Definition at line 155 of file Histos.h.

Referenced by bookTrackCands().

◆ hisNumTrksPerNon_

std::map<std::string, TH1F*> tmtt::Histos::hisNumTrksPerNon_
protected

Definition at line 156 of file Histos.h.

Referenced by bookTrackCands().

◆ hisPerfFitTPetaForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisPerfFitTPetaForAlgEff_
protected

Definition at line 278 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisPerfFitTPetaForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisPerfFitTPetaForEff_
protected

Definition at line 271 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisPerfFitTPinvptForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisPerfFitTPinvptForAlgEff_
protected

◆ hisPerfFitTPinvptForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisPerfFitTPinvptForEff_
protected

Definition at line 270 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and plotTrackEffAfterFit().

◆ hisPerfRecoTPetaForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisPerfRecoTPetaForAlgEff_
protected

Definition at line 210 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisPerfRecoTPetaForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisPerfRecoTPetaForEff_
protected

Definition at line 201 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisPerfRecoTPinvptForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisPerfRecoTPinvptForAlgEff_
protected

Definition at line 209 of file Histos.h.

Referenced by bookTrackCands(), plotTrackEfficiency(), and printTrackPerformance().

◆ hisPerfRecoTPinvptForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisPerfRecoTPinvptForEff_
protected

Definition at line 200 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisPhi0_

std::map<std::string, TH1F*> tmtt::Histos::hisPhi0_
protected

Definition at line 170 of file Histos.h.

Referenced by bookTrackCands().

◆ hisPhi0Res_

std::map<std::string, TH1F*> tmtt::Histos::hisPhi0Res_
protected

Definition at line 176 of file Histos.h.

Referenced by bookTrackCands().

◆ hisPhi0ResVsTrueEta_

std::map<std::string, TProfile*> tmtt::Histos::hisPhi0ResVsTrueEta_
protected

Definition at line 250 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisPhi0ResVsTrueInvPt_

std::map<std::string, TProfile*> tmtt::Histos::hisPhi0ResVsTrueInvPt_
protected

Definition at line 256 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisQoverPt_

std::map<std::string, TH1F*> tmtt::Histos::hisQoverPt_
protected

Definition at line 169 of file Histos.h.

Referenced by bookTrackCands().

◆ hisQoverPtRes_

std::map<std::string, TH1F*> tmtt::Histos::hisQoverPtRes_
protected

Definition at line 175 of file Histos.h.

Referenced by bookTrackCands().

◆ hisQoverPtResVsTrueEta_

std::map<std::string, TProfile*> tmtt::Histos::hisQoverPtResVsTrueEta_
protected

Definition at line 249 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisQoverPtResVsTrueInvPt_

std::map<std::string, TProfile*> tmtt::Histos::hisQoverPtResVsTrueInvPt_
protected

Definition at line 255 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisRecoTPd0ForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPd0ForAlgEff_
protected

Definition at line 206 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisRecoTPd0ForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPd0ForEff_
protected

Definition at line 197 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisRecoTPetaForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPetaForAlgEff_
protected

Definition at line 204 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisRecoTPetaForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPetaForEff_
protected

Definition at line 195 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisRecoTPinvptForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPinvptForAlgEff_
protected

Definition at line 203 of file Histos.h.

Referenced by bookTrackCands(), plotTrackEfficiency(), and printTrackPerformance().

◆ hisRecoTPinvptForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPinvptForEff_
protected

Definition at line 194 of file Histos.h.

Referenced by bookTrackCands(), endJobAnalysis(), and plotTrackEfficiency().

◆ hisRecoTPphiForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPphiForAlgEff_
protected

Definition at line 205 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisRecoTPphiForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPphiForEff_
protected

Definition at line 196 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisRecoTPz0ForAlgEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPz0ForAlgEff_
protected

Definition at line 207 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisRecoTPz0ForEff_

std::map<std::string, TH1F*> tmtt::Histos::hisRecoTPz0ForEff_
protected

Definition at line 198 of file Histos.h.

Referenced by bookTrackCands(), and plotTrackEfficiency().

◆ hisStubIneffiVsEta_

TProfile* tmtt::Histos::hisStubIneffiVsEta_
protected

Definition at line 140 of file Histos.h.

Referenced by bookInputData(), and fillInputData().

◆ hisStubIneffiVsInvPt_

TProfile* tmtt::Histos::hisStubIneffiVsInvPt_
protected

Definition at line 139 of file Histos.h.

Referenced by bookInputData(), and fillInputData().

◆ hisStubKillFE_

TProfile* tmtt::Histos::hisStubKillFE_
protected

Definition at line 138 of file Histos.h.

Referenced by bookInputData(), and fillInputData().

◆ hisStubsOnTracksPerNon_

std::map<std::string, TH1F*> tmtt::Histos::hisStubsOnTracksPerNon_
protected

Definition at line 158 of file Histos.h.

Referenced by bookTrackCands().

◆ hisStubsPerFitTrack_

std::map<std::string, TH1F*> tmtt::Histos::hisStubsPerFitTrack_
protected

Definition at line 218 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisStubsPerTrack_

std::map<std::string, TH1F*> tmtt::Histos::hisStubsPerTrack_
protected

Definition at line 159 of file Histos.h.

Referenced by bookTrackCands().

◆ hisStubsVsEta_

TH1F* tmtt::Histos::hisStubsVsEta_
protected

Definition at line 132 of file Histos.h.

Referenced by bookInputData(), and fillInputData().

◆ hisStubsVsR_

TH1F* tmtt::Histos::hisStubsVsR_
protected

Definition at line 133 of file Histos.h.

Referenced by bookInputData(), and fillInputData().

◆ hisTPd0ForAlgEff_

TH1F* tmtt::Histos::hisTPd0ForAlgEff_
protected

Definition at line 190 of file Histos.h.

Referenced by bookInputData(), fillInputData(), plotTrackEffAfterFit(), and plotTrackEfficiency().

◆ hisTPd0ForEff_

TH1F* tmtt::Histos::hisTPd0ForEff_
protected

Definition at line 184 of file Histos.h.

Referenced by bookInputData(), fillInputData(), plotTrackEffAfterFit(), and plotTrackEfficiency().

◆ hisTPetaForAlgEff_

TH1F* tmtt::Histos::hisTPetaForAlgEff_
protected

Definition at line 188 of file Histos.h.

Referenced by bookInputData(), fillInputData(), plotTrackEffAfterFit(), and plotTrackEfficiency().

◆ hisTPetaForEff_

TH1F* tmtt::Histos::hisTPetaForEff_
protected

Definition at line 182 of file Histos.h.

Referenced by bookInputData(), fillInputData(), plotTrackEffAfterFit(), and plotTrackEfficiency().

◆ hisTPinvptForAlgEff_

TH1F* tmtt::Histos::hisTPinvptForAlgEff_
protected

◆ hisTPinvptForEff_

TH1F* tmtt::Histos::hisTPinvptForEff_
protected

Definition at line 181 of file Histos.h.

Referenced by bookInputData(), fillInputData(), plotTrackEffAfterFit(), and plotTrackEfficiency().

◆ hisTPphiForAlgEff_

TH1F* tmtt::Histos::hisTPphiForAlgEff_
protected

Definition at line 189 of file Histos.h.

Referenced by bookInputData(), fillInputData(), plotTrackEffAfterFit(), and plotTrackEfficiency().

◆ hisTPphiForEff_

TH1F* tmtt::Histos::hisTPphiForEff_
protected

Definition at line 183 of file Histos.h.

Referenced by bookInputData(), fillInputData(), plotTrackEffAfterFit(), and plotTrackEfficiency().

◆ hisTPz0ForAlgEff_

TH1F* tmtt::Histos::hisTPz0ForAlgEff_
protected

Definition at line 191 of file Histos.h.

Referenced by bookInputData(), fillInputData(), plotTrackEffAfterFit(), and plotTrackEfficiency().

◆ hisTPz0ForEff_

TH1F* tmtt::Histos::hisTPz0ForEff_
protected

Definition at line 185 of file Histos.h.

Referenced by bookInputData(), fillInputData(), plotTrackEffAfterFit(), and plotTrackEfficiency().

◆ hisZ0_

std::map<std::string, TH1F*> tmtt::Histos::hisZ0_
protected

Definition at line 172 of file Histos.h.

Referenced by bookTrackCands().

◆ hisZ0Res_

std::map<std::string, TH1F*> tmtt::Histos::hisZ0Res_
protected

Definition at line 178 of file Histos.h.

Referenced by bookTrackCands().

◆ hisZ0ResVsTrueEta_

std::map<std::string, TProfile*> tmtt::Histos::hisZ0ResVsTrueEta_
protected

Definition at line 252 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ hisZ0ResVsTrueInvPt_

std::map<std::string, TProfile*> tmtt::Histos::hisZ0ResVsTrueInvPt_
protected

Definition at line 258 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ houghMinPt_

float tmtt::Histos::houghMinPt_
protected

Definition at line 120 of file Histos.h.

Referenced by Histos().

◆ houghNbinsPhi_

unsigned int tmtt::Histos::houghNbinsPhi_
protected

Definition at line 122 of file Histos.h.

Referenced by Histos().

◆ houghNbinsPt_

unsigned int tmtt::Histos::houghNbinsPt_
protected

Definition at line 121 of file Histos.h.

Referenced by Histos().

◆ mapBarrelLayerMaxR_

std::map<unsigned int, float> tmtt::Histos::mapBarrelLayerMaxR_
protected

Definition at line 329 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapBarrelLayerMinR_

std::map<unsigned int, float> tmtt::Histos::mapBarrelLayerMinR_
protected

Definition at line 328 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapEndcapWheelMaxZ_

std::map<unsigned int, float> tmtt::Histos::mapEndcapWheelMaxZ_
protected

Definition at line 332 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapEndcapWheelMinZ_

std::map<unsigned int, float> tmtt::Histos::mapEndcapWheelMinZ_
protected

Definition at line 331 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraAModuleTypeMaxR_

std::map<unsigned int, float> tmtt::Histos::mapExtraAModuleTypeMaxR_
protected

Definition at line 341 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraAModuleTypeMaxZ_

std::map<unsigned int, float> tmtt::Histos::mapExtraAModuleTypeMaxZ_
protected

Definition at line 343 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraAModuleTypeMinR_

std::map<unsigned int, float> tmtt::Histos::mapExtraAModuleTypeMinR_
protected

Definition at line 340 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraAModuleTypeMinZ_

std::map<unsigned int, float> tmtt::Histos::mapExtraAModuleTypeMinZ_
protected

Definition at line 342 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraBModuleTypeMaxR_

std::map<unsigned int, float> tmtt::Histos::mapExtraBModuleTypeMaxR_
protected

Definition at line 345 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraBModuleTypeMaxZ_

std::map<unsigned int, float> tmtt::Histos::mapExtraBModuleTypeMaxZ_
protected

Definition at line 347 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraBModuleTypeMinR_

std::map<unsigned int, float> tmtt::Histos::mapExtraBModuleTypeMinR_
protected

Definition at line 344 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraBModuleTypeMinZ_

std::map<unsigned int, float> tmtt::Histos::mapExtraBModuleTypeMinZ_
protected

Definition at line 346 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraCModuleTypeMaxR_

std::map<unsigned int, float> tmtt::Histos::mapExtraCModuleTypeMaxR_
protected

Definition at line 349 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraCModuleTypeMaxZ_

std::map<unsigned int, float> tmtt::Histos::mapExtraCModuleTypeMaxZ_
protected

Definition at line 351 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraCModuleTypeMinR_

std::map<unsigned int, float> tmtt::Histos::mapExtraCModuleTypeMinR_
protected

Definition at line 348 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraCModuleTypeMinZ_

std::map<unsigned int, float> tmtt::Histos::mapExtraCModuleTypeMinZ_
protected

Definition at line 350 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraDModuleTypeMaxR_

std::map<unsigned int, float> tmtt::Histos::mapExtraDModuleTypeMaxR_
protected

Definition at line 353 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraDModuleTypeMaxZ_

std::map<unsigned int, float> tmtt::Histos::mapExtraDModuleTypeMaxZ_
protected

Definition at line 355 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraDModuleTypeMinR_

std::map<unsigned int, float> tmtt::Histos::mapExtraDModuleTypeMinR_
protected

Definition at line 352 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapExtraDModuleTypeMinZ_

std::map<unsigned int, float> tmtt::Histos::mapExtraDModuleTypeMinZ_
protected

Definition at line 354 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapModuleTypeMaxR_

std::map<unsigned int, float> tmtt::Histos::mapModuleTypeMaxR_
protected

Definition at line 336 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapModuleTypeMaxZ_

std::map<unsigned int, float> tmtt::Histos::mapModuleTypeMaxZ_
protected

Definition at line 338 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapModuleTypeMinR_

std::map<unsigned int, float> tmtt::Histos::mapModuleTypeMinR_
protected

Definition at line 335 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ mapModuleTypeMinZ_

std::map<unsigned int, float> tmtt::Histos::mapModuleTypeMinZ_
protected

Definition at line 337 of file Histos.h.

Referenced by endJobAnalysis(), and fillInputData().

◆ numEtaRegions_

unsigned int tmtt::Histos::numEtaRegions_
protected

Definition at line 119 of file Histos.h.

Referenced by bookTrackCands(), fillEtaPhiSectors(), and Histos().

◆ numFitAlgEff_

std::map<std::string, unsigned int> tmtt::Histos::numFitAlgEff_
protected

Definition at line 320 of file Histos.h.

◆ numFitAlgEffPass_

std::map<std::string, unsigned int> tmtt::Histos::numFitAlgEffPass_
protected

Definition at line 324 of file Histos.h.

◆ numFitPerfAlgEff_

std::map<std::string, unsigned int> tmtt::Histos::numFitPerfAlgEff_
protected

Definition at line 321 of file Histos.h.

◆ numFitPerfAlgEffPass_

std::map<std::string, unsigned int> tmtt::Histos::numFitPerfAlgEffPass_
protected

Definition at line 325 of file Histos.h.

◆ numPhiSectors_

unsigned int tmtt::Histos::numPhiSectors_
protected

Definition at line 118 of file Histos.h.

Referenced by fillEtaPhiSectors(), fillTrackFitting(), and Histos().

◆ oldSumW2opt_

bool tmtt::Histos::oldSumW2opt_
protected

Definition at line 129 of file Histos.h.

Referenced by book(), and endJobAnalysis().

◆ printedGeomAnalysis_

bool tmtt::Histos::printedGeomAnalysis_
protected

Definition at line 359 of file Histos.h.

◆ profDupFitTrksVsEta_

std::map<std::string, TProfile*> tmtt::Histos::profDupFitTrksVsEta_
protected

Definition at line 261 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ profDupFitTrksVsInvPt_

std::map<std::string, TProfile*> tmtt::Histos::profDupFitTrksVsInvPt_
protected

Definition at line 262 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ profDupTracksVsEta_

std::map<std::string, TProfile*> tmtt::Histos::profDupTracksVsEta_
protected

Definition at line 165 of file Histos.h.

Referenced by bookTrackCands().

◆ profDupTracksVsInvPt_

std::map<std::string, TProfile*> tmtt::Histos::profDupTracksVsInvPt_
protected

Definition at line 166 of file Histos.h.

Referenced by bookTrackCands().

◆ profFitChi2DofRphiVsInvPtMatched_

std::map<std::string, TProfile*> tmtt::Histos::profFitChi2DofRphiVsInvPtMatched_
protected

Definition at line 243 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ profFitChi2DofRphiVsInvPtUnmatched_

std::map<std::string, TProfile*> tmtt::Histos::profFitChi2DofRphiVsInvPtUnmatched_
protected

Definition at line 247 of file Histos.h.

Referenced by bookTrackFitting(), and fillTrackFitting().

◆ profMeanStubsPerLink_

std::map<std::string, TProfile*> tmtt::Histos::profMeanStubsPerLink_
protected

Definition at line 163 of file Histos.h.

Referenced by bookTrackCands().

◆ profNumFitTracks_

std::map<std::string, TProfile*> tmtt::Histos::profNumFitTracks_
protected

Definition at line 214 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and printFitTrackPerformance().

◆ profNumTrackCands_

std::map<std::string, TProfile*> tmtt::Histos::profNumTrackCands_
protected

Definition at line 153 of file Histos.h.

Referenced by bookTrackCands(), and printTrackPerformance().

◆ profNumTracksVsEta_

std::map<std::string, TProfile*> tmtt::Histos::profNumTracksVsEta_
protected

Definition at line 154 of file Histos.h.

Referenced by bookTrackCands().

◆ profStubsOnFitTracks_

std::map<std::string, TProfile*> tmtt::Histos::profStubsOnFitTracks_
protected

Definition at line 219 of file Histos.h.

Referenced by bookTrackFitting(), fillTrackFitting(), and printFitTrackPerformance().

◆ profStubsOnTracks_

std::map<std::string, TProfile*> tmtt::Histos::profStubsOnTracks_
protected

Definition at line 157 of file Histos.h.

Referenced by bookTrackCands(), and printTrackPerformance().

◆ ranRZfilter_

bool tmtt::Histos::ranRZfilter_
protected

Definition at line 126 of file Histos.h.

Referenced by book(), endJobAnalysis(), and Histos().

◆ resPlotOpt_

bool tmtt::Histos::resPlotOpt_
protected

Definition at line 127 of file Histos.h.

Referenced by fillTrackFitting(), and Histos().

◆ settings_

const Settings* tmtt::Histos::settings_
protected

◆ teffAlgEffFitVsD0_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffFitVsD0_
protected

Definition at line 313 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffAlgEffFitVsEta_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffFitVsEta_
protected

Definition at line 311 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffAlgEffFitVsInvPt_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffFitVsInvPt_
protected

Definition at line 310 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffAlgEffFitVsPhi_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffFitVsPhi_
protected

Definition at line 312 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffAlgEffFitVsZ0_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffFitVsZ0_
protected

Definition at line 314 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffAlgEffVsD0_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffVsD0_
protected

Definition at line 289 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffAlgEffVsEta_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffVsEta_
protected

Definition at line 293 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffAlgEffVsInvPt_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffVsInvPt_
protected

Definition at line 292 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffAlgEffVsPhi_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffVsPhi_
protected

Definition at line 294 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffAlgEffVsZ0_

std::map<std::string, TEfficiency*> tmtt::Histos::teffAlgEffVsZ0_
protected

Definition at line 290 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffEffFitVsD0_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffFitVsD0_
protected

Definition at line 304 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffEffFitVsEta_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffFitVsEta_
protected

Definition at line 302 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffEffFitVsInvPt_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffFitVsInvPt_
protected

Definition at line 301 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffEffFitVsPhi_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffFitVsPhi_
protected

Definition at line 303 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffEffFitVsZ0_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffFitVsZ0_
protected

Definition at line 305 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffEffVsD0_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffVsD0_
protected

Definition at line 284 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffEffVsEta_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffVsEta_
protected

Definition at line 282 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffEffVsInvPt_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffVsInvPt_
protected

Definition at line 281 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffEffVsPhi_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffVsPhi_
protected

Definition at line 283 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffEffVsZ0_

std::map<std::string, TEfficiency*> tmtt::Histos::teffEffVsZ0_
protected

Definition at line 285 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffPerfAlgEffFitVsEta_

std::map<std::string, TEfficiency*> tmtt::Histos::teffPerfAlgEffFitVsEta_
protected

Definition at line 317 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffPerfAlgEffFitVsInvPt_

std::map<std::string, TEfficiency*> tmtt::Histos::teffPerfAlgEffFitVsInvPt_
protected

Definition at line 316 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffPerfAlgEffVsEta_

std::map<std::string, TEfficiency*> tmtt::Histos::teffPerfAlgEffVsEta_
protected

Definition at line 298 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffPerfAlgEffVsInvPt_

std::map<std::string, TEfficiency*> tmtt::Histos::teffPerfAlgEffVsInvPt_
protected

Definition at line 296 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffPerfAlgEffVsPt_

std::map<std::string, TEfficiency*> tmtt::Histos::teffPerfAlgEffVsPt_
protected

Definition at line 297 of file Histos.h.

◆ teffPerfEffFitVsEta_

std::map<std::string, TEfficiency*> tmtt::Histos::teffPerfEffFitVsEta_
protected

Definition at line 308 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffPerfEffFitVsInvPt_

std::map<std::string, TEfficiency*> tmtt::Histos::teffPerfEffFitVsInvPt_
protected

Definition at line 307 of file Histos.h.

Referenced by plotTrackEffAfterFit().

◆ teffPerfEffVsEta_

std::map<std::string, TEfficiency*> tmtt::Histos::teffPerfEffVsEta_
protected

Definition at line 288 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ teffPerfEffVsInvPt_

std::map<std::string, TEfficiency*> tmtt::Histos::teffPerfEffVsInvPt_
protected

Definition at line 287 of file Histos.h.

Referenced by plotTrackEfficiency().

◆ trackFitters_

std::vector<std::string> tmtt::Histos::trackFitters_
protected

Definition at line 124 of file Histos.h.

Referenced by bookTrackFitting(), endJobAnalysis(), fillTrackFitting(), and Histos().

◆ useRZfilter_

std::vector<std::string> tmtt::Histos::useRZfilter_
protected

Definition at line 125 of file Histos.h.

Referenced by Histos(), and printFitTrackPerformance().