Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef L1TCommon_L1TMuonLegacyConverter_h
0002 #define L1TCommon_L1TMuonLegacyConverter_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     L1TCommon
0006 // Class  :     L1TMuonLegacyConverter
0007 //
0008 /**\class L1TMuonLegacyConverter \file L1TMuonLegacyConverter.h L1Trigger/L1TCommon/interface/L1TMuonLegacyConverter.h
0009 
0010  Description: conver L1T muons legacy format to stage2 format
0011 
0012 */
0013 //
0014 // Original Author:  Pierluigi Bortignon
0015 //         Created:  Sun March 6 2016
0016 //
0017 
0018 // system include files
0019 
0020 // user include files
0021 #include "FWCore/Framework/interface/stream/EDProducer.h"
0022 #include "FWCore/Framework/interface/Event.h"
0023 #include "FWCore/Framework/interface/EventSetup.h"
0024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0025 #include "FWCore/Utilities/interface/InputTag.h"
0026 
0027 // #include "DataFormats/L1Trigger/interface/L1EmParticle.h"
0028 // #include "DataFormats/L1Trigger/interface/L1EmParticleFwd.h"
0029 // #include "DataFormats/L1Trigger/interface/L1JetParticle.h"
0030 // #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h"
0031 #include "DataFormats/L1Trigger/interface/L1MuonParticle.h"
0032 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h"
0033 // #include "DataFormats/L1Trigger/interface/L1EtMissParticle.h"
0034 // #include "DataFormats/L1Trigger/interface/L1EtMissParticleFwd.h"
0035 // #include "DataFormats/L1Trigger/interface/L1HFRings.h"
0036 // #include "DataFormats/L1Trigger/interface/L1HFRingsFwd.h"
0037 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
0038 
0039 //include new muon data format
0040 #include "DataFormats/L1Trigger/interface/Muon.h"
0041 
0042 // forward declarations
0043 class L1CaloGeometry;
0044 class L1MuTriggerScales;
0045 class L1MuTriggerScalesRcd;
0046 class L1MuTriggerPtScale;
0047 class L1MuTriggerPtScaleRcd;
0048 
0049 class L1TMuonLegacyConverter : public edm::stream::EDProducer<> {
0050 public:
0051   explicit L1TMuonLegacyConverter(const edm::ParameterSet&);
0052   ~L1TMuonLegacyConverter() override;
0053 
0054 private:
0055   void produce(edm::Event&, const edm::EventSetup&) override;
0056 
0057   // //      math::XYZTLorentzVector gctLorentzVector( const double& et,
0058   // math::PtEtaPhiMLorentzVector gctLorentzVector( const double& et,
0059   //      const L1GctCand& cand,
0060   //      const L1CaloGeometry* geom,
0061   //      bool central ) ;
0062 
0063   // ----------member data ---------------------------
0064   bool produceMuonParticles_;
0065   edm::InputTag muonSource_InputTag;
0066   edm::EDGetTokenT<L1MuGMTReadoutCollection> muonSource_InputToken;
0067 
0068   edm::ESGetToken<L1MuTriggerScales, L1MuTriggerScalesRcd> muScalesToken_;
0069   edm::ESGetToken<L1MuTriggerPtScale, L1MuTriggerPtScaleRcd> muPtScaleToken_;
0070   // bool produceCaloParticles_ ;
0071   // edm::InputTag isoEmSource_ ;
0072   // edm::InputTag nonIsoEmSource_ ;
0073   // edm::InputTag cenJetSource_ ;
0074   // edm::InputTag forJetSource_ ;
0075   // edm::InputTag tauJetSource_ ;
0076   // edm::InputTag isoTauJetSource_ ;
0077   // edm::InputTag etTotSource_ ;
0078   // edm::InputTag etHadSource_ ;
0079   // edm::InputTag etMissSource_ ;
0080   // edm::InputTag htMissSource_ ;
0081   // edm::InputTag hfRingEtSumsSource_ ;
0082   // edm::InputTag hfRingBitCountsSource_ ;
0083 
0084   static const double muonMassGeV_;
0085 
0086   bool centralBxOnly_;
0087 
0088   // Set this to true when rerunning on RAW data where the GCT did not
0089   // produce a L1GctHtMiss record.
0090   bool ignoreHtMiss_;
0091 };
0092 
0093 #endif