Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Validation_EcalClusters_EgammaSuperClusters_h
0002 #define Validation_EcalClusters_EgammaSuperClusters_h
0003 
0004 /**\class EgammaSuperClusters
0005 
0006  Description: SVSuite Super Cluster Validation
0007 
0008  Implementation:
0009      \\\author: Michael A. Balazs, Nov 2006
0010 */
0011 //
0012 //
0013 
0014 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0015 
0016 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
0017 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
0018 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
0019 
0020 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h"
0021 
0022 #include "HistSpec.h"
0023 #include "DQMServices/Core/interface/DQMStore.h"
0024 
0025 #include <string>
0026 
0027 class EgammaSuperClusters : public DQMEDAnalyzer {
0028 public:
0029   explicit EgammaSuperClusters(const edm::ParameterSet &);
0030   ~EgammaSuperClusters() override;
0031 
0032   void analyze(const edm::Event &, const edm::EventSetup &) override;
0033   void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0034 
0035 private:
0036   // mc truth
0037   edm::EDGetTokenT<edm::HepMCProduct> MCTruthCollectionToken_;
0038 
0039   // barrel clusters
0040   edm::EDGetTokenT<reco::SuperClusterCollection> barrelRawSuperClusterCollectionToken_;
0041   edm::EDGetTokenT<reco::SuperClusterCollection> barrelCorSuperClusterCollectionToken_;
0042 
0043   // endcap clusters
0044   edm::EDGetTokenT<reco::SuperClusterCollection> endcapRawSuperClusterCollectionToken_;
0045   edm::EDGetTokenT<reco::SuperClusterCollection> endcapPreSuperClusterCollectionToken_;
0046   edm::EDGetTokenT<reco::SuperClusterCollection> endcapCorSuperClusterCollectionToken_;
0047 
0048   // collections of hits
0049   edm::EDGetTokenT<EcalRecHitCollection> barrelRecHitCollectionToken_;
0050   edm::EDGetTokenT<EcalRecHitCollection> endcapRecHitCollectionToken_;
0051 
0052   EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_;
0053 
0054   HistSpec hsSize_;
0055   HistSpec hsNumBC_;
0056   HistSpec hsET_;
0057   HistSpec hsEta_;
0058   HistSpec hsPhi_;
0059   HistSpec hsS1toS9_;
0060   HistSpec hsS25toE_;
0061   HistSpec hsEoverTruth_;
0062   HistSpec hsdeltaR_;
0063   HistSpec hsphiWidth_;
0064   HistSpec hsetaWidth_;
0065   HistSpec hspreshowerE_;
0066   HistSpec hsR_;
0067 
0068   MonitorElement *hist_EB_RawSC_Size_;
0069   MonitorElement *hist_EE_RawSC_Size_;
0070   MonitorElement *hist_EB_CorSC_Size_;
0071   MonitorElement *hist_EE_CorSC_Size_;
0072   MonitorElement *hist_EE_PreSC_Size_;
0073   MonitorElement *hist_EB_RawSC_NumBC_;
0074   MonitorElement *hist_EE_RawSC_NumBC_;
0075   MonitorElement *hist_EB_CorSC_NumBC_;
0076   MonitorElement *hist_EE_CorSC_NumBC_;
0077   MonitorElement *hist_EE_PreSC_NumBC_;
0078   MonitorElement *hist_EB_RawSC_ET_;
0079   MonitorElement *hist_EE_RawSC_ET_;
0080   MonitorElement *hist_EB_CorSC_ET_;
0081   MonitorElement *hist_EE_CorSC_ET_;
0082   MonitorElement *hist_EE_PreSC_ET_;
0083   MonitorElement *hist_EB_RawSC_Eta_;
0084   MonitorElement *hist_EE_RawSC_Eta_;
0085   MonitorElement *hist_EB_CorSC_Eta_;
0086   MonitorElement *hist_EE_CorSC_Eta_;
0087   MonitorElement *hist_EE_PreSC_Eta_;
0088   MonitorElement *hist_EB_RawSC_Phi_;
0089   MonitorElement *hist_EE_RawSC_Phi_;
0090   MonitorElement *hist_EB_CorSC_Phi_;
0091   MonitorElement *hist_EE_CorSC_Phi_;
0092   MonitorElement *hist_EE_PreSC_Phi_;
0093   MonitorElement *hist_EB_RawSC_S1toS9_;
0094   MonitorElement *hist_EE_RawSC_S1toS9_;
0095   MonitorElement *hist_EB_CorSC_S1toS9_;
0096   MonitorElement *hist_EE_CorSC_S1toS9_;
0097   MonitorElement *hist_EE_PreSC_S1toS9_;
0098   MonitorElement *hist_EB_RawSC_S25toE_;
0099   MonitorElement *hist_EE_RawSC_S25toE_;
0100   MonitorElement *hist_EB_CorSC_S25toE_;
0101   MonitorElement *hist_EE_CorSC_S25toE_;
0102   MonitorElement *hist_EE_PreSC_S25toE_;
0103   MonitorElement *hist_EB_RawSC_EoverTruth_;
0104   MonitorElement *hist_EE_RawSC_EoverTruth_;
0105   MonitorElement *hist_EB_CorSC_EoverTruth_;
0106   MonitorElement *hist_EE_CorSC_EoverTruth_;
0107   MonitorElement *hist_EE_PreSC_EoverTruth_;
0108   MonitorElement *hist_EB_RawSC_deltaR_;
0109   MonitorElement *hist_EE_RawSC_deltaR_;
0110   MonitorElement *hist_EB_CorSC_deltaR_;
0111   MonitorElement *hist_EE_CorSC_deltaR_;
0112   MonitorElement *hist_EE_PreSC_deltaR_;
0113   MonitorElement *hist_EE_PreSC_preshowerE_;
0114   MonitorElement *hist_EE_CorSC_preshowerE_;
0115   MonitorElement *hist_EE_CorSC_phiWidth_;
0116   MonitorElement *hist_EB_CorSC_phiWidth_;
0117   MonitorElement *hist_EE_CorSC_etaWidth_;
0118   MonitorElement *hist_EB_CorSC_etaWidth_;
0119   MonitorElement *hist_EB_CorSC_ET_vs_Eta_;
0120   MonitorElement *hist_EB_CorSC_ET_vs_Phi_;
0121   MonitorElement *hist_EE_CorSC_ET_vs_Eta_;
0122   MonitorElement *hist_EE_CorSC_ET_vs_Phi_;
0123   MonitorElement *hist_EE_CorSC_ET_vs_R_;
0124 
0125   void closestMCParticle(HepMC::GenEvent const *, reco::SuperCluster const &, double &, double &) const;
0126 
0127   float ecalEta(float, float, float) const;
0128 };
0129 
0130 #endif