Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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