Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:38

0001 #ifndef SegmentTrackAnalyzer_H
0002 #define SegmentTrackAnalyzer_H
0003 
0004 /** \class SegmentTrackAnalyzer
0005  *
0006  *  DQM monitoring source for segments associated to the muon track
0007  *
0008  *  \author G. Mila - INFN Torino
0009  */
0010 
0011 #include <memory>
0012 #include <fstream>
0013 #include "FWCore/Framework/interface/Frameworkfwd.h"
0014 #include "FWCore/Framework/interface/Event.h"
0015 #include "FWCore/Framework/interface/MakerMacros.h"
0016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0017 #include "FWCore/ServiceRegistry/interface/Service.h"
0018 #include "DQMServices/Core/interface/DQMStore.h"
0019 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0020 #include "RecoMuon/TrackingTools/interface/SegmentsTrackAssociator.h"
0021 #include "DataFormats/TrackReco/interface/Track.h"
0022 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0023 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
0024 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0025 
0026 class MuonServiceProxy;
0027 
0028 class SegmentTrackAnalyzer : public DQMEDAnalyzer {
0029 public:
0030   /// Constructor
0031   SegmentTrackAnalyzer(const edm::ParameterSet&);
0032 
0033   /// Destructor
0034   ~SegmentTrackAnalyzer() override { delete theSegmentsAssociator; };
0035 
0036   void analyze(const edm::Event&, const edm::EventSetup&) override;
0037   void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0038 
0039 private:
0040   // ----------member data ---------------------------
0041   edm::ParameterSet parameters;
0042   edm::EDGetTokenT<reco::TrackCollection> theMuTrackCollectionLabel_;
0043 
0044   // Switch for verbosity
0045   std::string metname;
0046   std::string trackCollection;
0047   // Find the segments associated to the track
0048   SegmentsTrackAssociator* theSegmentsAssociator;
0049 
0050   int etaBin;
0051   double etaMin;
0052   double etaMax;
0053   int phiBin;
0054   double phiMin;
0055   double phiMax;
0056   int ptBin;
0057   double ptMin;
0058   double ptMax;
0059 
0060   // the histos
0061   MonitorElement* hitsNotUsed;
0062   MonitorElement* hitsNotUsedPercentual;
0063   MonitorElement* TrackSegm;
0064   MonitorElement* hitStaProvenance;
0065   MonitorElement* hitTkrProvenance;
0066   MonitorElement* trackHitPercentualVsEta;
0067   MonitorElement* trackHitPercentualVsPhi;
0068   MonitorElement* trackHitPercentualVsPt;
0069   MonitorElement* dtTrackHitPercentualVsEta;
0070   MonitorElement* dtTrackHitPercentualVsPhi;
0071   MonitorElement* dtTrackHitPercentualVsPt;
0072   MonitorElement* cscTrackHitPercentualVsEta;
0073   MonitorElement* cscTrackHitPercentualVsPhi;
0074   MonitorElement* cscTrackHitPercentualVsPt;
0075 };
0076 #endif