CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
Phase2L1CaloJetEmulator Class Reference

#include <L1Trigger/L1CaloTrigger/plugins/Phase2L1CaloJetEmulator.cc>

Inheritance diagram for Phase2L1CaloJetEmulator:
edm::stream::EDProducer<>

Public Member Functions

 Phase2L1CaloJetEmulator (const edm::ParameterSet &)
 
 ~Phase2L1CaloJetEmulator () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

float get_jet_pt_calibration (const float &jet_pt, const float &jet_eta) const
 
float get_tau_pt_calibration (const float &tau_pt, const float &tau_eta) const
 
void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

std::vector< double > absEtaBinsBarrel
 
std::vector< double > absEtaBinsHF
 
std::vector< double > absEtaBinsHGCal
 
std::map< std::string, std::map< std::string, TF1 > > all_nvtx_to_PU_sub_funcs
 
std::vector< std::vector< double > > calibrationsBarrel
 
std::vector< std::vector< double > > calibrationsHF
 
std::vector< std::vector< double > > calibrationsHGCal
 
edm::EDGetTokenT< l1tp2::CaloTowerCollectioncaloTowerToken_
 
edm::ESGetToken< CaloTPGTranscoder, CaloTPGRecorddecoderTag_
 
std::map< std::string, TF1 > hf_nvtx_to_PU_sub_funcs
 
edm::EDGetTokenT< HcalTrigPrimDigiCollectionhfToken_
 
std::map< std::string, TF1 > hgcalEM_nvtx_to_PU_sub_funcs
 
std::map< std::string, TF1 > hgcalHad_nvtx_to_PU_sub_funcs
 
edm::EDGetTokenT< l1t::HGCalTowerBxCollectionhgcalTowerToken_
 
std::vector< double > jetCalibrationsBarrel
 
std::vector< double > jetCalibrationsHF
 
std::vector< double > jetCalibrationsHGCal
 
std::vector< double > jetPtBins
 
std::map< std::string, TF1 > nHits_to_nvtx_funcs
 
std::vector< edm::ParameterSetnHits_to_nvtx_params
 
std::vector< edm::ParameterSetnvtx_to_PU_sub_params
 
std::vector< double > tauAbsEtaBinsBarrel
 
std::vector< double > tauAbsEtaBinsHGCal
 
std::vector< double > tauCalibrationsBarrel
 
std::vector< double > tauCalibrationsHGCal
 
std::vector< double > tauPtBins
 
std::vector< std::vector< double > > tauPtCalibrationsBarrel
 
std::vector< std::vector< double > > tauPtCalibrationsHGCal
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Description: Producing GCT calo jets using GCT barrel, HGCal and HF towers, based on firmware logic.

Implementation: Depends on producers for CaloTowerCollection, HGCalTowerBxCollection and HcalTrigPrimDigiCollection.

Definition at line 56 of file Phase2L1CaloJetEmulator.cc.

Constructor & Destructor Documentation

◆ Phase2L1CaloJetEmulator()

Phase2L1CaloJetEmulator::Phase2L1CaloJetEmulator ( const edm::ParameterSet iConfig)
explicit

Definition at line 110 of file Phase2L1CaloJetEmulator.cc.

References absEtaBinsBarrel, absEtaBinsHF, absEtaBinsHGCal, all_nvtx_to_PU_sub_funcs, calibrationsBarrel, calibrationsHF, calibrationsHGCal, hf_nvtx_to_PU_sub_funcs, hgcalEM_nvtx_to_PU_sub_funcs, hgcalHad_nvtx_to_PU_sub_funcs, mps_fire::i, l1tPhase2CaloJetEmulator_cfi::iEta, jetCalibrationsBarrel, jetCalibrationsHF, jetCalibrationsHGCal, jetPtBins, nHits_to_nvtx_funcs, nHits_to_nvtx_params, nvtx_to_PU_sub_params, LaserDQM_cfg::p1, SiStripOfflineCRack_cfg::p2, muonDTDigis_cfi::pset, DiDispStaMuonMonitor_cfi::pt, AlCaHLTBitMon_QueryRunRegistry::string, tauAbsEtaBinsBarrel, tauAbsEtaBinsHGCal, tauCalibrationsBarrel, tauCalibrationsHGCal, tauPtBins, tauPtCalibrationsBarrel, tauPtCalibrationsHGCal, and parallelization::uint.

111  : caloTowerToken_(consumes<l1tp2::CaloTowerCollection>(iConfig.getParameter<edm::InputTag>("gctFullTowers"))),
112  hgcalTowerToken_(consumes<l1t::HGCalTowerBxCollection>(iConfig.getParameter<edm::InputTag>("hgcalTowers"))),
113  hfToken_(consumes<HcalTrigPrimDigiCollection>(iConfig.getParameter<edm::InputTag>("hcalDigis"))),
114  decoderTag_(esConsumes<CaloTPGTranscoder, CaloTPGRecord>(edm::ESInputTag("", ""))),
115  nHits_to_nvtx_params(iConfig.getParameter<std::vector<edm::ParameterSet>>("nHits_to_nvtx_params")),
116  nvtx_to_PU_sub_params(iConfig.getParameter<std::vector<edm::ParameterSet>>("nvtx_to_PU_sub_params")),
117  jetPtBins(iConfig.getParameter<std::vector<double>>("jetPtBins")),
118  absEtaBinsBarrel(iConfig.getParameter<std::vector<double>>("absEtaBinsBarrel")),
119  jetCalibrationsBarrel(iConfig.getParameter<std::vector<double>>("jetCalibrationsBarrel")),
120  absEtaBinsHGCal(iConfig.getParameter<std::vector<double>>("absEtaBinsHGCal")),
121  jetCalibrationsHGCal(iConfig.getParameter<std::vector<double>>("jetCalibrationsHGCal")),
122  absEtaBinsHF(iConfig.getParameter<std::vector<double>>("absEtaBinsHF")),
123  jetCalibrationsHF(iConfig.getParameter<std::vector<double>>("jetCalibrationsHF")),
124  tauPtBins(iConfig.getParameter<std::vector<double>>("tauPtBins")),
125  tauAbsEtaBinsBarrel(iConfig.getParameter<std::vector<double>>("tauAbsEtaBinsBarrel")),
126  tauCalibrationsBarrel(iConfig.getParameter<std::vector<double>>("tauCalibrationsBarrel")),
127  tauAbsEtaBinsHGCal(iConfig.getParameter<std::vector<double>>("tauAbsEtaBinsHGCal")),
128  tauCalibrationsHGCal(iConfig.getParameter<std::vector<double>>("tauCalibrationsHGCal")) {
129  for (uint i = 0; i < nHits_to_nvtx_params.size(); i++) {
131  std::string calo = pset->getParameter<std::string>("fit");
132  nHits_to_nvtx_funcs[calo.c_str()] = TF1(calo.c_str(), "[0] + [1] * x");
133  nHits_to_nvtx_funcs[calo.c_str()].SetParameter(0, pset->getParameter<std::vector<double>>("nHits_params").at(0));
134  nHits_to_nvtx_funcs[calo.c_str()].SetParameter(1, pset->getParameter<std::vector<double>>("nHits_params").at(1));
135  }
139  for (uint i = 0; i < nvtx_to_PU_sub_params.size(); i++) {
141  std::string calo = pset->getParameter<std::string>("calo");
142  std::string iEta = pset->getParameter<std::string>("iEta");
143  double p1 = pset->getParameter<std::vector<double>>("nvtx_params").at(0);
144  double p2 = pset->getParameter<std::vector<double>>("nvtx_params").at(1);
145 
146  all_nvtx_to_PU_sub_funcs[calo.c_str()][iEta.c_str()] = TF1(calo.c_str(), "[0] + [1] * x");
147  all_nvtx_to_PU_sub_funcs[calo.c_str()][iEta.c_str()].SetParameter(0, p1);
148  all_nvtx_to_PU_sub_funcs[calo.c_str()][iEta.c_str()].SetParameter(1, p2);
149  }
150 
151  // Fill the jet pt calibration 2D vector
152  // Dimension 1 is AbsEta bin
153  // Dimension 2 is jet pT bin which is filled with the actual callibration value
154  // size()-1 b/c the inputs have lower and upper bounds
155  // Do Barrel, then HGCal, then HF
156  int index = 0;
157  for (unsigned int abs_eta = 0; abs_eta < absEtaBinsBarrel.size() - 1; abs_eta++) {
158  std::vector<double> pt_bin_calibs;
159  for (unsigned int pt = 0; pt < jetPtBins.size() - 1; pt++) {
160  pt_bin_calibs.push_back(jetCalibrationsBarrel.at(index));
161  index++;
162  }
163  calibrationsBarrel.push_back(pt_bin_calibs);
164  }
165 
166  index = 0;
167  for (unsigned int abs_eta = 0; abs_eta < absEtaBinsHGCal.size() - 1; abs_eta++) {
168  std::vector<double> pt_bin_calibs;
169  for (unsigned int pt = 0; pt < jetPtBins.size() - 1; pt++) {
170  pt_bin_calibs.push_back(jetCalibrationsHGCal.at(index));
171  index++;
172  }
173  calibrationsHGCal.push_back(pt_bin_calibs);
174  }
175 
176  index = 0;
177  for (unsigned int abs_eta = 0; abs_eta < absEtaBinsHF.size() - 1; abs_eta++) {
178  std::vector<double> pt_bin_calibs;
179  for (unsigned int pt = 0; pt < jetPtBins.size() - 1; pt++) {
180  pt_bin_calibs.push_back(jetCalibrationsHF.at(index));
181  index++;
182  }
183  calibrationsHF.push_back(pt_bin_calibs);
184  }
185 
186  // Fill the tau pt calibration 2D vector
187  // Dimension 1 is AbsEta bin
188  // Dimension 2 is tau pT bin which is filled with the actual calibration value
189  // Do Barrel, then HGCal
190  //
191  // Note to future developers: be very concious of the order in which the calibrations are printed
192  // out in tool which makse the cfg files. You need to match that exactly when loading them and
193  // using the calibrations below.
194  index = 0;
195  for (unsigned int abs_eta = 0; abs_eta < tauAbsEtaBinsBarrel.size() - 1; abs_eta++) {
196  std::vector<double> pt_bin_calibs;
197  for (unsigned int pt = 0; pt < tauPtBins.size() - 1; pt++) {
198  pt_bin_calibs.push_back(tauCalibrationsBarrel.at(index));
199  index++;
200  }
201  tauPtCalibrationsBarrel.push_back(pt_bin_calibs);
202  }
203 
204  index = 0;
205  for (unsigned int abs_eta = 0; abs_eta < tauAbsEtaBinsHGCal.size() - 1; abs_eta++) {
206  std::vector<double> pt_bin_calibs;
207  for (unsigned int pt = 0; pt < tauPtBins.size() - 1; pt++) {
208  pt_bin_calibs.push_back(tauCalibrationsHGCal.at(index));
209  index++;
210  }
211  tauPtCalibrationsHGCal.push_back(pt_bin_calibs);
212  }
213 
214  produces<l1tp2::Phase2L1CaloJetCollection>("GCTJet");
215 }
std::vector< double > jetPtBins
std::map< std::string, TF1 > hgcalEM_nvtx_to_PU_sub_funcs
std::map< std::string, TF1 > hgcalHad_nvtx_to_PU_sub_funcs
std::map< std::string, std::map< std::string, TF1 > > all_nvtx_to_PU_sub_funcs
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::vector< double > tauPtBins
std::vector< double > jetCalibrationsBarrel
std::vector< std::vector< double > > calibrationsBarrel
std::map< std::string, TF1 > nHits_to_nvtx_funcs
std::vector< double > tauCalibrationsHGCal
std::vector< double > absEtaBinsHGCal
edm::EDGetTokenT< l1t::HGCalTowerBxCollection > hgcalTowerToken_
std::vector< edm::ParameterSet > nHits_to_nvtx_params
std::vector< std::vector< double > > calibrationsHGCal
std::vector< double > jetCalibrationsHF
std::vector< std::vector< double > > calibrationsHF
std::vector< double > tauAbsEtaBinsHGCal
edm::ESGetToken< CaloTPGTranscoder, CaloTPGRecord > decoderTag_
std::map< std::string, TF1 > hf_nvtx_to_PU_sub_funcs
std::vector< std::vector< double > > tauPtCalibrationsHGCal
edm::EDGetTokenT< HcalTrigPrimDigiCollection > hfToken_
std::vector< double > absEtaBinsBarrel
std::vector< double > tauCalibrationsBarrel
std::vector< double > tauAbsEtaBinsBarrel
std::vector< edm::ParameterSet > nvtx_to_PU_sub_params
std::vector< double > absEtaBinsHF
std::vector< std::vector< double > > tauPtCalibrationsBarrel
edm::EDGetTokenT< l1tp2::CaloTowerCollection > caloTowerToken_
Definition: Common.h:9
std::vector< double > jetCalibrationsHGCal

