Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 10:01:14

0001 #ifndef RecoMuon_L3MuonIsolationProducer_L3MuonIsolationAnalyzer_H
0002 #define RecoMuon_L3MuonIsolationProducer_L3MuonIsolationAnalyzer_H
0003 
0004 /** \class L3MuonIsolationAnalyzer
0005  *  Analyzer of HLT L3 muon isolation performance
0006  *
0007  */
0008 
0009 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0010 #include "FWCore/Utilities/interface/InputTag.h"
0011 #include "RecoMuon/MuonIsolation/interface/Cuts.h"
0012 
0013 namespace edm {
0014   class ParameterSet;
0015   class Event;
0016   class EventSetup;
0017 }  // namespace edm
0018 
0019 class TFile;
0020 class TH1F;
0021 class TH2F;
0022 
0023 class L3MuonIsolationAnalyzer : public edm::one::EDAnalyzer<> {
0024 public:
0025   /// Constructor
0026   L3MuonIsolationAnalyzer(const edm::ParameterSet& pset);
0027 
0028   /// Destructor
0029   ~L3MuonIsolationAnalyzer() override;
0030 
0031   // Operations
0032   void analyze(const edm::Event& event, const edm::EventSetup& eventSetup) override;
0033 
0034   void beginJob() override;
0035   void endJob() override;
0036 
0037 private:
0038   void Puts(const char* fmt, ...);
0039 
0040   // Isolation label
0041   edm::InputTag theIsolationLabel;
0042 
0043   // Cone and Pt sets to be tested
0044   std::vector<double> theConeCases;
0045   double thePtMin;
0046   double thePtMax;
0047   unsigned int thePtBins;
0048 
0049   // Reference isolation cuts
0050   muonisolation::Cuts theCuts;
0051 
0052   // Root output file
0053   std::string theRootFileName;
0054   TFile* theRootFile;
0055 
0056   // Text output file
0057   std::string theTxtFileName;
0058   FILE* theTxtFile;
0059 
0060   // Histograms
0061   TH1F* hPtSum;
0062   TH1F* hEffVsCone;
0063   TH1F* hEffVsPt;
0064   std::vector<TH1F*> hEffVsPtArray;
0065 
0066   // Counters and vectors
0067   unsigned int numberOfEvents;
0068   unsigned int numberOfMuons;
0069 };
0070 #endif