00001 // -*- C++ -*- 00002 // 00003 // Package: Calibration/HcalCalibAlgos/plugins 00004 // Class: ValidationHcalIsoTrackAlCaReco 00005 // 00013 // 00014 // Original Author: Grigory SAFRONOV, Sergey PETRUSHANKO 00015 // Created: Tue Oct 14 16:10:31 CEST 2008 00016 // $Id: ValidationHcalIsoTrackAlCaReco.h,v 1.2 2010/01/11 16:40:13 kodolova Exp $ 00017 // 00018 // 00019 00020 00021 // system include files 00022 #include <memory> 00023 00024 // user include files 00025 00026 #include "FWCore/Framework/interface/ESHandle.h" 00027 00028 #include "FWCore/Framework/interface/Frameworkfwd.h" 00029 #include "FWCore/Framework/interface/EDAnalyzer.h" 00030 00031 #include "FWCore/Framework/interface/Event.h" 00032 #include "FWCore/Framework/interface/MakerMacros.h" 00033 00034 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00035 00036 #include "DataFormats/HLTReco/interface/TriggerEvent.h" 00037 #include "DataFormats/L1Trigger/interface/L1JetParticle.h" 00038 #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h" 00039 00040 #include "CondFormats/L1TObjects/interface/L1GtTriggerMenu.h" 00041 #include "CondFormats/DataRecord/interface/L1GtTriggerMenuRcd.h" 00042 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h" 00043 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h" 00044 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h" 00045 00046 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00047 #include "DataFormats/TrackReco/interface/Track.h" 00048 00049 #include "CondFormats/L1TObjects/interface/L1GtPrescaleFactors.h" 00050 #include "CondFormats/DataRecord/interface/L1GtPrescaleFactorsAlgoTrigRcd.h" 00051 #include "CondFormats/DataRecord/interface/L1GtPrescaleFactorsTechTrigRcd.h" 00052 00053 #include "DQMServices/Core/interface/DQMStore.h" 00054 #include "DQMServices/Core/interface/MonitorElement.h" 00055 #include "FWCore/ServiceRegistry/interface/Service.h" 00056 00057 #include "DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidate.h" 00058 #include "DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidateFwd.h" 00059 00060 00061 // Sergey + 00062 00063 #include "SimDataFormats/Track/interface/SimTrack.h" 00064 #include "SimDataFormats/Track/interface/SimTrackContainer.h" 00065 00066 // Sergey - 00067 00068 00069 #include <fstream> 00070 00071 #include "TH1F.h" 00072 00073 class ValidationHcalIsoTrackAlCaReco : public edm::EDAnalyzer { 00074 public: 00075 explicit ValidationHcalIsoTrackAlCaReco(const edm::ParameterSet&); 00076 ~ValidationHcalIsoTrackAlCaReco(); 00077 00078 00079 private: 00080 00081 DQMStore* dbe_; 00082 00083 virtual void beginJob() ; 00084 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00085 virtual void endJob() ; 00086 00087 std::string folderName_; 00088 bool saveToFile_; 00089 std::string outRootFileName_; 00090 edm::InputTag hltEventTag_; 00091 edm::InputTag hltFilterTag_; 00092 edm::InputTag arITrLabel_; 00093 edm::InputTag recoTrLabel_; 00094 double pThr_; 00095 double heLow_; 00096 double heUp_; 00097 00098 MonitorElement* hl3Pt; 00099 MonitorElement* hl3eta; 00100 MonitorElement* hl3AbsEta; 00101 MonitorElement* hl3phi; 00102 MonitorElement* hOffL3TrackMatch; 00103 MonitorElement* hOffL3TrackPtRat; 00104 00105 MonitorElement* hOffP_0005; 00106 MonitorElement* hOffP_0510; 00107 MonitorElement* hOffP_1015; 00108 MonitorElement* hOffP_1520; 00109 00110 MonitorElement* hOffP; 00111 00112 MonitorElement* hTracksSumP; 00113 MonitorElement* hTracksMaxP; 00114 00115 MonitorElement* hDeposEcalInner; 00116 MonitorElement* hDeposEcalOuter; 00117 00118 MonitorElement* hOffEtaFP; 00119 MonitorElement* hOffAbsEta; 00120 MonitorElement* hOffPhiFP; 00121 00122 MonitorElement* hOffEta; 00123 MonitorElement* hOffPhi; 00124 00125 MonitorElement* hOccupancyFull; 00126 MonitorElement* hOccupancyHighEn; 00127 00128 MonitorElement* hPurityEta; 00129 MonitorElement* hPurityPhi; 00130 00131 // Sergey + 00132 00133 MonitorElement* hSimPt; 00134 MonitorElement* hSimPhi; 00135 MonitorElement* hSimEta; 00136 MonitorElement* hSimAbsEta; 00137 MonitorElement* hSimDist; 00138 MonitorElement* hSimPtRatOff; 00139 MonitorElement* hSimP; 00140 MonitorElement* hSimN; 00141 MonitorElement* hSimNN; 00142 MonitorElement* hSimNE; 00143 MonitorElement* hSimNM; 00144 00145 // Sergey - 00146 00147 int nTotal; 00148 int nHLTL3accepts; 00149 00150 double getDist(double, double, double, double); 00151 00152 // Sergey + 00153 00154 double getDistInCM(double eta1, double phi1, double eta2, double phi2); 00155 00156 // Sergey - 00157 00158 std::pair<int, int> towerIndex(double eta, double phi); 00159 00160 };