◆ ~Phase2L1CaloJetEmulator()

Phase2L1CaloJetEmulator::~Phase2L1CaloJetEmulator ( )
override

Definition at line 217 of file Phase2L1CaloJetEmulator.cc.

217 {}

Member Function Documentation

◆ fillDescriptions()

void Phase2L1CaloJetEmulator::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 798 of file Phase2L1CaloJetEmulator.cc.

References edm::ParameterSetDescription::add(), edm::ParameterSet::addParameter(), edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

798  {
800  desc.add<edm::InputTag>("gctFullTowers", edm::InputTag("l1tPhase2L1CaloEGammaEmulator", "GCTFullTowers"));
801  desc.add<edm::InputTag>("hgcalTowers", edm::InputTag("l1tHGCalTowerProducer", "HGCalTowerProcessor"));
802  desc.add<edm::InputTag>("hcalDigis", edm::InputTag("simHcalTriggerPrimitiveDigis"));
803 
804  edm::ParameterSetDescription nHits_params_validator;
805  nHits_params_validator.add<string>("fit", "type");
806  nHits_params_validator.add<vector<double>>("nHits_params", {1., 1.});
807  std::vector<edm::ParameterSet> nHits_params_default;
808  edm::ParameterSet nHits_params1;
809  nHits_params1.addParameter<string>("fit", "hgcalEM");
810  nHits_params1.addParameter<vector<double>>("nHits_params", {157.522, 0.090});
811  nHits_params_default.push_back(nHits_params1);
812  edm::ParameterSet nHits_params2;
813  nHits_params2.addParameter<string>("fit", "hgcalHad");
814  nHits_params2.addParameter<vector<double>>("nHits_params", {159.295, 0.178});
815  nHits_params_default.push_back(nHits_params2);
816  edm::ParameterSet nHits_params3;
817  nHits_params3.addParameter<string>("fit", "hf");
818  nHits_params3.addParameter<vector<double>>("nHits_params", {165.706, 0.153});
819  nHits_params_default.push_back(nHits_params3);
820  desc.addVPSet("nHits_to_nvtx_params", nHits_params_validator, nHits_params_default);
821 
822  edm::ParameterSetDescription nvtx_params_validator;
823  nvtx_params_validator.add<string>("calo", "type");
824  nvtx_params_validator.add<string>("iEta", "etaregion");
825  nvtx_params_validator.add<vector<double>>("nvtx_params", {1., 1.});
826  std::vector<edm::ParameterSet> nvtx_params_default;
827  edm::ParameterSet nvtx_params1;
828  nvtx_params1.addParameter<string>("calo", "hgcalEM");
829  nvtx_params1.addParameter<string>("iEta", "er1p4to1p8");
830  nvtx_params1.addParameter<vector<double>>("nvtx_params", {-0.011772, 0.004142});
831  nvtx_params_default.push_back(nvtx_params1);
832  edm::ParameterSet nvtx_params2;
833  nvtx_params2.addParameter<string>("calo", "hgcalEM");
834  nvtx_params2.addParameter<string>("iEta", "er1p8to2p1");
835  nvtx_params2.addParameter<vector<double>>("nvtx_params", {-0.015488, 0.005410});
836  nvtx_params_default.push_back(nvtx_params2);
837  edm::ParameterSet nvtx_params3;
838  nvtx_params3.addParameter<string>("calo", "hgcalEM");
839  nvtx_params3.addParameter<string>("iEta", "er2p1to2p4");
840  nvtx_params3.addParameter<vector<double>>("nvtx_params", {-0.021150, 0.006078});
841  nvtx_params_default.push_back(nvtx_params3);
842  edm::ParameterSet nvtx_params4;
843  nvtx_params4.addParameter<string>("calo", "hgcalEM");
844  nvtx_params4.addParameter<string>("iEta", "er2p4to2p7");
845  nvtx_params4.addParameter<vector<double>>("nvtx_params", {-0.015705, 0.005339});
846  nvtx_params_default.push_back(nvtx_params4);
847  edm::ParameterSet nvtx_params5;
848  nvtx_params5.addParameter<string>("calo", "hgcalEM");
849  nvtx_params5.addParameter<string>("iEta", "er2p7to3p1");
850  nvtx_params5.addParameter<vector<double>>("nvtx_params", {-0.018492, 0.005620});
851  nvtx_params_default.push_back(nvtx_params5);
852  edm::ParameterSet nvtx_params6;
853  nvtx_params6.addParameter<string>("calo", "hgcalHad");
854  nvtx_params6.addParameter<string>("iEta", "er1p4to1p8");
855  nvtx_params6.addParameter<vector<double>>("nvtx_params", {0.005675, 0.000615});
856  nvtx_params_default.push_back(nvtx_params6);
857  edm::ParameterSet nvtx_params7;
858  nvtx_params7.addParameter<string>("calo", "hgcalHad");
859  nvtx_params7.addParameter<string>("iEta", "er1p8to2p1");
860  nvtx_params7.addParameter<vector<double>>("nvtx_params", {0.004560, 0.001099});
861  nvtx_params_default.push_back(nvtx_params7);
862  edm::ParameterSet nvtx_params8;
863  nvtx_params8.addParameter<string>("calo", "hgcalHad");
864  nvtx_params8.addParameter<string>("iEta", "er2p1to2p4");
865  nvtx_params8.addParameter<vector<double>>("nvtx_params", {0.000036, 0.001608});
866  nvtx_params_default.push_back(nvtx_params8);
867  edm::ParameterSet nvtx_params9;
868  nvtx_params9.addParameter<string>("calo", "hgcalHad");
869  nvtx_params9.addParameter<string>("iEta", "er2p4to2p7");
870  nvtx_params9.addParameter<vector<double>>("nvtx_params", {0.000869, 0.001754});
871  nvtx_params_default.push_back(nvtx_params9);
872  edm::ParameterSet nvtx_params10;
873  nvtx_params10.addParameter<string>("calo", "hgcalHad");
874  nvtx_params10.addParameter<string>("iEta", "er2p7to3p1");
875  nvtx_params10.addParameter<vector<double>>("nvtx_params", {-0.006574, 0.003134});
876  nvtx_params_default.push_back(nvtx_params10);
877  edm::ParameterSet nvtx_params11;
878  nvtx_params11.addParameter<string>("calo", "hf");
879  nvtx_params11.addParameter<string>("iEta", "er29to33");
880  nvtx_params11.addParameter<vector<double>>("nvtx_params", {-0.203291, 0.044096});
881  nvtx_params_default.push_back(nvtx_params11);
882  edm::ParameterSet nvtx_params12;
883  nvtx_params12.addParameter<string>("calo", "hf");
884  nvtx_params12.addParameter<string>("iEta", "er34to37");
885  nvtx_params12.addParameter<vector<double>>("nvtx_params", {-0.210922, 0.045628});
886  nvtx_params_default.push_back(nvtx_params12);
887  edm::ParameterSet nvtx_params13;
888  nvtx_params13.addParameter<string>("calo", "hf");
889  nvtx_params13.addParameter<string>("iEta", "er38to41");
890  nvtx_params13.addParameter<vector<double>>("nvtx_params", {-0.229562, 0.050560});
891  nvtx_params_default.push_back(nvtx_params13);
892  desc.addVPSet("nvtx_to_PU_sub_params", nvtx_params_validator, nvtx_params_default);
893 
894  desc.add<vector<double>>("jetPtBins", {0.0, 5.0, 7.5, 10.0, 12.5, 15.0, 17.5, 20.0, 22.5, 25.0, 27.5,
895  30.0, 35.0, 40.0, 45.0, 50.0, 55.0, 60.0, 65.0, 70.0, 75.0, 80.0,
896  85.0, 90.0, 95.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 170.0,
897  180.0, 190.0, 200.0, 225.0, 250.0, 275.0, 300.0, 325.0, 400.0, 500.0});
898  desc.add<vector<double>>("absEtaBinsBarrel", {0.00, 0.30, 0.60, 1.00, 1.50});
899  desc.add<vector<double>>(
900  "jetCalibrationsBarrel",
901  {2.459, 2.320, 2.239, 2.166, 2.100, 2.040, 1.986, 1.937, 1.892, 1.852, 1.816, 1.768, 1.714, 1.670, 1.633, 1.603,
902  1.578, 1.557, 1.540, 1.525, 1.513, 1.502, 1.493, 1.486, 1.479, 1.470, 1.460, 1.452, 1.445, 1.439, 1.433, 1.427,
903  1.422, 1.417, 1.411, 1.403, 1.390, 1.377, 1.365, 1.352, 1.327, 1.284, 4.695, 3.320, 2.751, 2.361, 2.093, 1.908,
904  1.781, 1.694, 1.633, 1.591, 1.562, 1.533, 1.511, 1.499, 1.492, 1.486, 1.482, 1.478, 1.474, 1.470, 1.467, 1.463,
905  1.459, 1.456, 1.452, 1.447, 1.440, 1.433, 1.425, 1.418, 1.411, 1.404, 1.397, 1.390, 1.382, 1.370, 1.352, 1.334,
906  1.316, 1.298, 1.262, 1.200, 5.100, 3.538, 2.892, 2.448, 2.143, 1.933, 1.789, 1.689, 1.620, 1.572, 1.539, 1.506,
907  1.482, 1.469, 1.460, 1.455, 1.450, 1.446, 1.442, 1.438, 1.434, 1.431, 1.427, 1.423, 1.420, 1.414, 1.407, 1.400,
908  1.392, 1.385, 1.378, 1.370, 1.363, 1.356, 1.348, 1.336, 1.317, 1.299, 1.281, 1.263, 1.226, 1.162, 3.850, 3.438,
909  3.211, 3.017, 2.851, 2.708, 2.585, 2.479, 2.388, 2.310, 2.243, 2.159, 2.072, 2.006, 1.956, 1.917, 1.887, 1.863,
910  1.844, 1.828, 1.814, 1.802, 1.791, 1.782, 1.773, 1.760, 1.744, 1.729, 1.714, 1.699, 1.685, 1.670, 1.656, 1.641,
911  1.627, 1.602, 1.566, 1.530, 1.494, 1.458, 1.386, 1.260});
912  desc.add<vector<double>>("absEtaBinsHGCal", {1.50, 1.90, 2.40, 3.00});
913  desc.add<vector<double>>(
914  "jetCalibrationsHGCal",
915  {5.604, 4.578, 4.061, 3.647, 3.314, 3.047, 2.832, 2.660, 2.521, 2.410, 2.320, 2.216, 2.120, 2.056,
916  2.013, 1.983, 1.961, 1.945, 1.932, 1.922, 1.913, 1.905, 1.898, 1.891, 1.884, 1.874, 1.861, 1.848,
917  1.835, 1.822, 1.810, 1.797, 1.784, 1.771, 1.759, 1.736, 1.704, 1.673, 1.641, 1.609, 1.545, 1.434,
918  4.385, 3.584, 3.177, 2.849, 2.584, 2.370, 2.197, 2.057, 1.944, 1.853, 1.780, 1.695, 1.616, 1.564,
919  1.530, 1.507, 1.491, 1.480, 1.472, 1.466, 1.462, 1.459, 1.456, 1.453, 1.451, 1.447, 1.443, 1.439,
920  1.435, 1.431, 1.427, 1.423, 1.419, 1.416, 1.412, 1.405, 1.395, 1.385, 1.376, 1.366, 1.346, 1.312,
921  562.891, 68.647, 17.648, 5.241, 2.223, 1.490, 1.312, 1.270, 1.260, 1.259, 1.259, 1.260, 1.263, 1.265,
922  1.267, 1.269, 1.271, 1.273, 1.275, 1.277, 1.279, 1.281, 1.283, 1.285, 1.287, 1.290, 1.295, 1.299,
923  1.303, 1.307, 1.311, 1.315, 1.319, 1.323, 1.328, 1.335, 1.345, 1.355, 1.366, 1.376, 1.397, 1.433});
924  desc.add<vector<double>>("absEtaBinsHF", {3.00, 3.60, 6.00});
925  desc.add<vector<double>>(
926  "jetCalibrationsHF",
927  {8.169, 6.873, 6.155, 5.535, 5.001, 4.539, 4.141, 3.798, 3.501, 3.245, 3.024, 2.748, 2.463, 2.249,
928  2.090, 1.971, 1.881, 1.814, 1.763, 1.725, 1.695, 1.673, 1.655, 1.642, 1.631, 1.618, 1.605, 1.596,
929  1.588, 1.581, 1.575, 1.569, 1.563, 1.557, 1.551, 1.541, 1.527, 1.513, 1.498, 1.484, 1.456, 1.406,
930  2.788, 2.534, 2.388, 2.258, 2.141, 2.037, 1.945, 1.862, 1.788, 1.722, 1.664, 1.587, 1.503, 1.436,
931  1.382, 1.339, 1.305, 1.277, 1.255, 1.237, 1.223, 1.211, 1.201, 1.193, 1.186, 1.178, 1.170, 1.164,
932  1.159, 1.154, 1.151, 1.147, 1.144, 1.141, 1.138, 1.133, 1.126, 1.118, 1.111, 1.104, 1.090, 1.064});
933  desc.add<vector<double>>("tauPtBins", {0.0, 5.0, 7.5, 10.0, 12.5, 15.0, 20.0, 25.0, 30.0, 35.0,
934  40.0, 45.0, 50.0, 55.0, 60.0, 70.0, 80.0, 100.0, 150.0, 200.0});
935  desc.add<vector<double>>("tauAbsEtaBinsBarrel", {0.00, 0.30, 0.60, 1.00, 1.50});
936  desc.add<vector<double>>("tauCalibrationsBarrel",
937  {1.067, 1.067, 1.067, 1.067, 1.067, 1.067, 1.067, 1.067, 1.067, 1.067, 1.067, 1.067, 1.067,
938  1.067, 1.067, 1.067, 1.067, 1.067, 1.067, 1.106, 1.106, 1.106, 1.106, 1.106, 1.106, 1.106,
939  1.106, 1.106, 1.106, 1.106, 1.106, 1.106, 1.106, 1.106, 1.106, 1.106, 1.106, 1.106, 1.102,
940  1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102,
941  1.102, 1.102, 1.102, 1.102, 1.102, 1.139, 1.139, 1.139, 1.139, 1.139, 1.139, 1.139, 1.139});
942  desc.add<vector<double>>("tauAbsEtaBinsHGCal", {1.50, 1.90, 2.40, 3.00});
943  desc.add<vector<double>>(
944  "tauCalibrationsHGCal",
945  {1.384, 1.384, 1.384, 1.384, 1.384, 1.384, 1.384, 1.384, 1.384, 1.384, 1.384, 1.384, 1.384, 1.384, 1.384,
946  1.384, 1.384, 1.384, 1.384, 1.473, 1.473, 1.473, 1.473, 1.473, 1.473, 1.473, 1.473, 1.473, 1.473, 1.473,
947  1.473, 1.473, 1.473, 1.473, 1.473, 1.473, 1.473, 1.473, 1.133, 1.133, 1.133, 1.133, 1.133, 1.133, 1.133,
948  1.133, 1.133, 1.133, 1.133, 1.133, 1.133, 1.133, 1.133, 1.133, 1.133, 1.133, 1.133});
949 
950  descriptions.addWithDefaultLabel(desc);
951 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:136
ParameterDescriptionBase * add(U const &iLabel, T const &value)

◆ get_jet_pt_calibration()

float Phase2L1CaloJetEmulator::get_jet_pt_calibration ( const float &  jet_pt,
const float &  jet_eta 
) const
private

Definition at line 688 of file Phase2L1CaloJetEmulator.cc.

References funct::abs(), absEtaBinsBarrel, absEtaBinsHF, absEtaBinsHGCal, l1tEGammaCrystalsEmulatorProducer_cfi::calib, calibrationsBarrel, calibrationsHF, calibrationsHGCal, mps_fire::i, and jetPtBins.

Referenced by produce().

688  {
689  float abs_eta = std::abs(jet_eta);
690  float tmp_jet_pt = jet_pt;
691  if (tmp_jet_pt > 499)
692  tmp_jet_pt = 499;
693 
694  // Different indices sizes in different calo regions.
695  // Barrel...
696  size_t eta_index = 0;
697  size_t pt_index = 0;
698  float calib = 1.0;
699  if (abs_eta <= 1.5) {
700  // Start loop checking 2nd value
701  for (unsigned int i = 1; i < absEtaBinsBarrel.size(); i++) {
702  if (abs_eta <= absEtaBinsBarrel.at(i))
703  break;
704  eta_index++;
705  }
706  // Start loop checking 2nd value
707  for (unsigned int i = 1; i < jetPtBins.size(); i++) {
708  if (tmp_jet_pt <= jetPtBins.at(i))
709  break;
710  pt_index++;
711  }
712  calib = calibrationsBarrel[eta_index][pt_index];
713  } // end Barrel
714  else if (abs_eta <= 3.0) // HGCal
715  {
716  // Start loop checking 2nd value
717  for (unsigned int i = 1; i < absEtaBinsHGCal.size(); i++) {
718  if (abs_eta <= absEtaBinsHGCal.at(i))
719  break;
720  eta_index++;
721  }
722  // Start loop checking 2nd value
723  for (unsigned int i = 1; i < jetPtBins.size(); i++) {
724  if (tmp_jet_pt <= jetPtBins.at(i))
725  break;
726  pt_index++;
727  }
728  calib = calibrationsHGCal[eta_index][pt_index];
729  } // end HGCal
730  else // HF
731  {
732  // Start loop checking 2nd value
733  for (unsigned int i = 1; i < absEtaBinsHF.size(); i++) {
734  if (abs_eta <= absEtaBinsHF.at(i))
735  break;
736  eta_index++;
737  }
738  // Start loop checking 2nd value
739  for (unsigned int i = 1; i < jetPtBins.size(); i++) {
740  if (tmp_jet_pt <= jetPtBins.at(i))
741  break;
742  pt_index++;
743  }
744  calib = calibrationsHF[eta_index][pt_index];
745  } // end HF
746 
747  return jet_pt * calib;
748 }
std::vector< double > jetPtBins
std::vector< std::vector< double > > calibrationsBarrel
std::vector< double > absEtaBinsHGCal
std::vector< std::vector< double > > calibrationsHGCal
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::vector< std::vector< double > > calibrationsHF
std::vector< double > absEtaBinsBarrel
std::vector< double > absEtaBinsHF

◆ get_tau_pt_calibration()

float Phase2L1CaloJetEmulator::get_tau_pt_calibration ( const float &  tau_pt,
const float &  tau_eta 
) const
private

Definition at line 751 of file Phase2L1CaloJetEmulator.cc.

References funct::abs(), l1tEGammaCrystalsEmulatorProducer_cfi::calib, mps_fire::i, runTauDisplay::tau_eta, runTauDisplay::tau_pt, tauAbsEtaBinsBarrel, tauAbsEtaBinsHGCal, tauPtBins, tauPtCalibrationsBarrel, and tauPtCalibrationsHGCal.

Referenced by produce().

751  {
752  float abs_eta = std::abs(tau_eta);
753  float tmp_tau_pt = tau_pt;
754  if (tmp_tau_pt > 199)
755  tmp_tau_pt = 199;
756 
757  // Different indices sizes in different calo regions.
758  // Barrel...
759  size_t eta_index = 0;
760  size_t pt_index = 0;
761  float calib = 1.0;
762  if (abs_eta <= 1.5) {
763  // Start loop checking 2nd value
764  for (unsigned int i = 1; i < tauAbsEtaBinsBarrel.size(); i++) {
765  if (abs_eta <= tauAbsEtaBinsBarrel.at(i))
766  break;
767  eta_index++;
768  }
769  // Start loop checking 2nd value
770  for (unsigned int i = 1; i < tauPtBins.size(); i++) {
771  if (tmp_tau_pt <= tauPtBins.at(i))
772  break;
773  pt_index++;
774  }
775  calib = tauPtCalibrationsBarrel[eta_index][pt_index];
776  } // end Barrel
777  else if (abs_eta <= 3.0) // HGCal
778  {
779  // Start loop checking 2nd value
780  for (unsigned int i = 1; i < tauAbsEtaBinsHGCal.size(); i++) {
781  if (abs_eta <= tauAbsEtaBinsHGCal.at(i))
782  break;
783  eta_index++;
784  }
785  // Start loop checking 2nd value
786  for (unsigned int i = 1; i < tauPtBins.size(); i++) {
787  if (tmp_tau_pt <= tauPtBins.at(i))
788  break;
789  pt_index++;
790  }
791  calib = tauPtCalibrationsHGCal[eta_index][pt_index];
792  } // end HGCal
793 
794  return tau_pt * calib;
795 }
std::vector< double > tauPtBins
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::vector< double > tauAbsEtaBinsHGCal
std::vector< std::vector< double > > tauPtCalibrationsHGCal
std::vector< double > tauAbsEtaBinsBarrel
std::vector< std::vector< double > > tauPtCalibrationsBarrel

◆ produce()

void Phase2L1CaloJetEmulator::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 224 of file Phase2L1CaloJetEmulator.cc.

References funct::abs(), all_nvtx_to_PU_sub_funcs, reco::JetExtendedAssociation::allJets(), BXVector< T >::begin(), caloTowerToken_, gctobj::compareByEt(), decoderTag_, BXVector< T >::end(), HBHEDarkening_cff::energy, l1tnanotables_cff::et, PVValHelper::eta, get_jet_pt_calibration(), get_tau_pt_calibration(), edm::EventSetup::getData(), gctobj::getRegion(), hfToken_, l1tPhase2CaloJetEmulator_cff::hgcalTowers, hgcalTowerToken_, mps_fire::i, hit::id, hcalRecHitTable_cff::ieta, iEvent, hcalRecHitTable_cff::iphi, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, dqmiolumiharvest::j, metsig::jet, l1tp2::Phase2L1CaloJet::jetEt(), l1tp2::Phase2L1CaloJet::jetEta(), l1tp2::Phase2L1CaloJet::jetPhi(), isotrackApplyRegressor::k, l1t::CaloTools::kHFBegin, l1t::CaloTools::kHFEnd, M_PI, gctobj::makeST(), gctobj::makeST_hf(), gctobj::makeST_hgcal(), eostools::move(), nBarrelEta, nBarrelPhi, nHfEta, nHfPhi, nHgcalEta, nHgcalPhi, nHits_to_nvtx_funcs, nJets, nSTEta, nSTPhi, edm::Handle< T >::product(), l1tp2::Phase2L1CaloJet::setJetEt(), l1tp2::Phase2L1CaloJet::setJetEta(), l1tp2::Phase2L1CaloJet::setJetIEta(), l1tp2::Phase2L1CaloJet::setJetIPhi(), l1tp2::Phase2L1CaloJet::setJetPhi(), reco::LeafCandidate::setP4(), l1tp2::Phase2L1CaloJet::setTauEt(), l1tp2::Phase2L1CaloJet::setTowerEt(), l1tp2::Phase2L1CaloJet::setTowerEta(), l1tp2::Phase2L1CaloJet::setTowerIEta(), l1tp2::Phase2L1CaloJet::setTowerIPhi(), l1tp2::Phase2L1CaloJet::setTowerPhi(), jetUpdater_cfi::sort, AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, l1t::CaloTools::towerEta(), and l1t::CaloTools::towerPhi().

224  {
225  using namespace edm;
226  std::unique_ptr<l1tp2::Phase2L1CaloJetCollection> jetCands(make_unique<l1tp2::Phase2L1CaloJetCollection>());
227 
228  // Assign ETs to each eta-half of the barrel region (17x72 --> 18x72 to be able to make 3x3 super towers)
229  edm::Handle<std::vector<l1tp2::CaloTower>> caloTowerCollection;
230  if (!iEvent.getByToken(caloTowerToken_, caloTowerCollection))
231  edm::LogError("Phase2L1CaloJetEmulator") << "Failed to get towers from caloTowerCollection!";
232 
233  iEvent.getByToken(caloTowerToken_, caloTowerCollection);
234  float GCTintTowers[nBarrelEta][nBarrelPhi];
235  float realEta[nBarrelEta][nBarrelPhi];
236  float realPhi[nBarrelEta][nBarrelPhi];
237  for (const l1tp2::CaloTower& i : *caloTowerCollection) {
238  int ieta = i.towerIEta();
239  int iphi = i.towerIPhi();
240  if (i.ecalTowerEt() > 1.)
241  GCTintTowers[ieta][iphi] = i.ecalTowerEt(); // suppress <= 1 GeV towers
242  else
243  GCTintTowers[ieta][iphi] = 0;
244  realEta[ieta][iphi] = i.towerEta();
245  realPhi[ieta][iphi] = i.towerPhi();
246  }
247 
248  float temporary[nBarrelEta / 2][nBarrelPhi];
249 
250  // HGCal and HF info used for nvtx estimation
251  edm::Handle<l1t::HGCalTowerBxCollection> hgcalTowerCollection;
252  if (!iEvent.getByToken(hgcalTowerToken_, hgcalTowerCollection))
253  edm::LogError("Phase2L1CaloJetEmulator") << "Failed to get towers from hgcalTowerCollection!";
254  l1t::HGCalTowerBxCollection hgcalTowerColl;
255  iEvent.getByToken(hgcalTowerToken_, hgcalTowerCollection);
256  hgcalTowerColl = (*hgcalTowerCollection.product());
257 
259  if (!iEvent.getByToken(hfToken_, hfHandle))
260  edm::LogError("Phase2L1CaloJetEmulator") << "Failed to get HcalTrigPrimDigi for HF!";
261  iEvent.getByToken(hfToken_, hfHandle);
262 
263  int i_hgcalEM_hits_leq_threshold = 0;
264  int i_hgcalHad_hits_leq_threshold = 0;
265  int i_hf_hits_leq_threshold = 0;
266  for (auto it = hgcalTowerColl.begin(0); it != hgcalTowerColl.end(0); it++) {
267  if (it->etEm() <= 1.75 && it->etEm() >= 1.25) {
268  i_hgcalEM_hits_leq_threshold++;
269  }
270  if (it->etHad() <= 1.25 && it->etHad() >= 0.75) {
271  i_hgcalHad_hits_leq_threshold++;
272  }
273  }
274  const auto& decoder = iSetup.getData(decoderTag_);
275  for (const auto& hit : *hfHandle.product()) {
276  double et = decoder.hcaletValue(hit.id(), hit.t0());
277  if (abs(hit.id().ieta()) < l1t::CaloTools::kHFBegin)
278  continue;
279  if (abs(hit.id().ieta()) > l1t::CaloTools::kHFEnd)
280  continue;
281  if (et <= 15.0 && et >= 10.0)
282  i_hf_hits_leq_threshold++;
283  }
284 
285  double hgcalEM_nvtx = nHits_to_nvtx_funcs["hgcalEM"].Eval(i_hgcalEM_hits_leq_threshold);
286  if (hgcalEM_nvtx < 0)
287  hgcalEM_nvtx = 0;
288  double hgcalHad_nvtx = nHits_to_nvtx_funcs["hgcalHad"].Eval(i_hgcalHad_hits_leq_threshold);
289  if (hgcalHad_nvtx < 0)
290  hgcalHad_nvtx = 0;
291  double hf_nvtx = nHits_to_nvtx_funcs["hf"].Eval(i_hf_hits_leq_threshold);
292  if (hf_nvtx < 0)
293  hf_nvtx = 0;
294  double EstimatedNvtx = (hgcalEM_nvtx + hgcalHad_nvtx + hf_nvtx) / 3.;
295 
296  // Assign ETs to each eta-half of the endcap region (18x72)
298  float hgcalEta[nHgcalEta][nHgcalPhi];
299  float hgcalPhi[nHgcalEta][nHgcalPhi];
300 
301  for (int iphi = 0; iphi < nHgcalPhi; iphi++) {
302  for (int ieta = 0; ieta < nHgcalEta; ieta++) {
303  hgcalTowers[ieta][iphi] = 0;
304  if (ieta < nHgcalEta / 2)
305  hgcalEta[ieta][iphi] = -3.045 + ieta * 0.087 + 0.0435;
306  else
307  hgcalEta[ieta][iphi] = 1.479 + (ieta - nHgcalEta / 2) * 0.087 + 0.0435;
308  hgcalPhi[ieta][iphi] = -M_PI + (iphi * 2 * M_PI / nHgcalPhi) + (M_PI / nHgcalPhi);
309  }
310  }
311 
312  for (auto it = hgcalTowerColl.begin(0); it != hgcalTowerColl.end(0); it++) {
313  float eta = it->eta();
314  int ieta;
315  if (eta < 0)
316  ieta = 19 - it->id().iEta();
317  else
318  ieta = 20 + it->id().iEta();
319  if (eta > 1.479)
320  ieta = ieta - 4;
321  int iphi = it->id().iPhi();
322 
323  float hgcal_etEm = it->etEm();
324  float hgcal_etHad = it->etHad();
325  std::string etaKey = "";
326  if (abs(eta) <= 1.8)
327  etaKey = "er1p4to1p8";
328  else if (abs(eta) <= 2.1 && abs(eta) > 1.8)
329  etaKey = "er1p8to2p1";
330  else if (abs(eta) <= 2.4 && abs(eta) > 2.1)
331  etaKey = "er2p1to2p4";
332  else if (abs(eta) <= 2.7 && abs(eta) > 2.4)
333  etaKey = "er2p4to2p7";
334  else if (abs(eta) <= 3.1 && abs(eta) > 2.7)
335  etaKey = "er2p7to3p1";
336  if (!etaKey.empty()) {
337  hgcal_etEm = it->etEm() - all_nvtx_to_PU_sub_funcs["hgcalEM"][etaKey].Eval(EstimatedNvtx);
338  hgcal_etHad = it->etHad() - all_nvtx_to_PU_sub_funcs["hgcalHad"][etaKey].Eval(EstimatedNvtx);
339  }
340 
341  if (hgcal_etEm < 0)
342  hgcal_etEm = 0;
343  if (hgcal_etHad < 0)
344  hgcal_etHad = 0;
345  if ((it->etEm() + it->etHad() > 1.) && abs(eta) > 1.479)
346  hgcalTowers[ieta][iphi] = hgcal_etEm + hgcal_etHad; // suppress <= 1 GeV towers
347  }
348 
349  float temporary_hgcal[nHgcalEta / 2][nHgcalPhi];
350 
351  // Assign ETs to each eta-half of the forward region (12x72)
352  float hfTowers[2 * nHfEta][nHfPhi]; // split 12 -> 24
353  float hfEta[nHfEta][nHfPhi];
354  float hfPhi[nHfEta][nHfPhi];
355  for (int iphi = 0; iphi < nHfPhi; iphi++) {
356  for (int ieta = 0; ieta < nHfEta; ieta++) {
357  hfTowers[2 * ieta][iphi] = 0;
358  hfTowers[2 * ieta + 1][iphi] = 0;
359  int temp;
360  if (ieta < nHfEta / 2)
362  else
365  hfPhi[ieta][iphi] = l1t::CaloTools::towerPhi(temp, iphi + 1);
366  }
367  }
368 
369  for (const auto& hit : *hfHandle.product()) {
370  double et = decoder.hcaletValue(hit.id(), hit.t0());
371  int ieta = 0;
372  if (abs(hit.id().ieta()) < l1t::CaloTools::kHFBegin)
373  continue;
374  if (abs(hit.id().ieta()) > l1t::CaloTools::kHFEnd)
375  continue;
376  if (hit.id().ieta() <= -(l1t::CaloTools::kHFBegin + 1)) {
377  ieta = hit.id().ieta() + l1t::CaloTools::kHFEnd;
378  } else if (hit.id().ieta() >= (l1t::CaloTools::kHFBegin + 1)) {
379  ieta = nHfEta / 2 + (hit.id().ieta() - (l1t::CaloTools::kHFBegin + 1));
380  }
381  int iphi = hit.id().iphi() - 1; // HF phi runs between 1-72
382  if (abs(hit.id().ieta()) <= 33 && abs(hit.id().ieta()) >= 29)
383  et = et - all_nvtx_to_PU_sub_funcs["hf"]["er29to33"].Eval(EstimatedNvtx);
384  if (abs(hit.id().ieta()) <= 37 && abs(hit.id().ieta()) >= 34)
385  et = et - all_nvtx_to_PU_sub_funcs["hf"]["er34to37"].Eval(EstimatedNvtx);
386  if (abs(hit.id().ieta()) <= 41 && abs(hit.id().ieta()) >= 38)
387  et = et - all_nvtx_to_PU_sub_funcs["hf"]["er38to41"].Eval(EstimatedNvtx);
388  if (et < 0)
389  et = 0;
390  // split tower energy
391  hfTowers[2 * ieta][iphi] = et / 2;
392  hfTowers[2 * ieta + 1][iphi] = et / 2;
393  if ((ieta < 2 || ieta >= nHfEta - 2) && iphi % 4 == 2) {
394  hfTowers[2 * ieta][iphi] = et / 8;
395  hfTowers[2 * ieta + 1][iphi] = et / 8;
396  hfTowers[2 * ieta][iphi + 1] = et / 8;
397  hfTowers[2 * ieta + 1][iphi + 1] = et / 8;
398  if (iphi + 2 == nHfPhi) {
399  hfTowers[2 * ieta][0] = et / 8;
400  hfTowers[2 * ieta + 1][0] = et / 8;
401  hfTowers[2 * ieta][1] = et / 8;
402  hfTowers[2 * ieta + 1][1] = et / 8;
403  } else {
404  hfTowers[2 * ieta][iphi + 2] = et / 8;
405  hfTowers[2 * ieta + 1][iphi + 2] = et / 8;
406  hfTowers[2 * ieta][iphi + 3] = et / 8;
407  hfTowers[2 * ieta + 1][iphi + 3] = et / 8;
408  }
409  } else if ((ieta >= 2 && ieta < nHfEta - 2) && iphi % 2 == 0) {
410  hfTowers[2 * ieta][iphi] = et / 4;
411  hfTowers[2 * ieta + 1][iphi] = et / 4;
412  hfTowers[2 * ieta][iphi + 1] = et / 4;
413  hfTowers[2 * ieta + 1][iphi + 1] = et / 4;
414  }
415  }
416 
417  float temporary_hf[nHfEta][nHfPhi];
418 
419  // Begin creating jets
420  // First create 3x3 super towers: 6x24 in barrel, endcap; 4x24 in forward
421  // Then create up to 10 jets in each eta half of barrel, endcap, forward regions
422 
423  vector<l1tp2::Phase2L1CaloJet> halfBarrelJets, halfHgcalJets, halfHfJets;
424  halfBarrelJets.clear();
425  halfHgcalJets.clear();
426  halfHfJets.clear();
427  vector<l1tp2::Phase2L1CaloJet> allJets;
428  allJets.clear();
429 
430  for (int k = 0; k < 2; k++) {
431  halfBarrelJets.clear();
432  halfHgcalJets.clear();
433  halfHfJets.clear();
435 
436  // BARREL
437  for (int iphi = 0; iphi < nBarrelPhi; iphi++) {
438  for (int ieta = 0; ieta < nBarrelEta / 2; ieta++) {
439  if (k == 0)
440  temporary[ieta][iphi] = GCTintTowers[ieta][iphi];
441  else
442  temporary[ieta][iphi] = GCTintTowers[nBarrelEta / 2 + ieta][iphi];
443  }
444  }
445 
447  gctobj::makeST(temporary, tempST);
448  float TTseedThresholdBarrel = 5.;
449 
450  for (int i = 0; i < nJets; i++) {
451  jet[i] = gctobj::getRegion(tempST, TTseedThresholdBarrel);
452  l1tp2::Phase2L1CaloJet tempJet;
453  int gctjeteta = jet[i].etaCenter;
454  int gctjetphi = jet[i].phiCenter;
455  tempJet.setJetIEta(gctjeteta + k * nBarrelEta / 2);
456  tempJet.setJetIPhi(gctjetphi);
457  float jeteta = realEta[gctjeteta + k * nBarrelEta / 2][gctjetphi];
458  float jetphi = realPhi[gctjeteta + k * nBarrelEta / 2][gctjetphi];
459  tempJet.setJetEta(jeteta);
460  tempJet.setJetPhi(jetphi);
461  tempJet.setJetEt(get_jet_pt_calibration(jet[i].energy, jeteta));
462  tempJet.setTauEt(get_tau_pt_calibration(jet[i].tauEt, jeteta));
463  tempJet.setTowerEt(jet[i].energyMax);
464  int gcttowereta = jet[i].etaMax;
465  int gcttowerphi = jet[i].phiMax;
466  tempJet.setTowerIEta(gcttowereta + k * nBarrelEta / 2);
467  tempJet.setTowerIPhi(gcttowerphi);
468  float towereta = realEta[gcttowereta + k * nBarrelEta / 2][gcttowerphi];
469  float towerphi = realPhi[gcttowereta + k * nBarrelEta / 2][gcttowerphi];
470  tempJet.setTowerEta(towereta);
471  tempJet.setTowerPhi(towerphi);
473  tempJetp4.SetPt(tempJet.jetEt());
474  tempJetp4.SetEta(tempJet.jetEta());
475  tempJetp4.SetPhi(tempJet.jetPhi());
476  tempJetp4.SetM(0.);
477  tempJet.setP4(tempJetp4);
478 
479  if (jet[i].energy > 0.)
480  halfBarrelJets.push_back(tempJet);
481  }
482 
483  // ENDCAP
484  for (int iphi = 0; iphi < nHgcalPhi; iphi++) {
485  for (int ieta = 0; ieta < nHgcalEta / 2; ieta++) {
486  if (k == 0)
487  temporary_hgcal[ieta][iphi] = hgcalTowers[ieta][iphi];
488  else
489  temporary_hgcal[ieta][iphi] = hgcalTowers[nHgcalEta / 2 + ieta][iphi];
490  }
491  }
492 
493  gctobj::GCTsupertower_t tempST_hgcal[nSTEta][nSTPhi];
494  gctobj::makeST_hgcal(temporary_hgcal, tempST_hgcal);
495  float TTseedThresholdEndcap = 3.;
496  for (int i = nJets; i < 2 * nJets; i++) {
497  jet[i] = gctobj::getRegion(tempST_hgcal, TTseedThresholdEndcap);
498  l1tp2::Phase2L1CaloJet tempJet;
499  int hgcaljeteta = jet[i].etaCenter;
500  int hgcaljetphi = jet[i].phiCenter;
501  tempJet.setJetIEta(hgcaljeteta + k * nHgcalEta / 2);
502  tempJet.setJetIPhi(hgcaljetphi);
503  float jeteta = hgcalEta[hgcaljeteta + k * nHgcalEta / 2][hgcaljetphi];
504  float jetphi = hgcalPhi[hgcaljeteta + k * nHgcalEta / 2][hgcaljetphi];
505  tempJet.setJetEta(jeteta);
506  tempJet.setJetPhi(jetphi);
507  tempJet.setJetEt(get_jet_pt_calibration(jet[i].energy, jeteta));
508  tempJet.setTauEt(get_tau_pt_calibration(jet[i].tauEt, jeteta));
509  tempJet.setTowerEt(jet[i].energyMax);
510  int hgcaltowereta = jet[i].etaMax;
511  int hgcaltowerphi = jet[i].phiMax;
512  tempJet.setTowerIEta(hgcaltowereta + k * nHgcalEta / 2);
513  tempJet.setTowerIPhi(hgcaltowerphi);
514  float towereta = hgcalEta[hgcaltowereta + k * nHgcalEta / 2][hgcaltowerphi];
515  float towerphi = hgcalPhi[hgcaltowereta + k * nHgcalEta / 2][hgcaltowerphi];
516  tempJet.setTowerEta(towereta);
517  tempJet.setTowerPhi(towerphi);
519  tempJetp4.SetPt(tempJet.jetEt());
520  tempJetp4.SetEta(tempJet.jetEta());
521  tempJetp4.SetPhi(tempJet.jetPhi());
522  tempJetp4.SetM(0.);
523  tempJet.setP4(tempJetp4);
524 
525  if (jet[i].energy > 0.)
526  halfHgcalJets.push_back(tempJet);
527  }
528 
529  // HF
530  for (int iphi = 0; iphi < nHfPhi; iphi++) {
531  for (int ieta = 0; ieta < nHfEta; ieta++) {
532  if (k == 0)
533  temporary_hf[ieta][iphi] = hfTowers[ieta][iphi];
534  else
535  temporary_hf[ieta][iphi] = hfTowers[nHfEta + ieta][iphi];
536  }
537  }
538 
540  gctobj::makeST_hf(temporary_hf, tempST_hf);
541  float TTseedThresholdHF = 3.;
542  for (int i = 2 * nJets; i < 3 * nJets; i++) {
543  jet[i] = gctobj::getRegion(tempST_hf, TTseedThresholdHF);
544  l1tp2::Phase2L1CaloJet tempJet;
545  int hfjeteta = jet[i].etaCenter / 2; // 24 -> 12 towers
546  int hfjetphi = jet[i].phiCenter;
547  tempJet.setJetIEta(hfjeteta + k * nHfEta / 2);
548  tempJet.setJetIPhi(hfjetphi);
549  float jeteta = hfEta[hfjeteta + k * nHfEta / 2][hfjetphi];
550  float jetphi = hfPhi[hfjeteta + k * nHfEta / 2][hfjetphi];
551  tempJet.setJetEta(jeteta);
552  tempJet.setJetPhi(jetphi);
553  tempJet.setJetEt(get_jet_pt_calibration(jet[i].energy, jeteta));
554  tempJet.setTauEt(get_tau_pt_calibration(jet[i].tauEt, jeteta));
555  tempJet.setTowerEt(jet[i].energyMax);
556  int hftowereta = jet[i].etaMax / 2; // 24 -> 12 towers
557  int hftowerphi = jet[i].phiMax;
558  tempJet.setTowerIEta(hftowereta + k * nHfEta / 2);
559  tempJet.setTowerIPhi(hftowerphi);
560  float towereta = hfEta[hftowereta + k * nHfEta / 2][hftowerphi];
561  float towerphi = hfPhi[hftowereta + k * nHfEta / 2][hftowerphi];
562  tempJet.setTowerEta(towereta);
563  tempJet.setTowerPhi(towerphi);
565  tempJetp4.SetPt(tempJet.jetEt());
566  tempJetp4.SetEta(tempJet.jetEta());
567  tempJetp4.SetPhi(tempJet.jetPhi());
568  tempJetp4.SetM(0.);
569  tempJet.setP4(tempJetp4);
570 
571  if (jet[i].energy > 0.)
572  halfHfJets.push_back(tempJet);
573  }
574 
575  // Stitching:
576  // if the jet eta is at the boundary: for HB it should be within 0-1 in -ve eta, 32-33 in +ve eta; for HE it should be within 0-1/16-17 in -ve eta, 34-35/18-19 in +ve eta; for HF it should be within 10-11 in -ve eta, 12-13 in +ve eta
577  // then get the phi of that jet and check if there is a neighbouring jet with the same phi, then merge to the jet that has higher ET
578  // in both eta/phi allow a maximum of one tower between jet centers for stitching
579 
580  for (size_t i = 0; i < halfHgcalJets.size(); i++) {
581  if (halfHgcalJets.at(i).jetIEta() >= (nHgcalEta / 2 - 2) && halfHgcalJets.at(i).jetIEta() < (nHgcalEta / 2 + 2)) {
582  float hgcal_ieta = k * nBarrelEta + halfHgcalJets.at(i).jetIEta();
583  for (size_t j = 0; j < halfBarrelJets.size(); j++) {
584  float barrel_ieta = nHgcalEta / 2 + halfBarrelJets.at(j).jetIEta();
585  if (abs(barrel_ieta - hgcal_ieta) <= 2 &&
586  abs(halfBarrelJets.at(j).jetIPhi() - halfHgcalJets.at(i).jetIPhi()) <= 2) {
587  float totalet = halfBarrelJets.at(j).jetEt() + halfHgcalJets.at(i).jetEt();
588  float totalTauEt = halfBarrelJets.at(j).tauEt() + halfHgcalJets.at(i).tauEt();
589  if (halfBarrelJets.at(j).jetEt() > halfHgcalJets.at(i).jetEt()) {
590  halfHgcalJets.at(i).setJetEt(0.);
591  halfHgcalJets.at(i).setTauEt(0.);
592  halfBarrelJets.at(j).setJetEt(totalet);
593  halfBarrelJets.at(j).setTauEt(totalTauEt);
595  tempJetp4.SetPt(totalet);
596  tempJetp4.SetEta(halfBarrelJets.at(j).jetEta());
597  tempJetp4.SetPhi(halfBarrelJets.at(j).jetPhi());
598  tempJetp4.SetM(0.);
599  halfBarrelJets.at(j).setP4(tempJetp4);
600  } else {
601  halfHgcalJets.at(i).setJetEt(totalet);
602  halfHgcalJets.at(i).setTauEt(totalTauEt);
603  halfBarrelJets.at(j).setJetEt(0.);
604  halfBarrelJets.at(j).setTauEt(0.);
606  tempJetp4.SetPt(totalet);
607  tempJetp4.SetEta(halfHgcalJets.at(i).jetEta());
608  tempJetp4.SetPhi(halfHgcalJets.at(i).jetPhi());
609  tempJetp4.SetM(0.);
610  halfHgcalJets.at(i).setP4(tempJetp4);
611  }
612  }
613  }
614  } else if (halfHgcalJets.at(i).jetIEta() < 2 || halfHgcalJets.at(i).jetIEta() >= (nHgcalEta - 2)) {
615  float hgcal_ieta = k * nBarrelEta + nHfEta / 2 + halfHgcalJets.at(i).jetIEta();
616  for (size_t j = 0; j < halfHfJets.size(); j++) {
617  float hf_ieta = k * nBarrelEta + k * nHgcalEta + halfHfJets.at(j).jetIEta();
618  if (abs(hgcal_ieta - hf_ieta) < 3 && abs(halfHfJets.at(j).jetIPhi() - halfHgcalJets.at(i).jetIPhi()) < 3) {
619  float totalet = halfHfJets.at(j).jetEt() + halfHgcalJets.at(i).jetEt();
620  float totalTauEt = halfHfJets.at(j).tauEt() + halfHgcalJets.at(i).tauEt();
621  if (halfHfJets.at(j).jetEt() > halfHgcalJets.at(i).jetEt()) {
622  halfHgcalJets.at(i).setJetEt(0.);
623  halfHgcalJets.at(i).setTauEt(0.);
624  halfHfJets.at(j).setJetEt(totalet);
625  halfHfJets.at(j).setTauEt(totalTauEt);
627  tempJetp4.SetPt(totalet);
628  tempJetp4.SetEta(halfHfJets.at(j).jetEta());
629  tempJetp4.SetPhi(halfHfJets.at(j).jetPhi());
630  tempJetp4.SetM(0.);
631  halfHfJets.at(j).setP4(tempJetp4);
632  } else {
633  halfHgcalJets.at(i).setJetEt(totalet);
634  halfHgcalJets.at(i).setTauEt(totalTauEt);
635  halfHfJets.at(j).setJetEt(0.);
636  halfHfJets.at(j).setTauEt(0.);
638  tempJetp4.SetPt(totalet);
639  tempJetp4.SetEta(halfHgcalJets.at(i).jetEta());
640  tempJetp4.SetPhi(halfHgcalJets.at(i).jetPhi());
641  tempJetp4.SetM(0.);
642  halfHgcalJets.at(i).setP4(tempJetp4);
643  }
644  }
645  }
646  }
647  }
648 
649  // Write 6 leading jets from each eta half
650 
651  vector<l1tp2::Phase2L1CaloJet> halfAllJets;
652  halfAllJets.clear();
653 
654  std::sort(halfBarrelJets.begin(), halfBarrelJets.end(), gctobj::compareByEt);
655  for (size_t i = 0; i < halfBarrelJets.size(); i++) {
656  if (halfBarrelJets.at(i).jetEt() > 0. && i < 6)
657  halfAllJets.push_back(halfBarrelJets.at(i));
658  }
659 
660  std::sort(halfHgcalJets.begin(), halfHgcalJets.end(), gctobj::compareByEt);
661  for (size_t i = 0; i < halfHgcalJets.size(); i++) {
662  if (halfHgcalJets.at(i).jetEt() > 0. && i < 6)
663  halfAllJets.push_back(halfHgcalJets.at(i));
664  }
665 
666  std::sort(halfHfJets.begin(), halfHfJets.end(), gctobj::compareByEt);
667  for (size_t i = 0; i < halfHfJets.size(); i++) {
668  if (halfHfJets.at(i).jetEt() > 0. && i < 6)
669  halfAllJets.push_back(halfHfJets.at(i));
670  }
671 
672  std::sort(halfAllJets.begin(), halfAllJets.end(), gctobj::compareByEt);
673  for (size_t i = 0; i < halfAllJets.size(); i++) {
674  if (halfAllJets.at(i).jetEt() > 0. && i < 6)
675  allJets.push_back(halfAllJets.at(i));
676  }
677  }
678 
679  std::sort(allJets.begin(), allJets.end(), gctobj::compareByEt);
680  for (size_t i = 0; i < allJets.size(); i++) {
681  jetCands->push_back(allJets.at(i));
682  }
683 
684  iEvent.put(std::move(jetCands), "GCTJet");
685 }
static float towerEta(int ieta)
Definition: CaloTools.cc:201
std::vector< reco::JetBaseRef > allJets(const Container &)
fill list of all jets associated with values. Return # of jets in the list
std::map< std::string, std::map< std::string, TF1 > > all_nvtx_to_PU_sub_funcs
static constexpr int nBarrelPhi
void setTowerEt(float towerEtIn)
void setTowerIEta(int towerIEtaIn)
static float towerPhi(int ieta, int iphi)
Definition: CaloTools.cc:208
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
void makeST_hf(const float hfTowers[nHfEta][nHfPhi], GCTsupertower_t supertower_return[nSTEta][nSTPhi])
static constexpr int nSTEta
T const * product() const
Definition: Handle.h:70
std::map< std::string, TF1 > nHits_to_nvtx_funcs
static constexpr int nHgcalEta
static constexpr int nJets
static const int kHFBegin
Definition: CaloTools.h:39
edm::EDGetTokenT< l1t::HGCalTowerBxCollection > hgcalTowerToken_
const_iterator begin(int bx) const
static constexpr int nHfPhi
float get_tau_pt_calibration(const float &tau_pt, const float &tau_eta) const
int iEvent
Definition: GenABIO.cc:224
static constexpr int nSTPhi
static const int kHFEnd
Definition: CaloTools.h:40
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void setTauEt(float tauEtIn)
void setTowerPhi(float towerPhiIn)
#define M_PI
void setJetIPhi(int jetIPhiIn)
unsigned int id
edm::ESGetToken< CaloTPGTranscoder, CaloTPGRecord > decoderTag_
void makeST(const float GCTintTowers[nBarrelEta/2][nBarrelPhi], GCTsupertower_t supertower_return[nSTEta][nSTPhi])
static constexpr int nHgcalPhi
void setTowerEta(float towerEtaIn)
const_iterator end(int bx) const
HLT enums.
void makeST_hgcal(const float hgcalTowers[nHgcalEta/2][nHgcalPhi], GCTsupertower_t supertower_return[nSTEta][nSTPhi])
edm::EDGetTokenT< HcalTrigPrimDigiCollection > hfToken_
static constexpr int nBarrelEta
static constexpr int nHfEta
jetInfo getRegion(GCTsupertower_t temp[nSTEta][nSTPhi], float TTseedThreshold)
void setTowerIPhi(int towerIPhiIn)
void setJetEt(float jetEtIn)
void setJetIEta(int jetIEtaIn)
edm::EDGetTokenT< l1tp2::CaloTowerCollection > caloTowerToken_
bool compareByEt(l1tp2::Phase2L1CaloJet i, l1tp2::Phase2L1CaloJet j)
void setP4(const LorentzVector &p4) final
set 4-momentum
def move(src, dest)
Definition: eostools.py:511
void setJetPhi(float jetPhiIn)
float get_jet_pt_calibration(const float &jet_pt, const float &jet_eta) const
void setJetEta(float jetEtaIn)
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Candidate.h:38

Member Data Documentation

◆ absEtaBinsBarrel

std::vector<double> Phase2L1CaloJetEmulator::absEtaBinsBarrel
private

Definition at line 83 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_jet_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ absEtaBinsHF

std::vector<double> Phase2L1CaloJetEmulator::absEtaBinsHF
private

Definition at line 87 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_jet_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ absEtaBinsHGCal

std::vector<double> Phase2L1CaloJetEmulator::absEtaBinsHGCal
private

Definition at line 85 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_jet_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ all_nvtx_to_PU_sub_funcs

std::map<std::string, std::map<std::string, TF1> > Phase2L1CaloJetEmulator::all_nvtx_to_PU_sub_funcs
private

Definition at line 79 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator(), and produce().

◆ calibrationsBarrel

std::vector<std::vector<double> > Phase2L1CaloJetEmulator::calibrationsBarrel
private

Definition at line 98 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_jet_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ calibrationsHF

std::vector<std::vector<double> > Phase2L1CaloJetEmulator::calibrationsHF
private

Definition at line 100 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_jet_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ calibrationsHGCal

std::vector<std::vector<double> > Phase2L1CaloJetEmulator::calibrationsHGCal
private

Definition at line 99 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_jet_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ caloTowerToken_

edm::EDGetTokenT<l1tp2::CaloTowerCollection> Phase2L1CaloJetEmulator::caloTowerToken_
private

Definition at line 69 of file Phase2L1CaloJetEmulator.cc.

Referenced by produce().

◆ decoderTag_

edm::ESGetToken<CaloTPGTranscoder, CaloTPGRecord> Phase2L1CaloJetEmulator::decoderTag_
private

Definition at line 72 of file Phase2L1CaloJetEmulator.cc.

Referenced by produce().

◆ hf_nvtx_to_PU_sub_funcs

std::map<std::string, TF1> Phase2L1CaloJetEmulator::hf_nvtx_to_PU_sub_funcs
private

Definition at line 78 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ hfToken_

edm::EDGetTokenT<HcalTrigPrimDigiCollection> Phase2L1CaloJetEmulator::hfToken_
private

Definition at line 71 of file Phase2L1CaloJetEmulator.cc.

Referenced by produce().

◆ hgcalEM_nvtx_to_PU_sub_funcs

std::map<std::string, TF1> Phase2L1CaloJetEmulator::hgcalEM_nvtx_to_PU_sub_funcs
private

Definition at line 76 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ hgcalHad_nvtx_to_PU_sub_funcs

std::map<std::string, TF1> Phase2L1CaloJetEmulator::hgcalHad_nvtx_to_PU_sub_funcs
private

Definition at line 77 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ hgcalTowerToken_

edm::EDGetTokenT<l1t::HGCalTowerBxCollection> Phase2L1CaloJetEmulator::hgcalTowerToken_
private

Definition at line 70 of file Phase2L1CaloJetEmulator.cc.

Referenced by produce().

◆ jetCalibrationsBarrel

std::vector<double> Phase2L1CaloJetEmulator::jetCalibrationsBarrel
private

Definition at line 84 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ jetCalibrationsHF

std::vector<double> Phase2L1CaloJetEmulator::jetCalibrationsHF
private

Definition at line 88 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ jetCalibrationsHGCal

std::vector<double> Phase2L1CaloJetEmulator::jetCalibrationsHGCal
private

Definition at line 86 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ jetPtBins

std::vector<double> Phase2L1CaloJetEmulator::jetPtBins
private

Definition at line 82 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_jet_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ nHits_to_nvtx_funcs

std::map<std::string, TF1> Phase2L1CaloJetEmulator::nHits_to_nvtx_funcs
private

Definition at line 75 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator(), and produce().

◆ nHits_to_nvtx_params

std::vector<edm::ParameterSet> Phase2L1CaloJetEmulator::nHits_to_nvtx_params
private

Definition at line 73 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ nvtx_to_PU_sub_params

std::vector<edm::ParameterSet> Phase2L1CaloJetEmulator::nvtx_to_PU_sub_params
private

Definition at line 74 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ tauAbsEtaBinsBarrel

std::vector<double> Phase2L1CaloJetEmulator::tauAbsEtaBinsBarrel
private

Definition at line 92 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_tau_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ tauAbsEtaBinsHGCal

std::vector<double> Phase2L1CaloJetEmulator::tauAbsEtaBinsHGCal
private

Definition at line 94 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_tau_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ tauCalibrationsBarrel

std::vector<double> Phase2L1CaloJetEmulator::tauCalibrationsBarrel
private

Definition at line 93 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ tauCalibrationsHGCal

std::vector<double> Phase2L1CaloJetEmulator::tauCalibrationsHGCal
private

Definition at line 95 of file Phase2L1CaloJetEmulator.cc.

Referenced by Phase2L1CaloJetEmulator().

◆ tauPtBins

std::vector<double> Phase2L1CaloJetEmulator::tauPtBins
private

Definition at line 91 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_tau_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ tauPtCalibrationsBarrel

std::vector<std::vector<double> > Phase2L1CaloJetEmulator::tauPtCalibrationsBarrel
private

Definition at line 103 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_tau_pt_calibration(), and Phase2L1CaloJetEmulator().

◆ tauPtCalibrationsHGCal

std::vector<std::vector<double> > Phase2L1CaloJetEmulator::tauPtCalibrationsHGCal
private

Definition at line 104 of file Phase2L1CaloJetEmulator.cc.

Referenced by get_tau_pt_calibration(), and Phase2L1CaloJetEmulator().