Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:32:58

0001 #ifndef ElectronConversionRejectionValidator_H
0002 #define ElectronConversionRejectionValidator_H
0003 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0004 #include "FWCore/Framework/interface/Event.h"
0005 #include "FWCore/Framework/interface/EventSetup.h"
0006 #include "FWCore/Framework/interface/ESHandle.h"
0007 #include "DataFormats/Common/interface/RefToBaseVector.h"
0008 #include "DataFormats/Common/interface/RefVector.h"
0009 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0010 #include "DataFormats/VertexReco/interface/Vertex.h"
0011 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
0012 #include "DataFormats/EgammaCandidates/interface/ConversionFwd.h"
0013 //
0014 //DQM services
0015 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0016 #include "DQMServices/Core/interface/DQMStore.h"
0017 #include "FWCore/ServiceRegistry/interface/Service.h"
0018 
0019 //
0020 #include <map>
0021 #include <vector>
0022 
0023 // forward declarations
0024 namespace reco {
0025   class BeamSpot;
0026 }
0027 class TFile;
0028 class TH1F;
0029 class TH2F;
0030 class TProfile;
0031 class TTree;
0032 class SimVertex;
0033 class SimTrack;
0034 /** \class ElectronConversionRejectionValidator
0035  **
0036  **
0037  **  $Id: ElectronConversionRejectionValidator
0038  **  \author J.Bendavid
0039  **
0040  ***/
0041 
0042 class ElectronConversionRejectionValidator : public DQMEDAnalyzer {
0043 public:
0044   explicit ElectronConversionRejectionValidator(const edm::ParameterSet&);
0045   ~ElectronConversionRejectionValidator() override;
0046 
0047   void analyze(const edm::Event&, const edm::EventSetup&) override;
0048   void bookHistograms(DQMStore::IBooker& bei, edm::Run const&, edm::EventSetup const&) override;
0049 
0050 private:
0051   std::string fName_;
0052 
0053   int verbosity_;
0054   int nEvt_;
0055   int nEntry_;
0056 
0057   edm::ParameterSet parameters_;
0058   std::string conversionCollectionProducer_;
0059   std::string conversionCollection_;
0060 
0061   std::string gsfElectronCollectionProducer_;
0062   std::string gsfElectronCollection_;
0063 
0064   std::string dqmpath_;
0065 
0066   edm::EDGetTokenT<reco::GsfElectronCollection> gsfElecToken_;
0067   edm::EDGetTokenT<reco::ConversionCollection> convToken_;
0068   edm::EDGetTokenT<reco::VertexCollection> offline_pvToken_;
0069   edm::EDGetTokenT<reco::BeamSpot> beamspotToken_;
0070 
0071   bool isRunCentrally_;
0072 
0073   float elePtMin_;
0074   int eleExpectedHitsInnerMax_;
0075   float eleD0Max_;
0076 
0077   //
0078   MonitorElement* h_elePtAll_;
0079   MonitorElement* h_eleEtaAll_;
0080   MonitorElement* h_elePhiAll_;
0081 
0082   MonitorElement* h_elePtPass_;
0083   MonitorElement* h_eleEtaPass_;
0084   MonitorElement* h_elePhiPass_;
0085 
0086   MonitorElement* h_elePtFail_;
0087   MonitorElement* h_eleEtaFail_;
0088   MonitorElement* h_elePhiFail_;
0089 
0090   MonitorElement* h_elePtEff_;
0091   MonitorElement* h_eleEtaEff_;
0092   MonitorElement* h_elePhiEff_;
0093 
0094   MonitorElement* h_convPt_;
0095   MonitorElement* h_convEta_;
0096   MonitorElement* h_convPhi_;
0097   MonitorElement* h_convRho_;
0098   MonitorElement* h_convZ_;
0099 
0100   MonitorElement* h_convProb_;
0101 
0102   MonitorElement* h_convLeadTrackpt_;
0103   MonitorElement* h_convTrailTrackpt_;
0104   MonitorElement* h_convLog10TrailTrackpt_;
0105   MonitorElement* h_convLeadTrackAlgo_;
0106   MonitorElement* h_convTrailTrackAlgo_;
0107 };
0108 
0109 #endif