CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Calibration/HcalCalibAlgos/plugins/ValidationHcalIsoTrackAlCaReco.h

Go to the documentation of this file.
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.3 2012/09/28 16:27:32 wdd 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 #include "FWCore/Utilities/interface/InputTag.h"
00057 
00058 #include "DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidate.h"
00059 #include "DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidateFwd.h"
00060 
00061 
00062 // Sergey +
00063 
00064 #include "SimDataFormats/Track/interface/SimTrack.h"
00065 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
00066 
00067 // Sergey -
00068 
00069 
00070 #include <fstream>
00071 
00072 #include "TH1F.h"
00073 
00074 class ValidationHcalIsoTrackAlCaReco : public edm::EDAnalyzer {
00075 public:
00076   explicit ValidationHcalIsoTrackAlCaReco(const edm::ParameterSet&);
00077   ~ValidationHcalIsoTrackAlCaReco();
00078   
00079   
00080 private:
00081 
00082   DQMStore* dbe_;  
00083 
00084   virtual void beginJob() ;
00085   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00086   virtual void endJob() ;
00087 
00088   std::string folderName_;
00089   bool saveToFile_;
00090   std::string outRootFileName_;
00091   edm::InputTag hltEventTag_;
00092   edm::InputTag hltFilterTag_;
00093   edm::InputTag arITrLabel_;
00094   edm::InputTag recoTrLabel_;
00095   edm::InputTag simTracksTag_;
00096   double pThr_;
00097   double heLow_;
00098   double heUp_;
00099   
00100   MonitorElement* hl3Pt;
00101   MonitorElement* hl3eta;
00102   MonitorElement* hl3AbsEta;
00103   MonitorElement* hl3phi;
00104   MonitorElement* hOffL3TrackMatch;
00105   MonitorElement* hOffL3TrackPtRat;
00106 
00107   MonitorElement* hOffP_0005;
00108   MonitorElement* hOffP_0510;
00109   MonitorElement* hOffP_1015;
00110   MonitorElement* hOffP_1520;
00111 
00112   MonitorElement* hOffP;
00113 
00114   MonitorElement* hTracksSumP;
00115   MonitorElement* hTracksMaxP;
00116 
00117   MonitorElement* hDeposEcalInner;
00118   MonitorElement* hDeposEcalOuter;
00119 
00120   MonitorElement* hOffEtaFP;
00121   MonitorElement* hOffAbsEta;
00122   MonitorElement* hOffPhiFP;
00123 
00124   MonitorElement* hOffEta;
00125   MonitorElement* hOffPhi;
00126   
00127   MonitorElement* hOccupancyFull;
00128   MonitorElement* hOccupancyHighEn;
00129 
00130   MonitorElement* hPurityEta;
00131   MonitorElement* hPurityPhi;
00132 
00133 // Sergey +
00134 
00135   MonitorElement* hSimPt;
00136   MonitorElement* hSimPhi;
00137   MonitorElement* hSimEta;
00138   MonitorElement* hSimAbsEta;
00139   MonitorElement* hSimDist;
00140   MonitorElement* hSimPtRatOff;
00141   MonitorElement* hSimP;
00142   MonitorElement* hSimN;
00143   MonitorElement* hSimNN;
00144   MonitorElement* hSimNE;
00145   MonitorElement* hSimNM;
00146 
00147 // Sergey -
00148 
00149   int nTotal;
00150   int nHLTL3accepts;
00151   
00152   double getDist(double, double, double, double);
00153 
00154 // Sergey +
00155 
00156   double getDistInCM(double eta1, double phi1, double eta2, double phi2);
00157 
00158 // Sergey -
00159 
00160   std::pair<int, int> towerIndex(double eta, double phi);
00161 
00162 };