00001 // -*- C++ -*- 00002 00003 00004 // system include files 00005 #include <memory> 00006 #include <string> 00007 // user include files 00008 #include "FWCore/Framework/interface/Frameworkfwd.h" 00009 #include "FWCore/Framework/interface/EDProducer.h" 00010 00011 #include "FWCore/Framework/interface/Event.h" 00012 #include "FWCore/Framework/interface/MakerMacros.h" 00013 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 #include "FWCore/Framework/interface/Frameworkfwd.h" 00016 #include "FWCore/Framework/interface/Event.h" 00017 #include "FWCore/Framework/interface/MakerMacros.h" 00018 #include "FWCore/Framework/interface/ESHandle.h" 00019 #include "FWCore/Framework/interface/EventSetup.h" 00020 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00021 00022 #include "DataFormats/Common/interface/Ref.h" 00023 #include "DataFormats/DetId/interface/DetId.h" 00024 //#include "DataFormats/CaloTowers/interface/CaloTowerDetId.h" 00025 00026 #include "Geometry/Records/interface/IdealGeometryRecord.h" 00027 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00028 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00029 00030 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" 00031 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" 00032 #include "RecoTracker/TrackProducer/interface/TrackProducerBase.h" 00033 #include "TrackingTools/TransientTrack/interface/TransientTrack.h" 00034 00035 #include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h" 00036 #include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h" 00037 #include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h" 00038 #include "TrackingTools/TrackAssociator/interface/TrackDetMatchInfo.h" 00039 00040 #include "Calibration/Tools/interface/TimerStack.h" 00041 #include "Geometry/Records/interface/IdealGeometryRecord.h" 00042 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00043 00044 #include "TH1F.h" 00045 class TFile; 00046 00047 // 00048 // class declaration 00049 // 00050 00051 class AlCaIsoTracksProducer : public edm::EDProducer { 00052 public: 00053 explicit AlCaIsoTracksProducer(const edm::ParameterSet&); 00054 ~AlCaIsoTracksProducer(); 00055 00056 virtual void produce(edm::Event &, const edm::EventSetup&); 00057 void endJob(void); 00058 00059 private: 00060 00061 TrackDetectorAssociator trackAssociator_; 00062 TrackAssociatorParameters parameters_; 00063 00064 00065 const CaloGeometry* geo; 00066 edm::InputTag hoLabel_; 00067 edm::InputTag hbheLabel_; 00068 std::vector<edm::InputTag> ecalLabels_; 00069 00070 edm::InputTag m_inputTrackLabel_; 00071 00072 int nHitsMinCore_; 00073 int nHitsMinIso_; 00074 double m_dvCut; 00075 double m_ddirCut; 00076 bool useConeCorr_; 00077 double m_pCut; 00078 double m_ptCut; 00079 double m_ecalCut; 00080 00081 double taECALCone_; 00082 double taHCALCone_; 00083 00084 bool skipNeutrals_; 00085 bool checkHLTMatch_; 00086 edm::InputTag hltEventTag_; 00087 std::vector<std::string> hltFiltTag_; 00088 double hltMatchingCone_; 00089 00090 double isolE_; 00091 double etaMax_; 00092 double cluRad_; 00093 double ringOutRad_; 00094 double ringInnRad_; 00095 00096 bool useECALCluMatrix_; 00097 int matrixSize_; 00098 int matrixInnerSize_; 00099 int matrixOuterSize_; 00100 00101 std::string l1FilterTag_; 00102 double l1jetVetoCone_; 00103 00104 }; 00105