Back to home page

Project CMSSW displayed by LXR

 
 

    


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