File indexing completed on 2023-03-17 11:13:00
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #include <memory>
0022
0023
0024 #include "FWCore/Framework/interface/Frameworkfwd.h"
0025 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0026 #include "FWCore/Framework/interface/Event.h"
0027 #include "FWCore/Framework/interface/MakerMacros.h"
0028 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0029 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0030
0031
0032 #include "DataFormats/L1Trigger/interface/EGamma.h"
0033 #include "DataFormats/L1Trigger/interface/Tau.h"
0034 #include "DataFormats/L1Trigger/interface/Jet.h"
0035 #include "DataFormats/L1Trigger/interface/Muon.h"
0036 #include "DataFormats/L1Trigger/interface/MuonShower.h"
0037 #include "DataFormats/L1Trigger/interface/EtSum.h"
0038
0039
0040 #include "FWCore/ServiceRegistry/interface/Service.h"
0041 #include "CommonTools/UtilAlgos/interface/TFileService.h"
0042 #include "TTree.h"
0043
0044 #include "L1Trigger/L1TNtuples/interface/L1AnalysisL1Upgrade.h"
0045
0046
0047
0048
0049
0050 class L1UpgradeTreeProducer : public edm::one::EDAnalyzer<edm::one::SharedResources> {
0051 public:
0052 explicit L1UpgradeTreeProducer(const edm::ParameterSet&);
0053 ~L1UpgradeTreeProducer() override = default;
0054
0055 private:
0056 void beginJob(void) override;
0057 void analyze(const edm::Event&, const edm::EventSetup&) override;
0058 void endJob() override;
0059
0060 public:
0061 L1Analysis::L1AnalysisL1Upgrade* l1Upgrade;
0062 L1Analysis::L1AnalysisL1UpgradeDataFormat* l1UpgradeData;
0063
0064 private:
0065 unsigned maxL1Upgrade_;
0066
0067
0068 edm::Service<TFileService> fs_;
0069
0070
0071 TTree* tree_;
0072
0073
0074 const edm::EDGetTokenT<l1t::EGammaBxCollection> egToken_;
0075 const edm::EDGetTokenT<l1t::JetBxCollection> jetToken_;
0076 const edm::EDGetTokenT<l1t::EtSumBxCollection> sumToken_;
0077 const edm::EDGetTokenT<l1t::MuonBxCollection> muonToken_;
0078 const edm::EDGetTokenT<l1t::MuonShowerBxCollection> muonShowerToken_;
0079 std::vector<edm::EDGetTokenT<l1t::TauBxCollection>> tauTokens_;
0080 };
0081
0082 L1UpgradeTreeProducer::L1UpgradeTreeProducer(const edm::ParameterSet& iConfig)
0083 : egToken_(consumes<l1t::EGammaBxCollection>(iConfig.getUntrackedParameter<edm::InputTag>("egToken"))),
0084 jetToken_(consumes<l1t::JetBxCollection>(iConfig.getUntrackedParameter<edm::InputTag>("jetToken"))),
0085 sumToken_(consumes<l1t::EtSumBxCollection>(iConfig.getUntrackedParameter<edm::InputTag>("sumToken"))),
0086 muonToken_(consumes<l1t::MuonBxCollection>(iConfig.getUntrackedParameter<edm::InputTag>("muonToken"))),
0087 muonShowerToken_(
0088 consumes<l1t::MuonShowerBxCollection>(iConfig.getUntrackedParameter<edm::InputTag>("muonShowerToken"))) {
0089 const auto& taus = iConfig.getUntrackedParameter<std::vector<edm::InputTag>>("tauTokens");
0090 for (const auto& tau : taus) {
0091 tauTokens_.push_back(consumes<l1t::TauBxCollection>(tau));
0092 }
0093
0094 maxL1Upgrade_ = iConfig.getParameter<unsigned int>("maxL1Upgrade");
0095
0096 l1Upgrade = new L1Analysis::L1AnalysisL1Upgrade();
0097 l1UpgradeData = l1Upgrade->getData();
0098
0099 usesResource(TFileService::kSharedResource);
0100
0101
0102 tree_ = fs_->make<TTree>("L1UpgradeTree", "L1UpgradeTree");
0103 tree_->Branch("L1Upgrade", "L1Analysis::L1AnalysisL1UpgradeDataFormat", &l1UpgradeData, 32000, 3);
0104 }
0105
0106
0107
0108
0109
0110
0111 void L1UpgradeTreeProducer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0112 l1Upgrade->Reset();
0113
0114 edm::Handle<l1t::EGammaBxCollection> eg;
0115 edm::Handle<l1t::JetBxCollection> jet;
0116 edm::Handle<l1t::EtSumBxCollection> sums;
0117 edm::Handle<l1t::MuonBxCollection> muon;
0118 edm::Handle<l1t::MuonShowerBxCollection> muonShower;
0119
0120 iEvent.getByToken(egToken_, eg);
0121 iEvent.getByToken(jetToken_, jet);
0122 iEvent.getByToken(sumToken_, sums);
0123 iEvent.getByToken(muonToken_, muon);
0124 iEvent.getByToken(muonShowerToken_, muonShower);
0125
0126 if (eg.isValid()) {
0127 l1Upgrade->SetEm(eg, maxL1Upgrade_);
0128 } else {
0129 edm::LogWarning("MissingProduct") << "L1Upgrade Em not found. Branch will not be filled" << std::endl;
0130 }
0131 if (jet.isValid()) {
0132 l1Upgrade->SetJet(jet, maxL1Upgrade_);
0133 } else {
0134 edm::LogWarning("MissingProduct") << "L1Upgrade Jets not found. Branch will not be filled" << std::endl;
0135 }
0136
0137 if (sums.isValid()) {
0138 l1Upgrade->SetSum(sums, maxL1Upgrade_);
0139 } else {
0140 edm::LogWarning("MissingProduct") << "L1Upgrade EtSums not found. Branch will not be filled" << std::endl;
0141 }
0142
0143 if (muon.isValid()) {
0144 l1Upgrade->SetMuon(muon, maxL1Upgrade_);
0145 } else {
0146 edm::LogWarning("MissingProduct") << "L1Upgrade Muons not found. Branch will not be filled" << std::endl;
0147 }
0148
0149 if (muonShower.isValid()) {
0150 l1Upgrade->SetMuonShower(muonShower, maxL1Upgrade_);
0151 } else {
0152 edm::LogWarning("MissingProduct") << "L1Upgrade Muon Showers not found. Branch will not be filled" << std::endl;
0153 }
0154
0155 for (auto& tautoken : tauTokens_) {
0156 edm::Handle<l1t::TauBxCollection> tau;
0157 iEvent.getByToken(tautoken, tau);
0158 if (tau.isValid()) {
0159 l1Upgrade->SetTau(tau, maxL1Upgrade_);
0160 } else {
0161 edm::LogWarning("MissingProduct") << "L1Upgrade Tau not found. Branch will not be filled" << std::endl;
0162 }
0163 }
0164
0165 tree_->Fill();
0166 }
0167
0168
0169 void L1UpgradeTreeProducer::beginJob(void) {}
0170
0171
0172 void L1UpgradeTreeProducer::endJob() {}
0173
0174
0175 DEFINE_FWK_MODULE(L1UpgradeTreeProducer);