00001 // -*- C++ -*- 00002 // 00003 // Package: HSCP 00004 // Class: HSCPValidator 00005 // 00013 // 00014 // Original Author: Seth Cooper,27 1-024,+41227672342, 00015 // Created: Wed Apr 14 14:27:52 CEST 2010 00016 // $Id: HSCPValidator.h,v 1.6 2011/10/11 21:14:48 jiechen Exp $ 00017 // 00018 // 00019 #include "FWCore/Framework/interface/Frameworkfwd.h" 00020 #include "FWCore/Framework/interface/EDAnalyzer.h" 00021 #include "FWCore/Framework/interface/Event.h" 00022 #include "FWCore/Framework/interface/MakerMacros.h" 00023 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00024 #include "FWCore/Framework/interface/ESHandle.h" 00025 00026 #include "Geometry/RPCGeometry/interface/RPCGeometry.h" 00027 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" 00028 #include "FWCore/Common/interface/TriggerResultsByName.h" 00029 #include "DataFormats/HLTReco/interface/TriggerEvent.h" 00030 #include "DataFormats/Common/interface/TriggerResults.h" 00031 #include "DataFormats/HLTReco/interface/TriggerObject.h" 00032 00033 00034 // 00035 00036 #include "TH2F.h" 00037 // 00038 // class declaration 00039 // 00040 00041 class HSCPValidator : public edm::EDAnalyzer { 00042 public: 00043 explicit HSCPValidator(const edm::ParameterSet&); 00044 ~HSCPValidator(); 00045 00046 00047 private: 00048 virtual void beginJob() ; 00049 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00050 virtual void endJob() ; 00051 std::string intToString(int num); 00052 void makeGenPlots(const edm::Event& iEvent); 00053 void makeSimTrackPlots(const edm::Event& iEvent); 00054 void makeSimDigiPlotsECAL(const edm::Event& iEvent); 00055 void makeSimDigiPlotsRPC(const edm::Event& iEvent); 00056 void makeHLTPlots(const edm::Event& iEvent); 00057 void makeRecoPlots(const edm::Event& iEvent); 00058 bool IncreasedTreshold(const trigger::TriggerEvent& trEv, const edm::InputTag& InputPath, double NewThreshold, double etaCut,int NObjectAboveThreshold, bool averageThreshold); 00059 // ----------member data --------------------------- 00060 bool doGenPlots_; 00061 bool doHLTPlots_; 00062 bool doSimTrackPlots_; 00063 bool doSimDigiPlots_; 00064 bool doRecoPlots_; 00065 00066 // GEN section 00067 edm::InputTag label_; 00068 std::vector<int> particleIds_; 00069 int particleStatus_; 00070 std::map<int,int> particleIdsFoundMap_; 00071 TH1F* particleEtaHist_; 00072 TH1F* particlePhiHist_; 00073 TH1F* particlePHist_; 00074 TH1F* particlePtHist_; 00075 TH1F* particleMassHist_; 00076 TH1F* particleStatusHist_; 00077 TH1F* particleBetaHist_; 00078 TH1F* particleBetaInverseHist_; 00079 TH1F * h_genhscp_met; 00080 TH1F * h_genhscp_met_nohscp; 00081 TH1F * h_genhscp_scaloret; 00082 TH1F * h_genhscp_scaloret_nohscp; 00083 00084 00085 //SIM-Track section 00086 TH1F*simTrackParticleEtaHist_ ; 00087 TH1F* simTrackParticlePhiHist_; 00088 TH1F* simTrackParticlePHist_; 00089 TH1F*simTrackParticlePtHist_; 00090 TH1F* simTrackParticleBetaHist_; 00091 00092 // SIM-DIGI section 00093 edm::InputTag ebSimHitTag_; 00094 edm::InputTag eeSimHitTag_; 00095 edm::InputTag simTrackTag_; 00096 edm::InputTag EBDigiCollection_; 00097 edm::InputTag EEDigiCollection_; 00098 edm::InputTag RPCRecHitTag_; 00099 edm::ESHandle <RPCGeometry> rpcGeo; 00100 // ECAL 00101 TH1F* simHitsEcalEnergyHistEB_; 00102 TH1F* simHitsEcalTimeHistEB_; 00103 TH1F* simHitsEcalNumHistEB_; 00104 TH2F* simHitsEcalEnergyVsTimeHistEB_; 00105 TH1F* simHitsEcalEnergyHistEE_; 00106 TH1F* simHitsEcalTimeHistEE_; 00107 TH1F* simHitsEcalNumHistEE_; 00108 TH2F* simHitsEcalEnergyVsTimeHistEE_; 00109 TH1F* simHitsEcalDigiMatchEnergyHistEB_; 00110 TH1F* simHitsEcalDigiMatchTimeHistEB_; 00111 TH2F* simHitsEcalDigiMatchEnergyVsTimeHistEB_; 00112 TH1F* simHitsEcalDigiMatchEnergyHistEE_; 00113 TH1F* simHitsEcalDigiMatchTimeHistEE_; 00114 TH2F* simHitsEcalDigiMatchEnergyVsTimeHistEE_; 00115 TH1F* simHitsEcalDigiMatchIEtaHist_; 00116 TH1F* simHitsEcalDigiMatchIPhiHist_; 00117 TH1F* digisEcalNumHistEB_; 00118 TH1F* digisEcalNumHistEE_; 00119 TH2F* digiOccupancyMapEB_; 00120 TH2F* digiOccupancyMapEEP_; 00121 TH2F* digiOccupancyMapEEM_; 00122 // RPC 00123 TH1F* residualsRPCRecHitSimDigis_; 00124 TH1F* efficiencyRPCRecHitSimDigis_; 00125 TH1F* cluSizeDistribution_; 00126 TH1F* rpcTimeOfFlightBarrel_[6]; 00127 TH1F* rpcBXBarrel_[6]; 00128 TH1F* rpcTimeOfFlightEndCap_[3]; 00129 TH1F* rpcBXEndCap_[3]; 00130 //HLT 00131 TH1F* hltmet; 00132 TH1F* hltjet; 00133 TH1F* hltmu; 00134 //RECO 00135 TH2F* RecoHSCPPtVsGenPt; 00136 TH2F* dedxVsp; 00137 00138 };