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:113
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:864
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:113
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:113
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:113
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:113
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:113
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 864 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().

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

References bApproxMistake_, enabled(), ALCARECOEcalPhiSym_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().

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

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

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

Referenced by plotTrackEffAfterFit(), and plotTrackEfficiency().

1464  {
1465  outputEfficiency = inputDir.make<TEfficiency>(*pass, *all);
1466  outputEfficiency->SetName(name);
1467  outputEfficiency->SetTitle(title);
1468  }
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 1362 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().

1362  {
1363  // Define lambda function to facilitate adding "fitName" to directory & histogram names.
1364  auto addn = [fitName](const string& s) { return TString::Format("%s_%s", s.c_str(), fitName.c_str()); };
1365 
1366  TFileDirectory inputDir = fs_->mkdir(addn("Effi").Data());
1367  // Plot tracking efficiency
1368  makeEfficiencyPlot(inputDir,
1369  teffEffFitVsInvPt_[fitName],
1370  hisFitTPinvptForEff_[fitName],
1372  addn("EffFitVsInvPt"),
1373  "; 1/Pt; Tracking efficiency");
1374  makeEfficiencyPlot(inputDir,
1375  teffEffFitVsEta_[fitName],
1376  hisFitTPetaForEff_[fitName],
1378  addn("EffFitVsEta"),
1379  "; #eta; Tracking efficiency");
1380  makeEfficiencyPlot(inputDir,
1381  teffEffFitVsPhi_[fitName],
1382  hisFitTPphiForEff_[fitName],
1384  addn("EffFitVsPhi"),
1385  "; #phi; Tracking efficiency");
1386 
1387  makeEfficiencyPlot(inputDir,
1388  teffEffFitVsD0_[fitName],
1389  hisFitTPd0ForEff_[fitName],
1391  addn("EffFitVsD0"),
1392  "; d0 (cm); Tracking efficiency");
1393  makeEfficiencyPlot(inputDir,
1394  teffEffFitVsZ0_[fitName],
1395  hisFitTPz0ForEff_[fitName],
1397  addn("EffFitVsZ0"),
1398  "; z0 (cm); Tracking efficiency");
1399 
1400  // Also plot efficiency to reconstruct track perfectly.
1401  makeEfficiencyPlot(inputDir,
1402  teffPerfEffFitVsInvPt_[fitName],
1403  hisPerfFitTPinvptForEff_[fitName],
1405  addn("PerfEffFitVsInvPt"),
1406  "; 1/Pt; Tracking perfect efficiency");
1407  makeEfficiencyPlot(inputDir,
1408  teffPerfEffFitVsEta_[fitName],
1409  hisPerfFitTPetaForEff_[fitName],
1411  addn("PerfEffFitVsEta"),
1412  "; #eta; Tracking perfect efficiency");
1413 
1414  // Plot algorithmic tracking efficiency
1415  makeEfficiencyPlot(inputDir,
1416  teffAlgEffFitVsInvPt_[fitName],
1417  hisFitTPinvptForAlgEff_[fitName],
1419  addn("AlgEffFitVsInvPt"),
1420  "; 1/Pt; Tracking efficiency");
1421  makeEfficiencyPlot(inputDir,
1422  teffAlgEffFitVsEta_[fitName],
1423  hisFitTPetaForAlgEff_[fitName],
1425  addn("AlgEffFitVsEta"),
1426  "; #eta; Tracking efficiency");
1427  makeEfficiencyPlot(inputDir,
1428  teffAlgEffFitVsPhi_[fitName],
1429  hisFitTPphiForAlgEff_[fitName],
1431  addn("AlgEffFitVsPhi"),
1432  "; #phi; Tracking efficiency");
1433 
1434  makeEfficiencyPlot(inputDir,
1435  teffAlgEffFitVsD0_[fitName],
1436  hisFitTPd0ForAlgEff_[fitName],
1438  addn("AlgEffFitVsD0"),
1439  "; d0 (cm); Tracking efficiency");
1440  makeEfficiencyPlot(inputDir,
1441  teffAlgEffFitVsZ0_[fitName],
1442  hisFitTPz0ForAlgEff_[fitName],
1444  addn("AlgEffFitVsZ0"),
1445  "; z0 (cm); Tracking efficiency");
1446 
1447  // Also plot algorithmic efficiency to reconstruct track perfectly.
1448  makeEfficiencyPlot(inputDir,
1449  teffPerfAlgEffFitVsInvPt_[fitName],
1450  hisPerfFitTPinvptForAlgEff_[fitName],
1452  addn("PerfAlgEffFitVsInvPt"),
1453  "; 1/Pt; Tracking perfect efficiency");
1454  makeEfficiencyPlot(inputDir,
1455  teffPerfAlgEffFitVsEta_[fitName],
1456  hisPerfFitTPetaForAlgEff_[fitName],
1458  addn("Perf AlgEffFitVsEta"),
1459  "; #eta; Tracking perfect efficiency");
1460  return inputDir;
1461  }
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:1463
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:113
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 1257 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().

