Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef RECOMET_METPRODUCERS_ECALHALODATAPRODUCER_H
0002 #define RECOMET_METPRODUCERS_ECALHALODATAPRODUCER_H
0003 
0004 /*
0005   [class]:  EcalHaloDataProducer
0006   [authors]: R. Remington, The University of Florida
0007   [description]: EDProducer which runs EcalHaloAlgo and store the EcalHaloData 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/EcalHaloData.h"
0035 #include "RecoMET/METAlgorithms/interface/EcalHaloAlgo.h"
0036 //Included Classes (semi-alphabetical)
0037 #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h"
0038 #include "DataFormats/Candidate/interface/CandidateFwd.h"
0039 #include "DataFormats/Candidate/interface/Candidate.h"
0040 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
0041 #include "DataFormats/Common/interface/Handle.h"
0042 #include "DataFormats/Common/interface/View.h"
0043 #include "DataFormats/Common/interface/TriggerResults.h"
0044 #include "DataFormats/DetId/interface/DetId.h"
0045 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
0046 #include "DataFormats/EcalDetId/interface/EBDetId.h"
0047 #include "DataFormats/EcalDetId/interface/EEDetId.h"
0048 #include "DataFormats/EcalDetId/interface/ESDetId.h"
0049 #include "DataFormats/EcalDigi/interface/ESDataFrame.h"
0050 #include "DataFormats/EcalDigi/interface/EEDataFrame.h"
0051 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
0052 #include "DataFormats/EcalRecHit/interface/EcalRecHit.h"
0053 #include "DataFormats/EgammaCandidates/interface/Conversion.h"
0054 #include "DataFormats/EgammaCandidates/interface/ConversionFwd.h"
0055 #include "DataFormats/EgammaCandidates/interface/Photon.h"
0056 #include "DataFormats/EgammaCandidates/interface/PhotonFwd.h"
0057 #include "DataFormats/HcalRecHit/interface/HcalRecHitDefs.h"
0058 #include "DataFormats/HepMCCandidate/interface/PdfInfo.h"
0059 #include "DataFormats/GeometrySurface/interface/Cylinder.h"
0060 #include "DataFormats/GeometrySurface/interface/Plane.h"
0061 #include "DataFormats/GeometrySurface/interface/Cone.h"
0062 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0063 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0064 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
0065 #include "DataFormats/GeometryVector/interface/LocalVector.h"
0066 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0067 #include "DataFormats/TrackReco/interface/Track.h"
0068 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
0069 
0070 #include "FWCore/Framework/interface/Frameworkfwd.h"
0071 #include "FWCore/Framework/interface/Event.h"
0072 #include "FWCore/Framework/interface/MakerMacros.h"
0073 #include "FWCore/Framework/interface/EventSetup.h"
0074 #include "FWCore/Framework/interface/ESHandle.h"
0075 #include "FWCore/Framework/interface/stream/EDProducer.h"
0076 
0077 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0078 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0079 #include "FWCore/PluginManager/interface/ModuleDef.h"
0080 
0081 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
0082 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0083 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
0084 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0085 #include "Geometry/Records/interface/CaloGeometryRecord.h"
0086 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0087 #include "MagneticField/Engine/interface/MagneticField.h"
0088 
0089 #include "TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h"
0090 #include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h"
0091 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0092 
0093 namespace reco {
0094   class EcalHaloDataProducer : public edm::stream::EDProducer<> {
0095   public:
0096     explicit EcalHaloDataProducer(const edm::ParameterSet&);
0097     ~EcalHaloDataProducer() override;
0098 
0099   private:
0100     void produce(edm::Event&, const edm::EventSetup&) override;
0101 
0102     //RecHit Level
0103     edm::InputTag IT_EBRecHit;
0104     edm::InputTag IT_EERecHit;
0105     edm::InputTag IT_ESRecHit;
0106     edm::InputTag IT_HBHERecHit;
0107 
0108     //Higher Level Reco
0109     edm::InputTag IT_SuperCluster;
0110     edm::InputTag IT_Photon;
0111 
0112     edm::EDGetTokenT<EBRecHitCollection> ebrechit_token_;
0113     edm::EDGetTokenT<EERecHitCollection> eerechit_token_;
0114     edm::EDGetTokenT<ESRecHitCollection> esrechit_token_;
0115     edm::EDGetTokenT<HBHERecHitCollection> hbherechit_token_;
0116     edm::EDGetTokenT<reco::SuperClusterCollection> supercluster_token_;
0117     edm::EDGetTokenT<reco::PhotonCollection> photon_token_;
0118     edm::ESGetToken<CaloGeometry, CaloGeometryRecord> calogeometry_token_;
0119     EcalHaloAlgo EcalAlgo;
0120 
0121     float EBRecHitEnergyThreshold;
0122     float EERecHitEnergyThreshold;
0123     float ESRecHitEnergyThreshold;
0124     float SumEcalEnergyThreshold;
0125     int NHitsEcalThreshold;
0126 
0127     double RoundnessCut;
0128     double AngleCut;
0129   };
0130 }  // namespace reco
0131 
0132 #endif