File indexing completed on 2024-04-06 12:20:11
0001 #ifndef L1ExtraFromDigis_L1ExtraParticlesProd_h
0002 #define L1ExtraFromDigis_L1ExtraParticlesProd_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #include "FWCore/Framework/interface/Event.h"
0024 #include "FWCore/Framework/interface/EventSetup.h"
0025 #include "FWCore/Framework/interface/stream/EDProducer.h"
0026 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0027 #include "FWCore/Utilities/interface/InputTag.h"
0028 #include "FWCore/Utilities/interface/ESGetToken.h"
0029
0030 #include "DataFormats/L1Trigger/interface/L1EmParticle.h"
0031 #include "DataFormats/L1Trigger/interface/L1EmParticleFwd.h"
0032 #include "DataFormats/L1Trigger/interface/L1EtMissParticle.h"
0033 #include "DataFormats/L1Trigger/interface/L1EtMissParticleFwd.h"
0034 #include "DataFormats/L1Trigger/interface/L1HFRings.h"
0035 #include "DataFormats/L1Trigger/interface/L1HFRingsFwd.h"
0036 #include "DataFormats/L1Trigger/interface/L1JetParticle.h"
0037 #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h"
0038 #include "DataFormats/L1Trigger/interface/L1MuonParticle.h"
0039 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h"
0040 #include "CondFormats/DataRecord/interface/L1CaloGeometryRecord.h"
0041 #include "CondFormats/L1TObjects/interface/L1CaloGeometry.h"
0042 #include "CondFormats/DataRecord/interface/L1EmEtScaleRcd.h"
0043 #include "CondFormats/DataRecord/interface/L1GctJetFinderParamsRcd.h"
0044 #include "CondFormats/DataRecord/interface/L1HfRingEtScaleRcd.h"
0045 #include "CondFormats/DataRecord/interface/L1HtMissScaleRcd.h"
0046 #include "CondFormats/DataRecord/interface/L1JetEtScaleRcd.h"
0047 #include "CondFormats/L1TObjects/interface/L1CaloEtScale.h"
0048 #include "CondFormats/L1TObjects/interface/L1GctJetFinderParams.h"
0049 #include "CondFormats/DataRecord/interface/L1MuTriggerPtScaleRcd.h"
0050 #include "CondFormats/DataRecord/interface/L1MuTriggerScalesRcd.h"
0051 #include "CondFormats/L1TObjects/interface/L1MuTriggerPtScale.h"
0052 #include "CondFormats/L1TObjects/interface/L1MuTriggerScales.h"
0053
0054 class L1CaloGeometry;
0055
0056 class L1ExtraParticlesProd : public edm::stream::EDProducer<> {
0057 public:
0058 explicit L1ExtraParticlesProd(const edm::ParameterSet &);
0059 ~L1ExtraParticlesProd() override;
0060
0061 private:
0062 void produce(edm::Event &, const edm::EventSetup &) override;
0063
0064
0065 math::PtEtaPhiMLorentzVector gctLorentzVector(const double &et,
0066 const L1GctCand &cand,
0067 const L1CaloGeometry *geom,
0068 bool central);
0069
0070
0071 bool produceMuonParticles_;
0072 edm::InputTag muonSource_;
0073
0074 bool produceCaloParticles_;
0075 edm::InputTag isoEmSource_;
0076 edm::InputTag nonIsoEmSource_;
0077 edm::InputTag cenJetSource_;
0078 edm::InputTag forJetSource_;
0079 edm::InputTag tauJetSource_;
0080 edm::InputTag isoTauJetSource_;
0081 edm::InputTag etTotSource_;
0082 edm::InputTag etHadSource_;
0083 edm::InputTag etMissSource_;
0084 edm::InputTag htMissSource_;
0085 edm::InputTag hfRingEtSumsSource_;
0086 edm::InputTag hfRingBitCountsSource_;
0087
0088 static const double muonMassGeV_;
0089
0090 bool centralBxOnly_;
0091
0092
0093
0094 bool ignoreHtMiss_;
0095 edm::ESGetToken<L1MuTriggerScales, L1MuTriggerScalesRcd> muScalesToken_;
0096 edm::ESGetToken<L1MuTriggerPtScale, L1MuTriggerPtScaleRcd> muPtScaleToken_;
0097 edm::ESGetToken<L1CaloGeometry, L1CaloGeometryRecord> caloGeomToken_;
0098 edm::ESGetToken<L1CaloEtScale, L1EmEtScaleRcd> emScaleToken_;
0099 edm::ESGetToken<L1CaloEtScale, L1JetEtScaleRcd> jetScaleToken_;
0100 edm::ESGetToken<L1GctJetFinderParams, L1GctJetFinderParamsRcd> jetFinderParamsToken_;
0101 edm::ESGetToken<L1CaloEtScale, L1HtMissScaleRcd> htMissScaleToken_;
0102 edm::ESGetToken<L1CaloEtScale, L1HfRingEtScaleRcd> hfRingEtScaleToken_;
0103 };
0104
0105 #endif