1257  {
1258  // Define lambda function to facilitate adding "tName" to directory & histogram names.
1259  auto addn = [tName](const string& s) { return TString::Format("%s_%s", s.c_str(), tName.c_str()); };
1260 
1261  TFileDirectory inputDir = fs_->mkdir(addn("Effi").Data());
1262  // Plot tracking efficiency
1263  makeEfficiencyPlot(inputDir,
1267  addn("EffVsInvPt"),
1268  "; 1/Pt; Tracking efficiency");
1269  makeEfficiencyPlot(inputDir,
1273  addn("EffVsEta"),
1274  "; #eta; Tracking efficiency");
1275 
1276  makeEfficiencyPlot(inputDir,
1280  addn("EffVsPhi"),
1281  "; #phi; Tracking efficiency");
1282 
1283  makeEfficiencyPlot(inputDir,
1287  addn("EffVsD0"),
1288  "; d0 (cm); Tracking efficiency");
1289  makeEfficiencyPlot(inputDir,
1293  addn("EffVsZ0"),
1294  "; z0 (cm); Tracking efficiency");
1295 
1296  // Also plot efficiency to reconstruct track perfectly.
1297  makeEfficiencyPlot(inputDir,
1301  addn("PerfEffVsInvPt"),
1302  "; 1/Pt; Tracking perfect efficiency");
1303  makeEfficiencyPlot(inputDir,
1307  addn("PerfEffVsEta"),
1308  "; #eta; Tracking perfect efficiency");
1309 
1310  // Plot algorithmic tracking efficiency
1311  makeEfficiencyPlot(inputDir,
1315  addn("AlgEffVsInvPt"),
1316  "; 1/Pt; Tracking efficiency");
1317  makeEfficiencyPlot(inputDir,
1321  addn("AlgEffVsEta"),
1322  "; #eta; Tracking efficiency");
1323  makeEfficiencyPlot(inputDir,
1327  addn("AlgEffVsPhi"),
1328  "; #phi; Tracking efficiency");
1329 
1330  makeEfficiencyPlot(inputDir,
1334  addn("AlgEffVsD0"),
1335  "; d0 (cm); Tracking efficiency");
1336  makeEfficiencyPlot(inputDir,
1340  addn("AlgEffVsZ0"),
1341  "; z0 (cm); Tracking efficiency");
1342 
1343  // Also plot algorithmic efficiency to reconstruct track perfectly.
1344  makeEfficiencyPlot(inputDir,
1348  addn("PerfAlgEffVsInvPt"),
1349  "; 1/Pt; Tracking perfect efficiency");
1350  makeEfficiencyPlot(inputDir,
1354  addn("PerfAlgEffVsEta"),
1355  "; #eta; Tracking perfect efficiency");
1356 
1357  return inputDir;
1358  }
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:1463
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:113
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 1518 of file Histos.cc.

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

Referenced by endJobAnalysis().

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

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

Referenced by endJobAnalysis().

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

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

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