File indexing completed on 2024-04-06 12:09:46
0001 #ifndef IPTagPlotter_H
0002 #define IPTagPlotter_H
0003
0004 #include "DQMOffline/RecoB/interface/BaseTagInfoPlotter.h"
0005 #include "DQMOffline/RecoB/interface/TrackIPHistograms.h"
0006 #include "DQMOffline/RecoB/interface/FlavourHistorgrams2D.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "DataFormats/BTauReco/interface/IPTagInfo.h"
0009
0010 template <class Container, class Base>
0011 class IPTagPlotter : public BaseTagInfoPlotter {
0012 public:
0013 IPTagPlotter(const std::string& tagName,
0014 const EtaPtBin& etaPtBin,
0015 const edm::ParameterSet& pSet,
0016 unsigned int mc,
0017 bool wf,
0018 DQMStore::IBooker& ibook);
0019
0020 ~IPTagPlotter() override;
0021
0022 void analyzeTag(const reco::BaseTagInfo* baseTagInfo, double jec, int jetFlavour, float w = 1) override;
0023
0024 void finalize(DQMStore::IBooker& ibook_, DQMStore::IGetter& igetter_) override;
0025
0026 void epsPlot(const std::string& name) override;
0027
0028 void psPlot(const std::string& name) override;
0029
0030 reco::TrackBase::TrackQuality highestTrackQual(const reco::Track* track) const;
0031
0032 private:
0033 int nBinEffPur_;
0034 double startEffPur_;
0035 double endEffPur_;
0036 unsigned int mcPlots_;
0037 bool willFinalize_;
0038 bool makeQualityPlots_;
0039
0040 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosSig3D;
0041 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosSig2D;
0042 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosErr3D;
0043 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosErr2D;
0044 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosVal3D;
0045 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosVal2D;
0046 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosDecayLengthVal2D;
0047 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosDecayLengthVal3D;
0048 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosJetDistVal2D;
0049 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosJetDistVal3D;
0050 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosJetDistSign2D;
0051 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosJetDistSign3D;
0052 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosTkNChiSqr2D;
0053 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosTkNChiSqr3D;
0054 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosTkPt2D;
0055 std::vector<std::unique_ptr<TrackIPHistograms<double>>> tkcntHistosTkPt3D;
0056 std::vector<std::unique_ptr<TrackIPHistograms<int>>> tkcntHistosTkNHits2D;
0057 std::vector<std::unique_ptr<TrackIPHistograms<int>>> tkcntHistosTkNHits3D;
0058 std::vector<std::unique_ptr<TrackIPHistograms<int>>> tkcntHistosTkNPixelHits2D;
0059 std::vector<std::unique_ptr<TrackIPHistograms<int>>> tkcntHistosTkNPixelHits3D;
0060
0061 std::unique_ptr<FlavourHistograms<int>> trkNbr3D, trkNbr2D;
0062
0063 double lowerIPSBound, upperIPSBound, lowerIPBound, upperIPBound, lowerIPEBound, upperIPEBound;
0064 int nBinsIPS, nBinsIP, nBinsIPE;
0065 double minDecayLength, maxDecayLength, minJetDistance, maxJetDistance;
0066
0067 std::vector<std::unique_ptr<EffPurFromHistos>> effPurFromHistos;
0068
0069 std::vector<std::unique_ptr<TrackIPHistograms<float>>> tkcntHistosProb3D;
0070 std::vector<std::unique_ptr<TrackIPHistograms<float>>> tkcntHistosProb2D;
0071
0072 std::unique_ptr<TrackIPHistograms<float>> tkcntHistosTkProbIPneg2D, tkcntHistosTkProbIPpos2D;
0073 std::unique_ptr<TrackIPHistograms<float>> tkcntHistosTkProbIPneg3D, tkcntHistosTkProbIPpos3D;
0074 std::unique_ptr<TrackIPHistograms<double>> ghostTrackWeightHisto;
0075 std::unique_ptr<TrackIPHistograms<double>> ghostTrackDistanceValuHisto, ghostTrackDistanceSignHisto;
0076
0077 std::unique_ptr<FlavourHistograms<int>> trackQualHisto;
0078 std::unique_ptr<FlavourHistograms<int>> selectedTrackQualHisto;
0079 std::unique_ptr<FlavourHistograms2D<double, int>> trackMultVsJetPtHisto;
0080 std::unique_ptr<FlavourHistograms2D<double, int>> selectedTrackMultVsJetPtHisto;
0081 };
0082
0083 #include "DQMOffline/RecoB/interface/IPTagPlotter_cc.h"
0084
0085 #endif