Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:11

0001 #ifndef L1ExtraFromDigis_L1ExtraParticlesProd_h
0002 #define L1ExtraFromDigis_L1ExtraParticlesProd_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     L1ExtraFromDigis
0006 // Class  :     L1ExtraParticlesProd
0007 //
0008 /**\class L1ExtraParticlesProd \file L1ExtraParticlesProd.h
0009  L1Trigger/L1ExtraFromDigis/interface/L1ExtraParticlesProd.h \author Werner Sun
0010 
0011  Description: producer of L1Extra particle objects from Level-1 hardware
0012  objects.
0013 
0014 */
0015 //
0016 // Original Author:
0017 //         Created:  Tue Oct 17 00:13:51 EDT 2006
0018 //
0019 
0020 // system include files
0021 
0022 // user include files
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 // forward declarations
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   //      math::XYZTLorentzVector gctLorentzVector( const double& et,
0065   math::PtEtaPhiMLorentzVector gctLorentzVector(const double &et,
0066                                                 const L1GctCand &cand,
0067                                                 const L1CaloGeometry *geom,
0068                                                 bool central);
0069 
0070   // ----------member data ---------------------------
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   // Set this to true when rerunning on RAW data where the GCT did not
0093   // produce a L1GctHtMiss record.
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