Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:45

0001 #ifndef RECOBEAMHALO_PRODUCERS_GLOBALHALODATAPRODUCER_H
0002 #define RECOBEAMHALO_PRODUCERS_GLOBALHALODATAPRODUCER_H
0003 
0004 /*
0005   [class]:GlobalHaloDataProducer
0006   [authors]: R. Remington, The University of Florida
0007   [description]: EDProducer which runs the GlobalHaloAlgo and stores the GlobalHaloData object to the event.
0008   [date]: October 15, 2009
0009 */
0010 
0011 //Standard C++ classes
0012 #include <iostream>
0013 #include <string>
0014 #include <map>
0015 #include <vector>
0016 #include <utility>
0017 #include <ostream>
0018 #include <fstream>
0019 #include <algorithm>
0020 #include <cmath>
0021 #include <memory>
0022 #include <iomanip>
0023 #include <cstdlib>
0024 
0025 // user include files
0026 #include "FWCore/Utilities/interface/ESGetToken.h"
0027 #include "FWCore/Utilities/interface/EDGetToken.h"
0028 #include "FWCore/Framework/interface/Frameworkfwd.h"
0029 #include "FWCore/Framework/interface/stream/EDProducer.h"
0030 #include "FWCore/Framework/interface/Event.h"
0031 #include "FWCore/Framework/interface/MakerMacros.h"
0032 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0033 
0034 #include "DataFormats/METReco/interface/GlobalHaloData.h"
0035 #include "RecoMET/METAlgorithms/interface/GlobalHaloAlgo.h"
0036 //Included Classes (semi-alphabetical)
0037 #include "CondFormats/CSCObjects/interface/CSCDBCrosstalk.h"
0038 #include "CondFormats/CSCObjects/interface/CSCDBGains.h"
0039 #include "CondFormats/CSCObjects/interface/CSCDBNoiseMatrix.h"
0040 #include "CondFormats/CSCObjects/interface/CSCDBPedestals.h"
0041 #include "CondFormats/DataRecord/interface/CSCDBCrosstalkRcd.h"
0042 #include "CondFormats/DataRecord/interface/CSCDBGainsRcd.h"
0043 #include "CondFormats/DataRecord/interface/CSCDBNoiseMatrixRcd.h"
0044 #include "CondFormats/DataRecord/interface/CSCDBPedestalsRcd.h"
0045 
0046 #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h"
0047 #include "DataFormats/Candidate/interface/CandidateFwd.h"
0048 #include "DataFormats/Candidate/interface/Candidate.h"
0049 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
0050 #include "DataFormats/Common/interface/Handle.h"
0051 #include "DataFormats/Common/interface/View.h"
0052 #include "DataFormats/Common/interface/TriggerResults.h"
0053 #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
0054 #include "DataFormats/CSCDigi/interface/CSCWireDigi.h"
0055 #include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
0056 #include "DataFormats/CSCDigi/interface/CSCStripDigi.h"
0057 #include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
0058 #include "DataFormats/CSCDigi/interface/CSCComparatorDigi.h"
0059 #include "DataFormats/CSCDigi/interface/CSCComparatorDigiCollection.h"
0060 #include "DataFormats/CSCRecHit/interface/CSCRecHit2D.h"
0061 #include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h"
0062 #include "DataFormats/CSCRecHit/interface/CSCRecHit2DCollection.h"
0063 #include "DataFormats/CSCRecHit/interface/CSCSegment.h"
0064 #include "DataFormats/DetId/interface/DetId.h"
0065 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
0066 #include "DataFormats/DTRecHit/interface/DTRecSegment4D.h"
0067 #include "DataFormats/DTRecHit/interface/DTRecHitCollection.h"
0068 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
0069 #include "DataFormats/EcalDetId/interface/EBDetId.h"
0070 #include "DataFormats/EcalDetId/interface/EEDetId.h"
0071 #include "DataFormats/EcalDetId/interface/ESDetId.h"
0072 #include "DataFormats/EcalDigi/interface/ESDataFrame.h"
0073 #include "DataFormats/EcalDigi/interface/EEDataFrame.h"
0074 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
0075 #include "DataFormats/EcalRecHit/interface/EcalRecHit.h"
0076 #include "DataFormats/EgammaCandidates/interface/Conversion.h"
0077 #include "DataFormats/EgammaCandidates/interface/ConversionFwd.h"
0078 #include "DataFormats/EgammaCandidates/interface/Photon.h"
0079 #include "DataFormats/EgammaCandidates/interface/PhotonFwd.h"
0080 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
0081 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
0082 #include "DataFormats/HepMCCandidate/interface/PdfInfo.h"
0083 #include "DataFormats/GeometrySurface/interface/Cylinder.h"
0084 #include "DataFormats/GeometrySurface/interface/Plane.h"
0085 #include "DataFormats/GeometrySurface/interface/Cone.h"
0086 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0087 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0088 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
0089 #include "DataFormats/GeometryVector/interface/LocalVector.h"
0090 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
0091 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
0092 #include "DataFormats/HcalRecHit/interface/HBHERecHit.h"
0093 #include "DataFormats/HcalRecHit/interface/HFRecHit.h"
0094 #include "DataFormats/HcalRecHit/interface/HORecHit.h"
0095 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
0096 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
0097 #include "DataFormats/JetReco/interface/CaloJet.h"
0098 #include "DataFormats/L1CSCTrackFinder/interface/L1CSCTrackCollection.h"
0099 #include "DataFormats/L1CSCTrackFinder/interface/L1CSCStatusDigiCollection.h"
0100 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
0101 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutRecord.h"
0102 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
0103 #include "DataFormats/METReco/interface/CaloMET.h"
0104 #include "DataFormats/METReco/interface/CaloMETFwd.h"
0105 #include "DataFormats/METReco/interface/MET.h"
0106 #include "DataFormats/MuonDetId/interface/CSCIndexer.h"
0107 #include "DataFormats/MuonDetId/interface/CSCDetId.h"
0108 #include "DataFormats/MuonDetId/interface/RPCDetId.h"
0109 #include "DataFormats/MuonDetId/interface/DTWireId.h"
0110 #include "DataFormats/MuonReco/interface/MuonFwd.h"
0111 #include "DataFormats/MuonReco/interface/Muon.h"
0112 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
0113 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
0114 #include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h"
0115 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h"
0116 #include "DataFormats/TrackingRecHit/interface/RecSegment.h"
0117 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h"
0118 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h"
0119 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h"
0120 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0121 #include "DataFormats/TrackReco/interface/Track.h"
0122 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
0123 
0124 #include "FWCore/Framework/interface/Frameworkfwd.h"
0125 #include "FWCore/Framework/interface/Event.h"
0126 #include "FWCore/Framework/interface/MakerMacros.h"
0127 #include "FWCore/Framework/interface/EventSetup.h"
0128 #include "FWCore/Framework/interface/ESHandle.h"
0129 #include "FWCore/Framework/interface/stream/EDProducer.h"
0130 
0131 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0132 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0133 #include "FWCore/PluginManager/interface/ModuleDef.h"
0134 
0135 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
0136 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0137 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
0138 #include "Geometry/CommonDetUnit/interface/TrackingGeometry.h"
0139 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
0140 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0141 #include "Geometry/CommonTopologies/interface/PixelTopology.h"
0142 #include "Geometry/CommonTopologies/interface/StripTopology.h"
0143 #include "Geometry/CSCGeometry/interface/CSCGeometry.h"
0144 #include "Geometry/CSCGeometry/interface/CSCChamber.h"
0145 #include "Geometry/CSCGeometry/interface/CSCLayer.h"
0146 #include "Geometry/CSCGeometry/interface/CSCLayerGeometry.h"
0147 #include "Geometry/DTGeometry/interface/DTGeometry.h"
0148 #include "Geometry/DTGeometry/interface/DTLayer.h"
0149 #include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h"
0150 #include "Geometry/RPCGeometry/interface/RPCRoll.h"
0151 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
0152 #include "Geometry/Records/interface/CaloGeometryRecord.h"
0153 #include "Geometry/Records/interface/MuonGeometryRecord.h"
0154 #include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h"
0155 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0156 #include "Geometry/CommonDetUnit/interface/GluedGeomDet.h"
0157 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0158 #include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h"
0159 #include "Geometry/CommonDetUnit/interface/PixelGeomDetType.h"
0160 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetType.h"
0161 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h"
0162 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h"
0163 
0164 #include "L1Trigger/CSCTrackFinder/interface/CSCSectorReceiverLUT.h"
0165 #include "L1Trigger/CSCTrackFinder/interface/CSCSectorReceiverLUT.h"
0166 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0167 #include "MagneticField/Engine/interface/MagneticField.h"
0168 
0169 #include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h"
0170 #include "RecoMuon/TrackingTools/interface/MuonPatternRecoDumper.h"
0171 #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHitBuilder.h"
0172 #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h"
0173 
0174 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0175 #include "TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h"
0176 #include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h"
0177 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0178 
0179 namespace reco {
0180   class GlobalHaloDataProducer : public edm::stream::EDProducer<> {
0181   public:
0182     explicit GlobalHaloDataProducer(const edm::ParameterSet&);
0183     ~GlobalHaloDataProducer() override;
0184 
0185   private:
0186     void produce(edm::Event&, const edm::EventSetup&) override;
0187 
0188     GlobalHaloAlgo GlobalAlgo;
0189 
0190     edm::InputTag IT_CaloTower;
0191     edm::InputTag IT_met;
0192     edm::InputTag IT_CSCRecHit;
0193     edm::InputTag IT_CSCSegment;
0194     edm::InputTag IT_Muon;
0195 
0196     edm::InputTag IT_CSCHaloData;
0197     edm::InputTag IT_EcalHaloData;
0198     edm::InputTag IT_HcalHaloData;
0199 
0200     edm::EDGetTokenT<edm::View<reco::Candidate> > calotower_token_;
0201     edm::EDGetTokenT<reco::CaloMETCollection> calomet_token_;
0202     edm::EDGetTokenT<CSCSegmentCollection> cscsegment_token_;
0203     edm::EDGetTokenT<CSCRecHit2DCollection> cscrechit_token_;
0204     edm::EDGetTokenT<reco::MuonCollection> muon_token_;
0205     edm::EDGetTokenT<CSCHaloData> cschalo_token_;
0206     edm::EDGetTokenT<EcalHaloData> ecalhalo_token_;
0207     edm::EDGetTokenT<HcalHaloData> hcalhalo_token_;
0208     edm::ESGetToken<CSCGeometry, MuonGeometryRecord> cscgeometry_token_;
0209     edm::ESGetToken<GlobalTrackingGeometry, GlobalTrackingGeometryRecord> globaltrackinggeometry_token_;
0210     edm::ESGetToken<CaloGeometry, CaloGeometryRecord> calogeometry_token_;
0211 
0212     float EcalMinMatchingRadius;
0213     float EcalMaxMatchingRadius;
0214     float HcalMinMatchingRadius;
0215     float HcalMaxMatchingRadius;
0216     float CaloTowerEtThreshold;
0217 
0218     bool ishlt;
0219   };
0220 }  // namespace reco
0221 
0222 #endif