Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:29:10

0001 #ifndef SiOuterTrackerV_OuterTrackerMonitorTrackingParticles_h
0002 #define SiOuterTrackerV_OuterTrackerMonitorTrackingParticles_h
0003 
0004 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0005 #include "DQMServices/Core/interface/DQMStore.h"
0006 #include "DataFormats/Common/interface/DetSetVector.h"
0007 #include "DataFormats/Common/interface/DetSetVectorNew.h"
0008 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0009 #include "FWCore/Framework/interface/ESHandle.h"
0010 #include "FWCore/Framework/interface/Event.h"
0011 #include "FWCore/Framework/interface/Frameworkfwd.h"
0012 #include "FWCore/Framework/interface/MakerMacros.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "FWCore/Utilities/interface/EDGetToken.h"
0015 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h"
0016 #include "SimTracker/TrackTriggerAssociation/interface/TTClusterAssociationMap.h"
0017 #include "SimTracker/TrackTriggerAssociation/interface/TTStubAssociationMap.h"
0018 #include "SimTracker/TrackTriggerAssociation/interface/TTTrackAssociationMap.h"
0019 #include <memory>
0020 #include <string>
0021 #include <vector>
0022 
0023 class OuterTrackerMonitorTrackingParticles : public DQMEDAnalyzer {
0024 public:
0025   explicit OuterTrackerMonitorTrackingParticles(const edm::ParameterSet &);
0026   ~OuterTrackerMonitorTrackingParticles() override;
0027   void analyze(const edm::Event &, const edm::EventSetup &) override;
0028   void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0029 
0030   // Tracking particle distributions
0031   MonitorElement *trackParts_Eta = nullptr;
0032   MonitorElement *trackParts_Phi = nullptr;
0033   MonitorElement *trackParts_Pt = nullptr;
0034 
0035   // pT and eta for efficiency plots
0036   MonitorElement *tp_pt = nullptr;             // denominator
0037   MonitorElement *tp_pt_zoom = nullptr;        // denominator
0038   MonitorElement *tp_eta = nullptr;            // denominator
0039   MonitorElement *tp_d0 = nullptr;             // denominator
0040   MonitorElement *tp_VtxR = nullptr;           // denominator (also known as vxy)
0041   MonitorElement *tp_VtxZ = nullptr;           // denominator
0042   MonitorElement *match_tp_pt = nullptr;       // numerator
0043   MonitorElement *match_tp_pt_zoom = nullptr;  // numerator
0044   MonitorElement *match_tp_eta = nullptr;      // numerator
0045   MonitorElement *match_tp_d0 = nullptr;       // numerator
0046   MonitorElement *match_tp_VtxR = nullptr;     // numerator (also known as vxy)
0047   MonitorElement *match_tp_VtxZ = nullptr;     // numerator
0048 
0049   // 1D intermediate resolution plots (pT and eta)
0050   MonitorElement *res_eta = nullptr;    // for all eta and pT
0051   MonitorElement *res_pt = nullptr;     // for all eta and pT
0052   MonitorElement *res_ptRel = nullptr;  // for all eta and pT (delta(pT)/pT)
0053   MonitorElement *respt_eta0to0p7_pt2to3 = nullptr;
0054   MonitorElement *respt_eta0p7to1_pt2to3 = nullptr;
0055   MonitorElement *respt_eta1to1p2_pt2to3 = nullptr;
0056   MonitorElement *respt_eta1p2to1p6_pt2to3 = nullptr;
0057   MonitorElement *respt_eta1p6to2_pt2to3 = nullptr;
0058   MonitorElement *respt_eta2to2p4_pt2to3 = nullptr;
0059   MonitorElement *respt_eta0to0p7_pt3to8 = nullptr;
0060   MonitorElement *respt_eta0p7to1_pt3to8 = nullptr;
0061   MonitorElement *respt_eta1to1p2_pt3to8 = nullptr;
0062   MonitorElement *respt_eta1p2to1p6_pt3to8 = nullptr;
0063   MonitorElement *respt_eta1p6to2_pt3to8 = nullptr;
0064   MonitorElement *respt_eta2to2p4_pt3to8 = nullptr;
0065   MonitorElement *respt_eta0to0p7_pt8toInf = nullptr;
0066   MonitorElement *respt_eta0p7to1_pt8toInf = nullptr;
0067   MonitorElement *respt_eta1to1p2_pt8toInf = nullptr;
0068   MonitorElement *respt_eta1p2to1p6_pt8toInf = nullptr;
0069   MonitorElement *respt_eta1p6to2_pt8toInf = nullptr;
0070   MonitorElement *respt_eta2to2p4_pt8toInf = nullptr;
0071   MonitorElement *reseta_eta0to0p7 = nullptr;
0072   MonitorElement *reseta_eta0p7to1 = nullptr;
0073   MonitorElement *reseta_eta1to1p2 = nullptr;
0074   MonitorElement *reseta_eta1p2to1p6 = nullptr;
0075   MonitorElement *reseta_eta1p6to2 = nullptr;
0076   MonitorElement *reseta_eta2to2p4 = nullptr;
0077   MonitorElement *resphi_eta0to0p7 = nullptr;
0078   MonitorElement *resphi_eta0p7to1 = nullptr;
0079   MonitorElement *resphi_eta1to1p2 = nullptr;
0080   MonitorElement *resphi_eta1p2to1p6 = nullptr;
0081   MonitorElement *resphi_eta1p6to2 = nullptr;
0082   MonitorElement *resphi_eta2to2p4 = nullptr;
0083   MonitorElement *resVtxZ_eta0to0p7 = nullptr;
0084   MonitorElement *resVtxZ_eta0p7to1 = nullptr;
0085   MonitorElement *resVtxZ_eta1to1p2 = nullptr;
0086   MonitorElement *resVtxZ_eta1p2to1p6 = nullptr;
0087   MonitorElement *resVtxZ_eta1p6to2 = nullptr;
0088   MonitorElement *resVtxZ_eta2to2p4 = nullptr;
0089 
0090   // For d0
0091   MonitorElement *resd0_eta0to0p7 = nullptr;
0092   MonitorElement *resd0_eta0p7to1 = nullptr;
0093   MonitorElement *resd0_eta1to1p2 = nullptr;
0094   MonitorElement *resd0_eta1p2to1p6 = nullptr;
0095   MonitorElement *resd0_eta1p6to2 = nullptr;
0096   MonitorElement *resd0_eta2to2p4 = nullptr;
0097 
0098 private:
0099   const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> m_topoToken;
0100   edm::ParameterSet conf_;
0101   edm::EDGetTokenT<std::vector<TrackingParticle>> trackingParticleToken_;
0102   edm::EDGetTokenT<TTClusterAssociationMap<Ref_Phase2TrackerDigi_>>
0103       ttClusterMCTruthToken_;  // MC truth association map for clusters
0104   edm::EDGetTokenT<TTStubAssociationMap<Ref_Phase2TrackerDigi_>>
0105       ttStubMCTruthToken_;  // MC truth association map for stubs
0106   edm::EDGetTokenT<TTTrackAssociationMap<Ref_Phase2TrackerDigi_>>
0107       ttTrackMCTruthToken_;  // MC truth association map for tracks
0108   int L1Tk_minNStub;
0109   double L1Tk_maxChi2dof;
0110   int TP_minNStub;
0111   int TP_minNLayersStub;
0112   double TP_minPt;
0113   double TP_maxEta;
0114   double TP_maxVtxZ;
0115   std::string topFolderName_;
0116 };
0117 #endif